/* One quiet material palette across the site. */
:root {
  --mga-petrol: #3c6663;
  --mga-petrol-dark: #244947;
  --mga-petrol-wash: #e8efec;
  --mga-warm-paper: #f5f3ef;
  --mga-warm-line: #d8dcd8;
  --mga-action-ink: #263c3c;
  --mga-action-ink-hover: #375f5b;
  --mga-action-surface: #e8efec;
  --mga-nav-ink: #263333;
  --mga-nav-muted: #5e6d6a;
  --mga-nav-line: #d8dcd8;
  --fx-accent: #557d78;
  --fx-surface-2: #f5f3ef;
  --fx-line: #d8dcd8;
}

main a:focus-visible,
main button:focus-visible,
.mga-reading-navigation summary:focus-visible {
  outline: 2px solid var(--mga-petrol);
  outline-offset: 3px;
}

/* Home cards and research cards share the same subtle hover wash. */
.mga-home-service,
body.path-frontpage main .fx-card:not(.news-teaser),
body.path-frontpage main .news-teaser .views-view-responsive-grid__item-inner,
body.node--type-urban-research-city .fx-card,
body.page-node-75 .fx-card {
  border: 1px solid var(--mga-warm-line);
  border-radius: 0;
  clip-path: none;
  background: #fff;
  box-shadow: none;
}
.mga-home-service:is(:hover, :focus-visible),
body.path-frontpage main .fx-card:not(.news-teaser):is(:hover, :focus-within),
body.path-frontpage main .news-teaser .views-view-responsive-grid__item-inner:is(:hover, :focus-within),
body.node--type-urban-research-city .fx-card:is(:hover, :focus-within),
body.page-node-75 .fx-card:is(:hover, :focus-within) {
  border-color: #8eaaa3;
  background: var(--mga-petrol-wash);
  color: var(--mga-nav-ink);
}
.mga-home-service,
body.path-frontpage main .fx-card:not(.news-teaser),
body.node--type-urban-research-city .fx-card {
  transition: background-color 180ms ease, border-color 180ms ease;
}
body.path-frontpage main .fx-card:not(.news-teaser)::before,
body.node--type-urban-research-city .fx-card::before { display: none; }
.mga-home-service__number { color: var(--mga-petrol); }

/* Filled controls are reserved for primary actions; section navigation stays light. */
#header .mga-header-cta,
#header .mga-header-cta:hover,
:is(.btn.btn-dark, .btn.btn-primary, .webform-button--submit) {
  border-radius: 999px;
}
#header .mga-header-cta { background: var(--mga-action-ink); border-color: var(--mga-action-ink); }
#header .mga-header-cta:hover { background: var(--mga-action-ink-hover); border-color: var(--mga-action-ink-hover); }
:is(.btn.btn-outline-dark, .btn.btn-default-outline, .btn.btn-outline-primary:not(.webform-button--submit)) {
  border-color: var(--mga-petrol);
  color: var(--mga-petrol-dark);
}
main .mga-section-nav .nav.nav-tabs .nav-link:is(:hover, :focus-visible, .active, .is-active) {
  border-bottom-color: var(--mga-petrol);
  color: var(--mga-petrol-dark) !important;
}

.mga-eyebrow {
  margin: 0 0 .65rem;
  color: var(--mga-petrol);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1.35;
  text-transform: uppercase;
}

/* The portfolio opens with context and only three meaningful filters. */
.mga-collection-intro { display: flex; align-items: baseline; gap: 2rem; margin: 0 0 1.5rem; }
.mga-collection-intro .mga-eyebrow { flex: 0 0 auto; }
.mga-collection-intro > p:last-child { max-width: 64ch; margin: 0; line-height: 1.55; }
.mga-project-filters { display: none; flex-wrap: wrap; gap: .4rem 1.6rem; border-bottom: 1px solid var(--mga-warm-line); }
.mga-project-filters.is-ready { display: flex; }
.mga-project-filters button {
  position: relative; min-height: 46px; padding: .55rem 0 .7rem;
  border: 0; background: transparent; color: var(--mga-nav-muted);
  font-size: .9rem; font-weight: 600; cursor: pointer;
}
.mga-project-filters button::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 2px; background: var(--mga-petrol);
  transform: scaleX(0); transform-origin: left;
  transition: transform 180ms ease;
}
.mga-project-filters button:is(:hover, :focus-visible, .is-active) { color: var(--mga-petrol-dark); }
.mga-project-filters button:is(:hover, :focus-visible, .is-active)::after { transform: scaleX(1); }
.mga-project-filters .mga-filter-count { margin-left: .35rem; color: #74817d; font-size: .73rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.mga-project-filters button.is-active .mga-filter-count { color: var(--mga-petrol); }
.mga-project-result { min-height: 1.4rem; margin: .7rem 0 1.4rem; color: var(--mga-nav-muted); font-size: .8rem; }
.mga-project-collection .views-view-responsive-grid__item[hidden] { display: none !important; }
.mga-project-collection .views-view-responsive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.7rem, 1vw, .95rem); }
.mga-project-collection .views-view-responsive-grid__item { min-width: 0; }
.mga-project-collection .project-card__cta { display: none; }
.mga-project-collection .project-card__meta { position: relative; padding-right: 1.8rem; }
.mga-project-collection .project-card__meta::after { content: '↗'; position: absolute; right: 0; bottom: 0; color: #fff; font-size: 1.2rem; line-height: 1; transition: transform 180ms ease; }
.mga-project-collection .project-card:is(:hover, :focus-within) .project-card__meta::after { transform: translate(2px, -2px); }

.mga-project-list-intro { display: flex; align-items: baseline; gap: 2rem; margin: 0 0 1.4rem; }
.mga-project-list-intro .mga-eyebrow { flex: 0 0 auto; }
.mga-project-list-intro > p:last-child { max-width: 66ch; margin: 0; line-height: 1.55; }
.mga-project-list .view-content { margin: 0; }
.mga-project-list table { width: 100%; border-collapse: collapse; --bs-table-bg: #fff; --bs-table-striped-bg: #fff; }
.mga-project-list thead th {
  padding: .8rem 1rem; border-top: 1px solid var(--mga-warm-line);
  border-bottom: 1px solid var(--mga-warm-line); background: #fff;
  color: var(--mga-nav-muted); font-size: .72rem; font-weight: 700;
  letter-spacing: .09em; text-transform: uppercase;
}
.mga-project-list tbody :is(th, td) { padding: .9rem 1rem; border-bottom: 1px solid var(--mga-warm-line); background: #fff; line-height: 1.45; font-weight: 400; }
.mga-project-list tbody tr:hover :is(th, td) { background: var(--mga-petrol-wash); }
.mga-project-list tbody th { color: var(--mga-nav-ink); font-weight: 650; }
.mga-project-list tbody th a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.mga-project-list tbody th a:is(:hover, :focus-visible) { border-color: var(--mga-petrol); color: var(--mga-petrol-dark); }
.mga-project-list tbody th a span { color: var(--mga-petrol); font-size: .9em; }
.mga-project-list tbody time { font-variant-numeric: tabular-nums; }
.mga-project-list .view-footer { margin-top: .9rem; color: var(--mga-nav-muted); font-size: .82rem; }

.mga-teaching-intro { max-width: 68ch; margin: 0 0 2rem; }
.mga-teaching-intro h2 { margin: 0 0 .5rem; font-size: clamp(1.55rem, 2.4vw, 2.2rem); line-height: 1.18; }
.mga-teaching-intro > p:last-child { margin: 0; line-height: 1.55; }
.mga-teaching-collection .views-view-responsive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem !important; }
.mga-teaching-collection .views-view-responsive-grid__item-inner {
  height: 100%; padding: clamp(1.25rem, 2.2vw, 1.8rem);
  border: 1px solid var(--mga-warm-line); background: #fff;
}
.mga-teaching-collection h3 { margin: 0 0 .85rem; font-size: clamp(1.1rem, 1.45vw, 1.35rem); line-height: 1.3; text-transform: none; }
.mga-teaching-collection p { margin-bottom: 0; font-size: .96rem; line-height: 1.58; }

/* Lead with the practice, then show the four service images. */
.mga-service-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); gap: .3rem clamp(2rem, 5vw, 5rem); align-items: end; margin: .3rem 0 clamp(2rem, 4vw, 3.6rem); padding: 0 0 clamp(1.5rem, 3vw, 2.5rem); border-bottom: 1px solid var(--mga-warm-line); }
.mga-service-intro .mga-eyebrow { grid-column: 1 / -1; }
.mga-service-intro__lead { max-width: 24ch; margin: 0; color: var(--mga-nav-ink); font-size: clamp(1.75rem, 3vw, 3.1rem); font-weight: 650; line-height: 1.1; text-wrap: balance; }
.mga-service-intro__copy { max-width: 45ch; margin: 0; font-size: clamp(1rem, 1.15vw, 1.13rem); line-height: 1.6; }

/* News stories end with related reading and clear routes back into the site. */
.mga-news-onward { margin: clamp(3rem, 6vw, 5rem) 0 2rem; padding-top: 1.4rem; border-top: 1px solid var(--mga-warm-line); }
.mga-news-onward__stories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.mga-news-onward__stories a { display: grid; grid-template-columns: 1fr auto; align-content: space-between; gap: .7rem 1rem; min-height: 9rem; padding: 1.3rem; border: 1px solid var(--mga-warm-line); background: #fff; color: var(--mga-nav-ink); text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease; }
.mga-news-onward__stories a:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); }
.mga-news-onward__stories a span:first-child { grid-column: 1 / -1; color: var(--mga-petrol); font-size: .72rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.mga-news-onward__stories a strong { font-size: clamp(1rem, 1.3vw, 1.25rem); line-height: 1.3; }
.mga-news-onward__index { display: flex; flex-wrap: wrap; gap: .7rem 2rem; margin-top: 1.2rem; }
.mga-news-onward__index a { min-height: 40px; display: inline-flex; align-items: center; gap: .5rem; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-weight: 650; text-decoration: none; }
.mga-news-onward__index a:hover { border-bottom-width: 2px; }

/* Editorial text keeps a readable measure on both office pages. */
body.page-node-99 main article .field--name-field-content,
body.page-node-100 main article .field--name-field-content { max-width: 70ch; font-size: 1.04rem; line-height: 1.66; }
body.page-node-99 main article .field--name-field-content p,
body.page-node-100 main article .field--name-field-content p { max-width: 70ch; }
body.page-node-99 main article .field--name-field-content .lead { max-width: 60ch; line-height: 1.55; }
body.page-node-99 main article .field--name-field-content > h2,
body.page-node-100 main article .field--name-field-content > h2 { margin-top: 0; }
body.page-node-99 #main .sidebar-second img,
body.page-node-100 #main .sidebar-second img { width: 100%; height: auto; object-fit: cover; }

/* The publication has its own calm reading and download hierarchy. */
body.page-node-102 article .node__content { max-width: none; }
.mga-portfolio-download {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .8fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  max-width: 72rem;
  margin: clamp(1rem, 3vw, 2.5rem) auto clamp(3rem, 5vw, 5rem);
}
.mga-portfolio-download__copy {
  padding-block: clamp(1.5rem, 3vw, 3rem);
  border-top: 1px solid var(--mga-warm-line);
}
.mga-portfolio-download h2 {
  max-width: 19ch;
  margin: .6rem 0 1.4rem;
  color: var(--mga-nav-ink);
  font-size: clamp(1.8rem, 3vw, 3.15rem);
  line-height: 1.12;
  text-wrap: balance;
}
.mga-portfolio-download__copy > p:not(.mga-eyebrow, .mga-portfolio-download__filesize) {
  max-width: 54ch;
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.62;
}
.mga-portfolio-download__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem 1.5rem;
  margin-top: 1.8rem;
}
.mga-portfolio-download__actions .btn { display: inline-flex; align-items: center; gap: .8rem; padding: .8rem 1.25rem; }
.mga-portfolio-download__print {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 44px;
  border-bottom: 1px solid var(--mga-petrol);
  color: var(--mga-petrol-dark);
  font-weight: 650;
  text-decoration: none;
}
.mga-portfolio-download__print:is(:hover, :focus-visible) { border-bottom-width: 2px; color: var(--mga-petrol-dark); }
.mga-portfolio-download__filesize { margin: 1rem 0 0; color: var(--mga-nav-muted); font-size: .78rem; }
.mga-portfolio-download__preview {
  display: block;
  width: 100%;
  max-width: 28rem;
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 2.2rem);
  border: 1px solid var(--mga-warm-line);
  background: var(--mga-warm-paper);
  transition: background-color 180ms ease, border-color 180ms ease;
}
.mga-portfolio-download__preview:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); }
.mga-portfolio-download__preview img { display: block; width: 100%; height: auto; box-shadow: 0 10px 30px rgba(38, 51, 51, .12); }
@media (max-width: 47.99rem) {
  .mga-portfolio-download { grid-template-columns: 1fr; gap: 1.5rem; }
  .mga-portfolio-download__copy { padding-bottom: 0; }
  .mga-portfolio-download__preview { max-width: 21rem; }
}

/* Research navigation uses the same material and keeps its own scroll position. */
#block-mga-urbanresearch { overflow-anchor: none; overscroll-behavior: contain; border-color: var(--mga-warm-line); background: linear-gradient(145deg, rgba(245,243,239,.95), rgba(255,255,255,.92) 56%, rgba(232,239,236,.82)); }
.mga-reading-navigation__chapter[open] { background: rgba(255,255,255,.62); box-shadow: inset 0 0 0 1px var(--mga-warm-line); }
.mga-reading-navigation__chapter > summary:hover,
.mga-reading-navigation__pages li a:hover { background: var(--mga-petrol-wash); }
.mga-reading-navigation__chapter-body { animation: none; }
.mga-reading-navigation__number,
.mga-reading-navigation__pages .is-current a { color: var(--mga-petrol-dark); }
.mga-reading-navigation__pages .is-current a { border-left-color: var(--mga-petrol); background: var(--mga-petrol-wash); }
.mga-reading-navigation__pages li a:hover { border-left-color: var(--mga-petrol); }
.mga-reading-navigation__pager a:hover,
.mga-reading-navigation__overview a:hover { color: var(--mga-petrol-dark); }
.mga-reading-map { display: grid; grid-template-columns: 6.25rem 1fr; align-items: center; gap: .8rem; margin-top: 1.25rem; padding: .7rem; border: 1px solid var(--mga-warm-line); border-radius: 10px; background: rgba(255,255,255,.7); color: var(--mga-nav-ink); text-decoration: none !important; transition: background-color 180ms ease, border-color 180ms ease; }
.mga-reading-map:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); color: var(--mga-nav-ink); }
.mga-reading-map__graphic { width: 6.25rem; height: 6.25rem; border-radius: 6px; background: #faf9f6; }
.mga-reading-map__graphic svg { display: block; width: 100%; height: 100%; }
.mga-reading-map__graphic svg a path { fill: #e7e6e1; stroke: #fff; stroke-width: 1.2; transition: fill 180ms ease; }
.mga-reading-map__graphic.is-city svg a path { fill: #759590; }
.mga-reading-map__graphic.is-district svg a.is-current path { fill: var(--mga-petrol); }
.mga-reading-map__graphic svg a:hover path,
.mga-reading-map__graphic svg a:focus-visible path { fill: var(--mga-petrol-dark); }
.mga-reading-map__graphic svg text { fill: #263333; font-size: 9px; pointer-events: none; }
.mga-reading-map > a { min-width: 0; color: inherit; text-decoration: none; }
.mga-reading-map > a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.mga-reading-map small { display: block; margin-bottom: .3rem; color: var(--mga-nav-muted); font-size: .67rem; line-height: 1.3; }
.mga-reading-map strong { display: block; font-size: .78rem; line-height: 1.35; }
/* District pages already use the district name as their H1. */
body.node--type-urban-research-page main .taxonomy-term.vocabulary-urban-research-city > h2 { display: none; }
.mga-city-map-shortcut { display: inline-flex; align-items: center; gap: .75rem; min-height: 42px; margin: .25rem 0 1.3rem; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-size: .94rem; font-weight: 650; text-decoration: none; }
.mga-city-map-shortcut:is(:hover, :focus-visible) { border-bottom-width: 2px; color: var(--mga-petrol-dark); }
/* The overview presents Wittenberg as one place; article previews select a district. */
/* The map and district index form one spatial browser. Quiet translucent
   districts keep the overview readable and reveal petrol on interaction. */
#stadtteile.mga-city-map-wrapper {
  display: grid;
  grid-template-areas: "heading heading" "map index";
  grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 1fr);
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: start;
  margin: clamp(2rem, 4vw, 4rem) auto;
}
#stadtteile .mga-city-map-heading { grid-area: heading; margin: 0; }
#stadtteile .mga-city-map-heading h2 { font-size: clamp(1.7rem, 2.7vw, 2.7rem); }
#stadtteile .mga-city-index {
  grid-area: index;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .15rem .65rem;
  margin: 0;
  padding: 0;
  border: 0;
}
#stadtteile .mga-city-index-link {
  min-width: 0;
  min-height: 2.65rem;
  align-items: baseline;
  gap: .35rem;
  padding: .35rem .4rem;
  border-bottom: 1px solid var(--mga-warm-line);
  background: transparent;
  font-size: .875rem;
  transition: background-color 180ms ease, color 180ms ease;
}
#stadtteile .mga-city-index-link span:first-child { width: 1.6rem; margin: 0; color: var(--mga-petrol); }
#stadtteile .mga-city-index-link:is(:hover, :focus-visible) { background: var(--mga-petrol-wash); color: var(--mga-petrol-dark); }
#stadtteile .mga-city-map-html { grid-area: map; width: 100%; padding: clamp(.5rem, 1.5vw, 1.5rem); background: var(--mga-warm-paper); }
#stadtteile .mga-city-map-html svg { filter: none; }
#stadtteile .mga-city-map-html a path[id^="city-area-"] { fill: rgba(60, 102, 99, .22); stroke: rgba(36, 73, 71, .42); stroke-width: 1; }
#stadtteile .mga-city-map-html a:is(:hover, :focus-visible) path[id^="city-area-"] { fill: rgba(60, 102, 99, .68); stroke: var(--mga-petrol-dark); }
#stadtteile .mga-city-map-html text { fill: var(--mga-nav-ink); font-size: 8.8px; font-weight: 600; stroke: #fff; stroke-width: 1.8px; }
.mga-city-method { max-width: 82ch; margin: -1.2rem 0 1.8rem; color: var(--mga-nav-muted); font-size: .83rem; line-height: 1.55; }
.mga-city-method a { color: var(--mga-petrol-dark); text-underline-offset: 3px; }
.mga-contribution-card {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end;
  gap: 1rem 2rem; max-width: 82ch; margin: 1.5rem 0;
  padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--mga-warm-line);
  background: #fff; transition: border-color 180ms ease, background-color 180ms ease;
}
.mga-contribution-card:is(:hover, :focus-within) { border-color: #8eaaa3; background: var(--mga-petrol-wash); }
.mga-contribution-card h2 { margin: 0 0 .6rem; font-size: clamp(1.4rem, 2.1vw, 1.9rem); line-height: 1.16; }
.mga-contribution-card .mga-district-eyebrow { margin-bottom: .55rem; }
.mga-contribution-card__copy > p:last-child { max-width: 58ch; margin: 0; line-height: 1.55; }
.mga-contribution-card > a {
  display: inline-flex; align-items: center; gap: .6rem; width: max-content;
  min-height: 42px; border-bottom: 1px solid var(--mga-petrol);
  color: var(--mga-petrol-dark); font-weight: 650; text-decoration: none;
}
.mga-contribution-card > a:is(:hover, :focus-visible) { border-bottom-width: 2px; }
.mga-contribution-card > a span { transition: transform 180ms ease; }
.mga-contribution-card > a:is(:hover, :focus-visible) span { transform: translate(2px, -2px); }
.mga-research-participate { margin-top: 1.6rem; }
.mga-research-list { padding-left: 1.4rem; }
.mga-research-list li { margin: .4rem 0; line-height: 1.6; }
.mga-research-data-note { max-width: 75ch; margin: .7rem 0 1.6rem; padding: 1rem 1.25rem; border: 1px solid var(--mga-warm-line); border-left: 2px solid var(--mga-petrol); background: #fff; color: var(--mga-nav-muted); font-size: .85rem; line-height: 1.55; }
.mga-research-data-note a { color: var(--mga-petrol-dark); text-underline-offset: 3px; }
.mga-research-intro { max-width: 90ch; padding-bottom: clamp(2rem, 5vw, 4rem); }
.mga-research-intro__header { margin: 0 0 1.5rem; }
.mga-research-intro__eyebrow { margin: 0 0 .55rem; color: var(--mga-petrol-dark); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.mga-research-intro__header h2 { margin: 0 0 .65rem; font-size: clamp(1.55rem, 2.7vw, 2.35rem); line-height: 1.16; }
.mga-research-intro__lead { max-width: 62ch; margin: 0; color: var(--mga-nav-muted); font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.55; }
.mga-research-intro__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 0 1rem; padding: 1px; background: var(--mga-warm-line); }
.mga-research-intro__fact { min-width: 0; padding: clamp(.8rem, 1.6vw, 1.2rem); background: #fff; }
.mga-research-intro__year { display: block; margin: 0 0 .3rem; color: var(--mga-nav-muted); font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.mga-research-intro__fact > strong { display: block; margin: 0; color: var(--mga-petrol-dark); font-size: clamp(1.25rem, 2vw, 1.8rem); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.15; white-space: nowrap; }
.mga-research-intro__fact > strong span { display: block; margin-top: .35rem; color: var(--mga-nav-muted); font-size: .75rem; font-weight: 400; line-height: 1.35; }
.mga-research-intro__fact--area > strong { font-size: clamp(1.05rem, 1.6vw, 1.45rem); }
.mga-research-intro > .mga-research-data-note { max-width: none; margin: 0 0 clamp(2rem, 4vw, 3rem); }
.mga-research-intro__essay { max-width: 70ch; }
.mga-research-intro__essay h2 { margin: 0 0 1.15rem; font-size: clamp(1.3rem, 1.75vw, 1.55rem); line-height: 1.32; text-transform: none; }
.mga-research-intro__essay p { margin: 0 0 1.15rem; line-height: 1.7; }
@media (max-width: 1199px) { .mga-research-intro__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .mga-research-intro__fact { padding: .75rem; } .mga-research-intro__fact > strong { font-size: 1.35rem; } .mga-research-intro__fact--area > strong { font-size: 1.05rem; } }
.mga-district-endlinks a:last-child { margin-right: 0; }
.mga-district-contribute { margin-top: 2rem; }
body.path-webform:has(.mga-contribution-form) .block-page-title-block { max-width: 760px; margin-inline: auto; }
body.path-webform:has(.mga-contribution-form) .block-page-title-block h1 { font-size: clamp(1.9rem, 3vw, 2.8rem); }
.mga-contribution-form { max-width: 760px; margin: 1.5rem auto 4rem; }
.mga-contribution-form .mga-contribution-intro { max-width: 65ch; font-size: 1.1rem; line-height: 1.6; }
.mga-contribution-form .form-item { margin: 1.15rem 0; }
.mga-contribution-form :is(input:not([type=checkbox]):not([type=submit]), textarea, select) { width: 100%; max-width: 100%; border: 1px solid var(--mga-warm-line); border-radius: 2px; padding: .7rem .8rem; background: #fff; }
.mga-contribution-form :is(input, textarea, select):focus-visible { outline: 2px solid var(--mga-petrol); outline-offset: 2px; }
.mga-contribution-form .mga-contribution-privacy { padding: 1rem 1.25rem; border-left: 2px solid var(--mga-petrol); background: var(--mga-warm-paper); font-size: .9rem; line-height: 1.55; }
.mga-contribution-form .form-actions :is(input[type=submit], button[type=submit]) { border: 1px solid var(--mga-petrol-dark); border-radius: 999px; padding: .7rem 1.25rem; background: var(--mga-petrol-dark); color: #fff; font-weight: 700; }
.mga-contribution-form .form-actions :is(input[type=submit], button[type=submit]):hover { background: var(--mga-petrol); }
/* One sourced citywide time series, with definitions kept beside the values. */
.mga-population-series { margin: clamp(2.5rem, 5vw, 5rem) 0; padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--mga-warm-line); background: #fff; }
.mga-population-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(15rem, .8fr); gap: 1rem 3rem; align-items: end; }
.mga-population-heading h2 { margin: 0; font-size: clamp(1.7rem, 2.8vw, 2.8rem); line-height: 1.12; }
.mga-population-heading > p { max-width: 45ch; margin: 0; line-height: 1.5; }
.mga-population-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem 1.3rem; margin: 2rem 0 1.4rem; padding: 1.2rem 0; border-top: 1px solid var(--mga-warm-line); border-bottom: 1px solid var(--mga-warm-line); }
.mga-population-summary strong { color: var(--mga-petrol-dark); font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1; }
.mga-population-summary span { font-weight: 650; }
.mga-population-summary small { color: var(--mga-nav-muted); font-weight: 400; }
.mga-population-table-wrap { overflow-x: auto; }
.mga-population-series table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.mga-population-series caption { text-align: left; padding-bottom: .65rem; color: var(--mga-nav-muted); font-size: .83rem; }
.mga-population-series :is(th, td) { padding: .85rem .75rem; border-bottom: 1px solid var(--mga-warm-line); text-align: left; }
.mga-population-series thead th { color: var(--mga-nav-muted); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mga-population-series tbody tr:last-child { background: var(--mga-petrol-wash); }
.mga-population-series tbody td:nth-child(2) { color: var(--mga-petrol-dark); font-weight: 700; }
.mga-population-note { max-width: 95ch; margin: 1.25rem 0 0; color: var(--mga-nav-muted); font-size: .85rem; line-height: 1.55; }
.mga-population-note a { color: var(--mga-petrol-dark); text-underline-offset: 3px; }
body.page-node-191 h1 { max-width: 27ch; font-size: clamp(2rem, 4vw, 3rem); hyphens: none; }
.mga-population-page__intro { max-width: 74ch; margin: 1.5rem 0 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.55; }
.mga-population-page .mga-population-series { margin-top: 2rem; }
.mga-population-page .mga-population-heading h2 { max-width: 23ch; font-size: clamp(1.55rem, 2.35vw, 2.25rem); hyphens: none; }
.mga-population-page__links { display: flex; flex-wrap: wrap; gap: .5rem 1.8rem; margin: 1.5rem 0 3rem; }
.mga-population-page__links a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-weight: 650; text-decoration: none; }
.mga-population-page__links a:is(:hover, :focus-visible) { border-bottom-width: 2px; }
.mga-district-source { max-width: 82ch; margin: 1.25rem 0 0; padding-top: .85rem; border-top: 1px solid var(--mga-warm-line); color: var(--mga-nav-muted); font-size: .82rem; line-height: 1.55; }
.mga-district-source a { color: var(--mga-petrol-dark); text-underline-offset: 3px; }
/* District profiles: facts first, a distinct heritage chapter, calm long reading. */
.mga-district-profile { max-width: 100%; }
body.node--type-urban-research-page main .field--name-field__district__term > .field__label { display: none; }
.mga-district-lead { padding: 0 0 1.5rem; border-bottom: 1px solid var(--mga-warm-line); }
.mga-district-eyebrow { margin: 0 0 .5rem; color: var(--mga-petrol); font-size: .72rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.mga-district-lead > p:not(.mga-district-eyebrow) { max-width: 60ch; margin: 0 0 1.2rem; font-size: clamp(1rem, 1.4vw, 1.18rem); line-height: 1.55; }
.mga-district-jumps, .mga-district-endlinks { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.mga-district-jumps a, .mga-district-endlinks a { display: inline-flex; align-items: center; min-height: 42px; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-weight: 650; text-decoration: none; }
.mga-district-jumps a:is(:hover, :focus-visible), .mga-district-endlinks a:is(:hover, :focus-visible) { border-bottom-width: 2px; }
.mga-district-figures, .mga-district-churches, .mga-district-story { scroll-margin-top: 7rem; margin: clamp(2rem, 4vw, 3.6rem) 0; }
.mga-district-section-heading h2, .mga-district-churches h2 { margin: 0 0 1.15rem; font-size: clamp(1.55rem, 2.6vw, 2.4rem); line-height: 1.13; }
.mga-district-fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 1.5rem 0 0; border: 1px solid var(--mga-warm-line); background: var(--mga-warm-line); }
.mga-district-fact-grid > div { display: flex; flex-direction: column; gap: .4rem; padding: clamp(1rem, 2vw, 1.4rem); background: #fff; }
.mga-district-fact-grid strong { color: var(--mga-petrol-dark); font-size: clamp(1.55rem, 2.5vw, 2.4rem); font-variant-numeric: tabular-nums; line-height: 1.1; }
.mga-district-fact-grid span { color: var(--mga-nav-muted); font-size: .8rem; line-height: 1.4; }
.mga-district-data-details { margin-top: 1rem; }
.mga-district-data-details summary { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--mga-warm-line); color: var(--mga-petrol-dark); font-weight: 650; cursor: pointer; }
.mga-district-data-details[open] summary span { transform: rotate(180deg); }
.mga-district-data-details .field { padding: 1rem 0; }
.mga-district-data-details .field__label, .mga-district-church-copy .field__label { display: none; }
.mga-district-data-details ul { margin: 0; padding-left: 1.25rem; }
.mga-district-data-details li { margin: .45rem 0; line-height: 1.55; }
.mga-district-data-note { max-width: 75ch; margin: .7rem 0 0; color: var(--mga-nav-muted); font-size: .78rem; line-height: 1.5; }
.mga-district-churches { padding: clamp(1.3rem, 3vw, 2.4rem); border: 1px solid var(--mga-warm-line); background: #fff; }
.mga-district-churches > p:not(.mga-district-eyebrow) { max-width: 55ch; line-height: 1.55; }
.mga-district-church-details summary { display: flex; justify-content: space-between; gap: 1rem; width: 100%; min-height: 48px; padding: .7rem .35rem; align-items: center; border-top: 1px solid var(--mga-warm-line); border-bottom: 1px solid var(--mga-warm-line); color: var(--mga-petrol-dark); font-weight: 650; cursor: pointer; transition: background-color 180ms ease, border-color 180ms ease; }
.mga-district-church-details summary:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); }
.mga-district-church-details[open] summary span { transform: rotate(180deg); }
.mga-district-church-copy { margin-top: 1.2rem; }
.mga-district-church-copy { max-width: 74ch; }
.mga-district-church-copy p, .mga-district-story p { line-height: 1.72; }
.mga-district-church-copy p:empty, .mga-district-story p:empty { display: none; }
.mga-district-story { max-width: 76ch; }
.mga-district-story h3 { margin-top: 2.1rem; font-size: clamp(1.25rem, 1.8vw, 1.65rem); line-height: 1.3; }
.mga-district-story ul { padding-left: 1.3rem; }
.mga-district-story li { margin: .5rem 0; line-height: 1.62; }
.mga-district-endlinks { padding: 1.2rem 0; border-top: 1px solid var(--mga-warm-line); }
.mga-city-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 1.8rem 0 2.4rem; border: 1px solid var(--mga-warm-line); background: var(--mga-warm-line); }
.mga-city-facts > div { display: flex; flex-direction: column; gap: .35rem; padding: 1.25rem; background: #fff; }
.mga-city-facts strong { color: var(--mga-petrol-dark); font-size: clamp(1.7rem, 2.8vw, 2.7rem); font-variant-numeric: tabular-nums; line-height: 1.1; }
.mga-city-facts span { color: var(--mga-nav-muted); font-size: .82rem; line-height: 1.45; }
.mga-city-facts a { color: var(--mga-petrol-dark); text-underline-offset: 3px; }
.mga-service-research-bridge { max-width: 68ch; margin: 2rem 0; padding: 1rem 1.25rem; border: 1px solid var(--mga-warm-line); border-left: 2px solid var(--mga-petrol); background: #fff; }
.mga-service-research-bridge span { color: var(--mga-petrol); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.mga-service-research-bridge p { margin: .4rem 0 0; line-height: 1.55; }
.mga-service-research-bridge a { color: var(--mga-petrol-dark); font-weight: 650; text-underline-offset: 3px; }
.mga-population-table-details > summary { padding: .8rem 0; border-top: 1px solid var(--mga-warm-line); color: var(--mga-petrol-dark); font-weight: 650; cursor: pointer; }
.mga-population-table-details[open] > summary { margin-bottom: 1.1rem; }
@media (max-width: 1000px) {
  #stadtteile.mga-city-map-wrapper { grid-template-areas: "heading" "map" "index"; grid-template-columns: minmax(0, 1fr); }
  #stadtteile .mga-city-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .mga-district-fact-grid, .mga-city-facts { grid-template-columns: 1fr; }
  #stadtteile .mga-city-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #stadtteile .mga-city-map-html { padding: .25rem; }
  .mga-population-heading { grid-template-columns: minmax(0, 1fr); }
  .mga-population-page .mga-population-heading h2 { font-size: 1.45rem; }
  .mga-population-series :is(th, td) { padding: .7rem .45rem; font-size: .85rem; }
}
body.page-node-75 .mga-service-links .btn { min-height: 40px; padding: .45rem 0; border: 0; border-bottom: 1px solid var(--mga-petrol); border-radius: 0; background: transparent; color: var(--mga-petrol-dark); }
body.page-node-75 .mga-service-links .btn:is(:hover, :focus-visible) { border-bottom-width: 2px; background: transparent; }

@media (max-width: 1199px) {
  .mga-project-collection .views-view-responsive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .mga-project-list-intro { display: block; }
  .mga-project-list .table-responsive { overflow: visible; }
  .mga-project-list table, .mga-project-list tbody { display: block; width: 100%; }
  .mga-project-list thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .mga-project-list tbody tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: 'title year' 'place discipline'; gap: .35rem 1rem;
    margin: .6rem 0; padding: 1rem; border: 1px solid var(--mga-warm-line); background: #fff;
  }
  .mga-project-list tbody tr:hover { border-color: #8eaaa3; background: var(--mga-petrol-wash); }
  .mga-project-list tbody :is(th, td), .mga-project-list tbody tr:hover :is(th, td) { display: block; min-width: 0; padding: 0; border: 0; background: transparent; }
  .mga-project-list tbody th { grid-area: title; }
  .mga-project-list tbody td:nth-of-type(1) { grid-area: place; color: var(--mga-nav-muted); font-size: .85rem; }
  .mga-project-list tbody td:nth-of-type(2) { grid-area: year; color: var(--mga-petrol-dark); font-weight: 700; text-align: right; }
  .mga-project-list tbody td:nth-of-type(3) { grid-area: discipline; color: var(--mga-nav-muted); font-size: .8rem; text-align: right; }
  .mga-contribution-card { grid-template-columns: 1fr; }
  .mga-collection-intro { display: block; }
  .mga-project-filters.is-ready { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem .7rem; }
  .mga-project-filters button { font-size: .83rem; }
  .mga-project-collection .views-view-responsive-grid { grid-template-columns: 1fr; }
  .mga-service-intro { display: block; }
  .mga-service-intro__lead { margin-bottom: 1rem; }
  .mga-news-onward__stories { grid-template-columns: 1fr; }
  .mga-teaching-collection .views-view-responsive-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .mga-contribution-card, .mga-contribution-card > a span,
  .mga-district-church-details summary { transition: none; }
  .mga-project-filters button::after,
  .mga-news-onward__stories a { transition: none; }
}

/* Research landing: show the Wittenberg study before the long methodology. */
.mga-research-landing { max-width: 1240px; margin: 0 auto; padding: clamp(1rem, 2vw, 1.5rem) 0 clamp(3rem, 5vw, 5rem); }
.mga-research-landing__hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.mga-research-landing__kicker { margin: 0 0 .75rem; color: var(--mga-petrol-dark); font-size: .76rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.mga-research-landing__intro h2 { max-width: 24ch; margin: 0 0 1.3rem; font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.08; hyphens: none; }
.mga-research-landing__lead { max-width: 54ch; margin: 0 0 1.5rem; font-size: clamp(1.08rem, 1.4vw, 1.25rem); line-height: 1.55; }
.mga-research-landing__action { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-weight: 700; text-decoration: none; }
.mga-research-landing__action:is(:hover, :focus-visible) { border-bottom-width: 2px; color: var(--mga-petrol-dark); }
.mga-research-landing__map { display: block; border: 1px solid var(--mga-warm-line); background: #fff; color: var(--mga-nav-ink); text-decoration: none; transition: border-color 180ms ease, background-color 180ms ease; }
.mga-research-landing__map:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); color: var(--mga-nav-ink); }
.mga-research-landing__map img { display: block; width: 100%; height: clamp(240px, 28vw, 350px); padding: .5rem 1rem 0; background: var(--mga-warm-paper); object-fit: contain; }
.mga-research-landing__map-caption { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 1rem 1.2rem; }
.mga-research-landing__map-caption strong { font-size: 1rem; }
.mga-research-landing__map-caption small { color: var(--mga-nav-muted); font-size: .78rem; text-align: right; }
.mga-research-landing__routes { margin-top: clamp(2.5rem, 5vw, 5rem); }
.mga-research-landing__routes > h2 { margin-bottom: 1.2rem; font-size: clamp(1.4rem, 2vw, 1.85rem); }
.mga-research-landing__route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.mga-research-landing__route { position: relative; display: grid; align-content: start; min-height: 184px; padding: 1.25rem 1.4rem 2.4rem; border: 1px solid var(--mga-warm-line); background: #fff; color: var(--mga-nav-ink); text-decoration: none; transition: border-color 180ms ease, background-color 180ms ease; }
.mga-research-landing__route:is(:hover, :focus-visible) { border-color: #8eaaa3; background: var(--mga-petrol-wash); color: var(--mga-nav-ink); }
.mga-research-landing__route > span:first-child { margin-bottom: .7rem; color: var(--mga-petrol-dark); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mga-research-landing__route strong { margin-bottom: .55rem; font-size: 1.15rem; }
.mga-research-landing__route small { max-width: 38ch; color: var(--mga-nav-muted); font-size: .9rem; line-height: 1.5; }
.mga-research-landing__arrow { position: absolute; right: 1.35rem; bottom: 1rem; color: var(--mga-petrol-dark); }
.mga-research-landing__method { display: grid; grid-template-columns: minmax(12rem, .35fr) minmax(0, .65fr); gap: clamp(1.5rem, 5vw, 5rem); margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(1.8rem, 3vw, 2.5rem); border-top: 1px solid var(--mga-warm-line); }
.mga-research-landing__method h2 { max-width: 18ch; font-size: clamp(1.7rem, 2.5vw, 2.25rem); }
.mga-research-landing__method-copy p { max-width: 72ch; line-height: 1.7; }
.mga-research-landing__service-links { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin-top: 1.5rem; }
.mga-research-landing__service-links a { min-height: 36px; border-bottom: 1px solid var(--mga-petrol); color: var(--mga-petrol-dark); font-weight: 650; text-decoration: none; }
.mga-research-landing__service-links a:is(:hover, :focus-visible) { border-bottom-width: 2px; color: var(--mga-petrol-dark); }
@media (max-width: 760px) {
  .mga-research-landing__hero, .mga-research-landing__method { grid-template-columns: 1fr; }
  .mga-research-landing__route-grid { grid-template-columns: 1fr; }
  .mga-research-landing__route { min-height: 150px; }
  .mga-research-landing__map-caption { flex-wrap: wrap; }
  .mga-research-landing__map-caption small { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .mga-research-landing__map, .mga-research-landing__route { transition: none; }
}
