/* =========================================================
   CONCEPT 8 — FLOW
   One continuous pale-green page: soft green glows fade in and out
   from different directions (no section blocks, no rules).
   Serif only for the hero title and the footer wordmark.
   Icons stay out of the first screen and appear further down.
   ========================================================= */
:root {
  --serif: 'Instrument Serif', 'Times New Roman', serif;
  --base: #f5fcea;
  --glow: #c9ee9f;
  --glow-soft: #dff5c2;
  --forest: #2b3f35;
  --terra: #9a6145;
}
html { overflow-x: clip; }
body.glp { background: var(--base); overflow-x: clip; position: relative; }

body.glp .sticker { position: absolute; height: auto; pointer-events: none; z-index: 2; }
body.glp .flow { position: relative; background: transparent; padding: clamp(5rem, 9vw, 8rem) 0; }
body.glp .flow > .container { position: relative; z-index: 3; }
body.glp .flow::before { content: ''; position: absolute; inset: -12rem 0; z-index: 0; pointer-events: none; }

/* glows: positioned differently per section, all fade to --base at the edges */
body.glp .g-ziel::before   { background: radial-gradient(ellipse 55% 55% at 92% 45%, var(--glow) 0%, rgba(201,238,159,0.55) 35%, rgba(245,252,234,0) 72%); }
body.glp .g-work::before   { background: radial-gradient(ellipse 60% 45% at 4% 38%, var(--glow) 0%, rgba(201,238,159,0.5) 40%, rgba(245,252,234,0) 75%),
                                    radial-gradient(ellipse 45% 26% at 100% 66%, var(--glow-soft) 0%, rgba(245,252,234,0) 70%); }
body.glp .g-funder::before { background: radial-gradient(ellipse 70% 38% at 50% 78%, var(--glow) 0%, rgba(201,238,159,0.5) 40%, rgba(245,252,234,0) 75%); }

/* ---------- HERO (as before, just fading into --base) ---------- */
body.glp .hero-fade { background: linear-gradient(to bottom, rgba(245,252,234,0), var(--base)); }
body.glp .hero-content { max-width: 1000px; padding-bottom: 4rem; }
body.glp .hero h1 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; font-size: clamp(4.6rem, min(13vw, 26vh), 12rem); white-space: normal; margin-bottom: 1.6rem; line-height: 0.82; color: var(--forest); }
body.glp .hero h1 span.l { display: block; }
body.glp .hero h1 em { font-style: italic; color: var(--forest); }
body.glp .hero p { font-size: clamp(1.05rem, 1.7vw, 1.3rem); max-width: 34rem; }
body.glp .hero-tag { letter-spacing: 0.1em; }
/* swapped sides: mouth left, megaphone-fist right */
body.glp .hero .s-mouth { left: clamp(1.5rem, 7vw, 10rem); top: 16rem; width: clamp(7.8rem, 15.5vw, 14.5rem); transform: rotate(-8deg); }
body.glp .hero .s-fist  { right: clamp(4rem, 13vw, 18rem); bottom: 2.5rem; height: clamp(14rem, 46vh, 26rem); width: auto; transform: rotate(8deg); }

/* ---------- TYPE: back to the site's own sans, smaller ---------- */
body.glp h2.glp-title { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; letter-spacing: -0.035em; line-height: 1.02; font-size: clamp(2.2rem, 4.2vw, 3.5rem); color: var(--green-dark); }
body.glp .cols { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; align-items: start; }
body.glp .manifest { font-size: clamp(1.35rem, 2.1vw, 1.8rem); font-weight: 600; line-height: 1.28; letter-spacing: -0.02em; color: var(--text-primary); margin-bottom: 1.4rem; max-width: 34rem; }
body.glp .body, body.glp .intro { font-size: 1.04rem; max-width: 38rem; }

.glp-list { list-style: none; margin-top: 3.6rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
.glp-row { display: flex; flex-direction: column; gap: 0.7rem; padding: 1.7rem 1.6rem 1.8rem; background: rgba(255,255,255,0.45); border: 1px solid rgba(58,114,37,0.28); border-radius: 18px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: background 0.25s, transform 0.25s; }
.glp-row:hover { background: rgba(255,255,255,0.7); transform: translateY(-3px); }
.glp-row .no { font-weight: 800; font-size: 0.85rem; letter-spacing: 0.04em; color: var(--green-deep); }
.glp-row h3 { font-size: 1.2rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; color: var(--green-dark); }
.glp-row p { margin: 0; font-size: 0.9rem; line-height: 1.62; }
.glp-foot { margin: 2.4rem 0 0; display: flex; gap: 1.6rem; align-items: center; max-width: 56rem; font-size: 0.95rem; }
.glp-foot .pt { width: 9.5rem; height: auto; flex: none; transform: rotate(-4deg); }

/* ---------- ICONS further down ---------- */
body.glp .s-ziel   { right: -3rem; top: 50%; width: clamp(14rem, 27vw, 26rem); transform: translateY(-50%) rotate(-6deg); }
body.glp .s-mic    { left: clamp(-1rem, 1vw, 2rem); top: 9rem; width: clamp(5.5rem, 9vw, 8.5rem); transform: rotate(-9deg); }
body.glp .s-rays   { right: clamp(-2rem, 1vw, 2rem); top: 22rem; width: clamp(6rem, 10vw, 9.5rem); transform: rotate(10deg); }
body.glp .s-mega   { right: clamp(-2rem, 2vw, 4rem); top: 1.5rem; width: clamp(8rem, 14vw, 13rem); transform: rotate(14deg); }

body.glp .funder-row { margin-top: 2.2rem; }

/* ---------- FOOTER ---------- */
body.glp footer { background: transparent; border-top: 0; overflow: hidden; position: relative; z-index: 3; }
body.glp .footer-copy { border-top: 0; }
.glp-wordmark { font-family: var(--serif); font-size: 14.4vw; line-height: 0.82; letter-spacing: -0.03em; white-space: nowrap; text-align: center; padding-top: 1.2rem; margin-bottom: -0.17em; color: var(--forest); user-select: none; }
.glp-wordmark em { color: var(--terra); }

@media (max-width: 860px) {
  body.glp .hero { padding-bottom: 11rem; }
  body.glp .hero-content { padding-bottom: 1rem; }
  body.glp .hero h1 { font-size: clamp(3.9rem, 21vw, 7rem); }
  body.glp .hero-tag { max-width: 17rem; line-height: 1.4; padding: 6px 16px; border-radius: 18px; }
  body.glp .hero .s-mouth { width: 7rem; top: auto; bottom: 1.2rem; left: 0.6rem; }
  body.glp .hero .s-fist { height: 8.8rem; right: 0.8rem; bottom: 1.2rem; }
  body.glp .cols { grid-template-columns: 1fr; gap: 1.4rem; }
  .glp-list { margin-top: 2.4rem; }
  .glp-row { grid-template-columns: 2.4rem minmax(0, 1fr); }
  .glp-row > div { grid-column: 1 / -1; }
  body.glp .s-ziel { position: relative; display: block; right: auto; top: auto; transform: rotate(-6deg); width: 13rem; margin: 2rem 0 0 auto; }
  body.glp .s-mic { width: 4.6rem; top: 3.2rem; left: auto; right: 1rem; }
  body.glp .s-rays { display: none; }
  body.glp .s-mega { width: 7rem; top: 0.5rem; }
  .glp-foot { flex-direction: column; align-items: flex-start; }
  .glp-foot .pt { width: 7.5rem; }
  .glp-wordmark { font-size: 14.2vw; }
}
/* first glow sits under the hero edge: fade it in from the section top */
body.glp .g-ziel::before { -webkit-mask-image: linear-gradient(to bottom, transparent 0, transparent 11rem, #000 22rem); mask-image: linear-gradient(to bottom, transparent 0, transparent 11rem, #000 22rem); }
body.glp .g-funder::before { inset: -12rem 0 -28rem 0; background: radial-gradient(ellipse 70% 32% at 50% 66%, var(--glow) 0%, rgba(201,238,159,0.5) 40%, rgba(245,252,234,0) 75%); }
body.glp footer, body.glp .footer-inner { background: transparent; }

/* thin section rules: just inside both edges, pale-dark green */
.glp-rule { position: relative; z-index: 3; border: 0; height: 1px; margin: 0 auto; width: calc(100% - 24rem); background: rgba(58,114,37,0.2); }
body.glp footer .glp-rule { width: calc(100% - 24rem); }
.glp-wordmark { line-height: 1; margin-bottom: 0; padding: 1.4rem 0 0.4rem; }
body.glp .footer-copy { padding-bottom: 1.6rem; }
@media (max-width: 900px) {
  .glp-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; }
  .glp-row { grid-template-columns: none; padding: 1.2rem 1.05rem 1.3rem; border-radius: 14px; }
  .glp-row > div { grid-column: auto; }
  .glp-row h3 { font-size: 1.02rem; }
  .glp-row p { font-size: 0.8rem; line-height: 1.55; }
  .glp-rule { width: calc(100% - 10rem); }
}
@media (max-width: 900px) {
  .glp-row { min-width: 0; overflow: hidden; }
  .glp-row h3 { overflow-wrap: anywhere; hyphens: auto; font-size: 0.98rem; }
  body.glp .s-mic { width: 3.4rem; top: 0.5rem; right: 0.8rem; }
}
@media (max-width: 900px) { .glp-row p { overflow-wrap: anywhere; hyphens: auto; } }


/* small terracotta line between tagline and button */
body.glp .hero p.hero-sub { margin: -0.4rem auto 1.7rem; font-size: clamp(0.72rem, 1vw, 0.86rem); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #a8694a; max-width: none; }
@media (max-width: 860px) {
  body.glp .hero { padding-bottom: 11rem; }
  body.glp .hero .s-mouth { left: 1.6rem; width: 8rem; }
  body.glp .hero .s-fist { height: 9.8rem; right: 2.2rem; }
}

/* ===== round 9 ===== */
/* never black: one dark green for all text */
body.glp { --text-primary: #2b3f35; --text-secondary: #2f4a3a; }
body.glp .footer-col h5, body.glp .footer-copy { color: #2b3f35; }

/* headline typography: condensed poster type, first word solid, second word outlined */
body.glp h1.glp-title, body.glp h2.glp-title { font-family: 'Anton', 'Impact', sans-serif; font-weight: 400; text-transform: uppercase; letter-spacing: 0.012em; line-height: 1; font-size: clamp(2.5rem, 4.8vw, 4.2rem); color: #2b3f35; margin-bottom: 1.5rem; }
body.glp h1.glp-title em, body.glp h2.glp-title em { font-style: normal; color: transparent; -webkit-text-stroke: 1.5px #2b3f35; }
body.glp .manifest { color: #2b3f35; }

/* headline + text on one side, graphic on the other */
body.glp .split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 4rem; align-items: center; }
body.glp .split.rev { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
body.glp .split .art img { display: block; width: 100%; max-width: 27rem; height: auto; margin-inline: auto; transform: rotate(-5deg); }
body.glp .split.rev .art img { width: auto; max-width: 100%; max-height: 24rem; transform: rotate(-7deg); }
body.glp .funder-row > div:first-child h2 { margin-bottom: 1.4rem; }
body.glp .funder-row { align-items: center; margin-top: 0; }

/* cards with icons */
.glp-list { margin-top: 4.4rem; gap: 2.6rem 1.4rem; }
.glp-row { position: relative; overflow: visible; padding-top: 3.1rem; }
.glp-row .ic { position: absolute; top: -2.2rem; right: 0.9rem; width: auto; height: auto; max-width: 7.4rem; max-height: 7.4rem; pointer-events: none; transition: transform 0.3s; }
.glp-row .ic1 { transform: rotate(8deg); } .glp-row .ic2 { transform: rotate(-4deg); max-width: 6.8rem; } .glp-row .ic3 { transform: rotate(10deg); }
.glp-row .ic4 { transform: rotate(-9deg); } .glp-row .ic5 { transform: rotate(7deg); } .glp-row .ic6 { transform: rotate(-6deg); }
.glp-row:hover .ic { transform: rotate(0) scale(1.08); }

/* footer: green fade starts before the footer and stays to the very bottom */
body.glp .g-funder::before { display: none; }
body.glp footer { margin-top: -7rem; padding-top: 7rem; background: linear-gradient(to bottom, rgba(245,252,234,0) 0, rgba(223,245,194,0.9) 9rem, #cdefa6 100%); }
@media (max-width: 900px) {
  body.glp .split, body.glp .split.rev { grid-template-columns: 1fr; gap: 1.6rem; }
  body.glp .split.rev .art { order: 2; }
  body.glp .split .art img { max-width: 14rem; margin-inline: 0; }
  body.glp .split.rev .art img { max-height: 13rem; }
  .glp-row { overflow: visible; padding-top: 2.4rem; }
  .glp-row .ic { max-width: 3.6rem; max-height: 3.8rem; top: -1.1rem; right: 0.6rem; }
  .glp-list { margin-top: 3rem; gap: 1.8rem 0.9rem; }
  body.glp footer { margin-top: -5rem; padding-top: 5rem; }
}

/* ===== round 10 ===== */
body.glp h1.glp-title, body.glp h2.glp-title { line-height: 1.14; }
body.glp .g-ziel .manifest em, body.glp .g-ziel .body em { font-style: normal; }

/* hero sub-line: curvy italic, flanked by short rules */
body.glp .hero p.hero-sub { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: -0.2rem auto 1.8rem; font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(1.25rem, 1.9vw, 1.7rem); letter-spacing: 0; text-transform: none; color: #a8694a; max-width: none; line-height: 1.1; }
body.glp .hero p.hero-sub::before, body.glp .hero p.hero-sub::after { content: ''; width: clamp(1.5rem, 4vw, 3.4rem); height: 1px; background: #a8694a; opacity: 0.7; }
body.glp .hero p.hero-sub span { display: none; }
body.glp .hero p.hero-sub span.active { display: inline; }

/* footer: rule inside the footer, wordmark exactly as wide as the content column */
body.glp footer { padding-top: 7rem; }
body.glp footer .glp-rule-top { margin-bottom: 3.2rem; }
body.glp footer .footer-inner { padding-top: 0; }
.glp-wordmark { font-size: calc((min(100vw, 1100px) - 4rem) / 6.1); text-align: center; padding: 1.2rem 0 0.6rem; overflow: visible; }
@media (max-width: 900px) { .glp-wordmark { font-size: calc((100vw - 4rem) / 6.1); } }

/* supporters: megaphone sits right beside the headline */
body.glp .h2-row { display: flex; align-items: center; gap: 1.6rem; margin-bottom: 1.4rem; }
body.glp .h2-row h2 { margin: 0; }
body.glp .h2-row .mega-in { width: clamp(4.2rem, 6.5vw, 6.2rem); height: auto; transform: rotate(12deg); flex: none; }
body.glp .funder-row h2 { line-height: 1.32; }

/* round 11: hero text lines use the nav typeface (Plus Jakarta Sans) */
body.glp .hero p { font-family: 'Plus Jakarta Sans', sans-serif; font-style: normal; }
body.glp .hero p.hero-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-style: normal; font-weight: 600; font-size: clamp(0.95rem, 1.3vw, 1.12rem); letter-spacing: 0.01em; }

/* more air between the workshop boxes and the WHO text */
body.glp .glp-foot { margin-top: 5rem; }
@media (max-width: 900px) { body.glp .glp-foot { margin-top: 3.4rem; } }

/* round 12 */
body.glp .g-work { padding-bottom: 4.2rem; }
body.glp .h2-row { gap: 0.8rem; align-items: flex-start; }
body.glp .h2-row .mega-in { width: clamp(6.5rem, 10.5vw, 9.8rem); margin-top: -2.4rem; transform: rotate(8deg); }
@media (max-width: 900px) { body.glp .g-work { padding-bottom: 3rem; } body.glp .h2-row .mega-in { width: 5.2rem; margin-top: -1.2rem; } }
body.glp .h2-row { align-items: center; gap: 0.6rem; }
body.glp .h2-row .mega-in { margin-top: -0.8rem; margin-left: -0.6rem; }
@media (max-width: 900px) { body.glp .h2-row .mega-in { margin-top: -0.6rem; margin-left: 0; } }

/* round 13: no side rules next to the hero sub-line */
body.glp .hero p.hero-sub::before, body.glp .hero p.hero-sub::after { display: none; }

/* round 14: supporters megaphone a bit higher */
body.glp .h2-row .mega-in { margin-top: -3.2rem; }
@media (max-width: 900px) { body.glp .h2-row .mega-in { margin-top: -2rem; } }

/* round 15: hero sub-line smaller and higher */
body.glp .hero p.hero-sub { font-size: clamp(0.8rem, 1.05vw, 0.95rem); margin: -1.35rem auto 1.7rem; }

/* round 16: hero icons nudged */
body.glp .hero .s-fist { bottom: 4.2rem; }
body.glp .hero .s-mouth { left: clamp(1.8rem, 8.2vw, 11.8rem); }
@media (max-width: 860px) { body.glp .hero .s-fist { bottom: 2.4rem; } body.glp .hero .s-mouth { left: 2rem; } }

/* round 17: slightly more air under the title, text block a touch lower */
body.glp .hero h1 { margin-bottom: 2.2rem; }
@media (min-width: 861px) { body.glp .hero-content { padding-bottom: 2.6rem; } }

/* round 18: mouth a hair lower */
@media (min-width: 861px) { body.glp .hero .s-mouth { top: 17.2rem; } }

/* round 20: supporters headline on one line, text and logos share the row below */
body.glp .g-funder h2 { white-space: nowrap; margin-bottom: 2rem; }
body.glp .g-funder .funder-row { margin-top: 0; align-items: center; }
@media (max-width: 900px) { body.glp .g-funder h2 { white-space: normal; } }

/* round 21: text block under the title a bit lower */
body.glp .hero h1 { margin-bottom: 3rem; }
@media (min-width: 861px) { body.glp .hero-content { padding-bottom: 1.4rem; } }

/* round 22: hero without side icons; phone layout for the section graphics */
body.glp .hero { padding-bottom: 5rem; }
@media (max-width: 900px) {
  body.glp .hero { padding-bottom: 4rem; }
  body.glp .hero-content { padding-bottom: 0; }

  /* Ziel: smaller icon, top right above the text */
  body.glp .g-ziel .split .art { order: -1; display: flex; justify-content: flex-end; }
  body.glp .g-ziel .split .art img { max-width: 9.5rem; margin: 0; }

  /* Workshops: mic left of the headline, intro text full width below */
  body.glp .split.rev { grid-template-columns: auto minmax(0, 1fr); column-gap: 1.1rem; row-gap: 1.2rem; align-items: center; }
  body.glp .split.rev .art { order: 0; grid-column: 1; grid-row: 1; }
  body.glp .split.rev .art img { max-width: 5.6rem; max-height: 8rem; width: auto; margin: 0; }
  body.glp .split.rev .txt { display: contents; }
  body.glp .split.rev .txt h1, body.glp .split.rev .txt h2 { grid-column: 2; grid-row: 1; margin: 0; }
  body.glp .split.rev .txt p { grid-column: 1 / -1; }

  /* WHO note: no icon */
  .glp-foot .pt { display: none; }
}

/* round 23: phone icons sit in the headline row, about as tall as the headline */
@media (max-width: 900px) {
  body.glp .g-ziel .split { grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; row-gap: 1.2rem; align-items: center; }
  body.glp .g-ziel .split .txt { display: contents; }
  body.glp .g-ziel .split .txt h2 { grid-column: 1; grid-row: 1; margin: 0; }
  body.glp .g-ziel .split .art { order: 0; grid-column: 2; grid-row: 1; display: block; }
  body.glp .g-ziel .split .art img { height: 4.2rem; width: auto; max-width: none; transform: rotate(-5deg); }
  body.glp .g-ziel .split .txt p { grid-column: 1 / -1; }

  body.glp .split.rev { row-gap: 1.2rem; }
  body.glp .split.rev .art img { height: 5.6rem; max-height: none; width: auto; max-width: none; }
}

/* round 24: phone side margins, icon a bit further in, more air beside the mic */
@media (max-width: 900px) {
  body.glp .container, body.glp footer .footer-inner { padding-left: 1.7rem; padding-right: 1.7rem; }
  body.glp .g-ziel .split .art { margin-right: 0.9rem; }
  body.glp .split.rev { column-gap: 2rem; }
}

/* phone fixes: footer rules were collapsing, supporter logos overflowed */
@media (max-width: 900px) {
  body.glp footer .glp-rule, .glp-rule { width: calc(100% - 6rem); }
  body.glp .funder-logos { gap: 1rem; flex-wrap: nowrap; justify-content: flex-start; }
  body.glp .funder-logos img { flex: 1 1 0; min-width: 0; max-width: 48%; height: auto; min-height: 0; max-height: 6rem; object-fit: contain; }
}

/* round 25 (phone only) */
.m-br { display: none; }
@media (max-width: 900px) {
  .m-br { display: inline; }
  body.glp .hero p:not(.hero-sub) { font-size: min(1.05rem, 3.75vw); }

  /* Ziel: icon right next to the headline */
  body.glp .g-ziel .split { grid-template-columns: auto auto; justify-content: start; column-gap: 1.1rem; }
  body.glp .g-ziel .split .art { margin-right: 0; }

  /* Workshops: twice the gap between mic and headline */
  body.glp .split.rev { column-gap: 4rem; }
}
@media (max-width: 900px) { body.glp .g-ziel .split .txt h2 { white-space: nowrap; } }
@media (max-width: 900px) { body.glp .g-ziel .split { column-gap: 0.2rem; } }

/* round 26 (phone only) */
@media (max-width: 900px) {
  /* columns hug their content; the 3rd column soaks up the rest so full-width paragraphs don't stretch them */
  body.glp .g-ziel .split { grid-template-columns: max-content max-content 1fr; column-gap: 0.4rem; }
  body.glp .g-ziel .split .txt p { grid-column: 1 / -1; }
  body.glp .split.rev { grid-template-columns: max-content minmax(0, 1fr); column-gap: 3rem; }

  /* hero: more air between the blocks, most of all above the button */
  body.glp .hero h1 { margin-bottom: 2.6rem; }
  body.glp .hero p:not(.hero-sub) { margin-bottom: 1.2rem; }
  body.glp .hero p.hero-sub { margin: 0 auto 3rem; }
}
@media (max-width: 900px) { body.glp .g-ziel .split { column-gap: 1.3rem; } }

/* phone: supporter logos – same visible height, one centred row (compensates for the whitespace baked into the PNGs) */
@media (max-width: 900px) {
  body.glp .funder-logos { --v: min(4.4rem, 17.5vw); justify-content: center; align-items: center; gap: 0; flex-wrap: nowrap; }
  body.glp .funder-logos img { flex: none; min-width: 0; min-height: 0; max-width: none; max-height: none; width: auto; object-fit: contain; }
  body.glp .funder-logos img:nth-child(1) { height: calc(var(--v) / 0.769); }
  body.glp .funder-logos img:nth-child(2) { height: calc(var(--v) / 0.621); }
}

/* round 27 (phone only) */
@media (max-width: 900px) {
  body.glp .funder-logos { gap: 1.3rem; }
  body.glp .g-ziel .split { column-gap: 2.3rem; }
  body.glp .hero { padding-top: 9rem; }
}

/* round 28: pointing hand now leads the Workshops headline */
body.glp .split.rev .art img { transform: rotate(-4deg); max-height: 20rem; }
.glp-row .ic2 { max-width: 6.2rem; transform: rotate(7deg); }
.glp-row .ic5 { transform: rotate(-9deg); }
@media (max-width: 900px) { body.glp .split.rev .art img { height: 4.2rem; max-height: none; } }
.glp-row .ic5 { max-width: 7.2rem; transform: rotate(-6deg); }
.glp-row .ic4 { max-width: 6.2rem; transform: rotate(-6deg); }
.glp-row .ic6 { transform: rotate(8deg); }

/* phone: bigger supporter logos */
@media (max-width: 900px) {
  body.glp .funder-logos { --v: min(5.3rem, 21.5vw); gap: 0.5rem; }
}
@media (max-width: 900px) { body.glp .funder-logos { --v: min(5.3rem, 20vw); } }
@media (max-width: 900px) {
  body.glp .g-ziel .split { grid-template-columns: max-content max-content minmax(0, 1fr); column-gap: clamp(0.9rem, 6vw, 2.3rem); }
  body.glp .g-ziel .split .art img { height: min(4.2rem, 11.5vw); }
}
@media (max-width: 900px) { body.glp .g-ziel .split .art img { height: min(4.2rem, 16.5vw); } }

/* round 30 (phone): supporter logos scaled exactly like the live site; Ziel glow centred and softer */
@media (max-width: 900px) {
  body.glp .funder-logos { display: flex; align-items: center; justify-content: space-around; gap: 2rem; flex-wrap: nowrap; width: 100%; }
  body.glp .funder-logos img, body.glp .funder-logos img:nth-child(1), body.glp .funder-logos img:nth-child(2) { flex: 1; min-width: 0; max-width: 100%; width: auto; height: auto; min-height: 80px; max-height: 140px; object-fit: contain; }
  body.glp .g-ziel::before { background: radial-gradient(ellipse 95% 40% at 50% 52%, rgba(201,238,159,0.85) 0%, rgba(201,238,159,0.42) 42%, rgba(245,252,234,0) 78%); }
}

/* round 31 (phone): Ziel glow comes in from the side like the Workshops one, just softer */
@media (max-width: 900px) {
  body.glp .g-ziel::before { background: radial-gradient(ellipse 62% 46% at 100% 46%, rgba(201,238,159,0.72) 0%, rgba(201,238,159,0.36) 40%, rgba(245,252,234,0) 76%), radial-gradient(ellipse 40% 24% at 0% 78%, rgba(223,245,194,0.7) 0%, rgba(245,252,234,0) 70%); }
}

/* round 32 (phone): both logos the same visible height, one row, as large as the width allows */
@media (max-width: 900px) {
  body.glp .funder-logos { --v: min(5.4rem, 22vw); justify-content: center; gap: 0.4rem; }
  body.glp .funder-logos img { flex: none; max-width: none; max-height: none; min-height: 0; width: auto; }
  body.glp .funder-logos img:nth-child(1) { height: calc(var(--v) / 0.769); }
  body.glp .funder-logos img:nth-child(2) { height: calc(var(--v) / 0.621); }
}
@media (max-width: 900px) {
  body.glp .funder-logos img:nth-child(1), body.glp .funder-logos img:nth-child(2) { flex: none; max-width: none; max-height: none; min-height: 0; width: auto; }
}

/* Ziel glow (phone) a bit softer */
@media (max-width: 900px) {
  body.glp .g-ziel::before { background: radial-gradient(ellipse 62% 46% at 100% 46%, rgba(201,238,159,0.5) 0%, rgba(201,238,159,0.24) 40%, rgba(245,252,234,0) 76%), radial-gradient(ellipse 40% 24% at 0% 78%, rgba(223,245,194,0.5) 0%, rgba(245,252,234,0) 70%); }
}

/* round 33 (phone): larger supporter logos, row may bleed slightly into the side padding (the PNGs carry their own whitespace) */
@media (max-width: 900px) {
  body.glp .funder-logos { --v: min(6.2rem, 25vw); margin-inline: -1.2rem; width: auto; gap: 0.3rem; }
}
@media (max-width: 900px) { body.glp .funder-logos { --v: min(5.9rem, 23.8vw); } }

/* footer column headings: identical type for all three */
body.glp .footer-col h5, body.glp .footer-col h5[data-footer-de] { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.4; }

/* footer columns (581–900px): hug their content so the last column doesn't run into the right edge */
@media (min-width: 581px) and (max-width: 900px) {
  body.glp .footer-grid { grid-template-columns: repeat(3, max-content); justify-content: start; column-gap: clamp(2.2rem, 8vw, 4.5rem); }
}

/* round 34: larger logo pair on wider phones/tablets (cap raised; width-limited below ~520px) */
@media (max-width: 900px) { body.glp .funder-logos { --v: min(7.7rem, 23.8vw); gap: 0.8rem; } }

/* round 35 (581–900px): columns spread across the full row; the last one ends where the rule ends */
@media (min-width: 581px) and (max-width: 900px) {
  body.glp .footer-grid { grid-template-columns: repeat(3, max-content); justify-content: space-between; column-gap: 1rem; margin-right: calc(5rem - 1.7rem); }
}
@media (min-width: 581px) and (max-width: 900px) { body.glp .footer-grid { margin-right: calc(3rem - 1.7rem); } }
@media (max-width: 900px) { body.glp .funder-logos { gap: 1.6rem; } }
@media (max-width: 440px) { body.glp .funder-logos { gap: 0.9rem; --v: min(7.7rem, 22.2vw); } }
.glp-row .ic4 { max-width: 7.2rem; transform: rotate(-6deg); }
.glp-row .ic5 { max-width: 6.2rem; transform: rotate(-9deg); }
.glp-row .ic6 { max-width: 6.2rem; transform: rotate(8deg); }
.glp-row .ic3 { max-width: 7.2rem; transform: rotate(-6deg); }
.glp-row .ic4 { max-width: 6.2rem; transform: rotate(10deg); }
.glp-row .ic2 { max-width: 6.2rem; transform: rotate(-9deg); }
.glp-row .ic5 { max-width: 6.8rem; transform: rotate(7deg); }

/* =========================================================
   SUBPAGES (Mitmachen, Partner, Über uns, Kontakt, Blog, legal)
   ========================================================= */
body.glp { --cream: #f5fcea; --cream-dark: transparent; --glass-bg: rgba(255,255,255,0.45); --glass-border: rgba(58,114,37,0.28); }
body.glp .section-label { color: var(--forest) !important; letter-spacing: 0.1em; }
body.glp .native-form > p { color: var(--green-dark) !important; }

/* sections: transparent, with soft glows from alternating directions and thin rules between them */
body.glp .section, body.glp .section--alt, body.glp .blog-section, body.glp .article-section, body.glp .article-header { position: relative; background-color: transparent; }
body.glp .section-divider { display: none; }
body.glp section.section:nth-of-type(3n+1) { background-image: radial-gradient(ellipse 55% 55% at 94% 45%, rgba(201,238,159,0.55) 0%, rgba(201,238,159,0.26) 38%, rgba(245,252,234,0) 74%); }
body.glp section.section:nth-of-type(3n+2) { background-image: radial-gradient(ellipse 55% 45% at 4% 40%, rgba(201,238,159,0.5) 0%, rgba(201,238,159,0.24) 40%, rgba(245,252,234,0) 75%); }
body.glp section.section:nth-of-type(3n) { background-image: radial-gradient(ellipse 70% 40% at 50% 80%, rgba(201,238,159,0.5) 0%, rgba(201,238,159,0.24) 40%, rgba(245,252,234,0) 75%); }
body.glp .page-hero + section::before, body.glp .section + section::before, body.glp .section + .section::before {
  content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: calc(100% - 24rem); height: 1px; background: rgba(58,114,37,0.2);
}
@media (max-width: 900px) { body.glp .page-hero + section::before, body.glp .section + section::before { width: calc(100% - 6rem); } }

/* page hero: no photo, calm green glow, serif title like the home page, one small icon */
body.glp .page-hero { padding: 9.5rem 1.5rem 5rem; background: radial-gradient(ellipse 60% 85% at 50% 45%, rgba(201,238,159,0.55) 0%, rgba(201,238,159,0.2) 50%, rgba(245,252,234,0) 80%); overflow: visible; }
body.glp .page-hero-bg, body.glp .page-hero-fade { display: none; }
body.glp .page-hero h1 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; line-height: 0.9; font-size: clamp(4rem, 9vw, 7.5rem); color: var(--forest); margin-bottom: 1.4rem; }
body.glp .page-hero p { font-size: clamp(1rem, 1.5vw, 1.15rem); max-width: 34rem; color: var(--forest); }
body.glp .page-hero .hero-icon { position: absolute; z-index: 2; height: auto; pointer-events: none; width: clamp(5.5rem, 9vw, 9rem); right: clamp(3rem, 14vw, 16rem); top: 8.2rem; transform: rotate(8deg); }
@media (max-width: 700px) { body.glp .page-hero { padding: 8.5rem 1.5rem 3.8rem; } body.glp .page-hero .hero-icon { width: 4.6rem; right: 1.4rem; top: 5.2rem; } }

/* section titles on subpages: poster type, last word outlined */
body.glp h2.section-title, body.glp h2.glp-title.sub { font-family: 'Anton', 'Impact', sans-serif; font-weight: 400; text-transform: uppercase; letter-spacing: 0.012em; line-height: 1.14; font-size: clamp(2.2rem, 4.2vw, 3.4rem); color: #2b3f35; }
body.glp h2.section-title em, body.glp h2.glp-title.sub em { font-style: normal; color: transparent; -webkit-text-stroke: 1.5px #2b3f35; }

/* cards and form panels: same frosted look as the workshop boxes */
body.glp .glass-card, body.glp .native-form { background: rgba(255,255,255,0.45); border: 1px solid rgba(58,114,37,0.28); }

/* round: icon sized by height, white-ish inputs and cards */
body.glp .page-hero .hero-icon { width: auto; height: clamp(5rem, 8vw, 7.6rem); }
@media (max-width: 700px) { body.glp .page-hero .hero-icon { height: 4.6rem; width: auto; } }
body.glp .form-group input, body.glp .form-group textarea, body.glp .form-group select { background: rgba(255,255,255,0.75); }
body.glp .contact-card, body.glp .info-card, body.glp .two-col > .glass-card { background: rgba(255,255,255,0.45); border: 1px solid rgba(58,114,37,0.28); }
body.glp .kontakt-card { background: rgba(255,255,255,0.45); border: 1px solid rgba(58,114,37,0.28); }
body.glp .blog-card-tag { color: var(--green-deep) !important; }
body.glp .blog-card, body.glp .blog-filter-pill { background: rgba(255,255,255,0.45); border-color: rgba(58,114,37,0.28); }
body.glp .blog-filter-pill.active { background: var(--green-dark); border-color: var(--green-dark); color: #fff; }
body.glp .article-header h1 { font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; line-height: 0.95; font-size: clamp(2.8rem, 6vw, 4.6rem); color: var(--forest); }
body.glp .form-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
body.glp .form-head h2 { margin: 0; }
body.glp .form-icon { height: clamp(4.6rem, 7vw, 6.4rem); width: auto; transform: rotate(8deg); margin-right: 1.2rem; flex: none; pointer-events: none; }
@media (max-width: 700px) { body.glp .form-icon { height: 3.8rem; margin-right: 0.2rem; } }
body.glp .form-icon { height: clamp(4rem, 6vw, 5.4rem); transform: rotate(-6deg); }
@media (max-width: 700px) { body.glp .form-icon { display: none; } }

/* form heading: icon directly after the text */
body.glp .form-head { justify-content: flex-start; gap: 1.4rem; }
body.glp .form-icon { margin-right: 0; }
body.glp .glp-foot .pt { width: auto; height: 8.6rem; transform: rotate(-6deg); margin-left: 1.2rem; margin-right: 0.6rem; }

/* WHO note: icon exactly as tall as the text block (absolute so it never drives the height) */
body.glp .glp-foot { position: relative; display: block; padding-left: 6.2rem; max-width: 56rem; min-height: 6rem; }
body.glp .glp-foot .pt { position: absolute; left: 0; top: 0; height: 100%; width: auto; max-height: none; margin: 0; transform: rotate(-5deg); transform-origin: center; }
@media (max-width: 900px) { body.glp .glp-foot { padding-left: 0; } }

/* phones (<580px): footer columns side by side */
@media (max-width: 580px) {
  body.glp .footer-grid { grid-template-columns: repeat(3, max-content); justify-content: space-between; column-gap: 0.9rem; row-gap: 0; margin-right: calc(3rem - 1.7rem); }
  body.glp .footer-col h5 { font-size: 0.66rem; letter-spacing: 0.07em; margin-bottom: 0.7rem; }
  body.glp .footer-col li { margin-bottom: 0.45rem; }
  body.glp .footer-col a { font-size: 0.74rem; }
}

/* advisory board on phones: one card per row */
@media (max-width: 660px) { body.glp .beirat-grid { grid-template-columns: minmax(0, 1fr); } }

/* terracotta: blog categories and workshop numbers */
body.glp .blog-card-tag, body.glp #articleCategory { color: #a8694a !important; }
body.glp .glp-row .no { color: #a8694a; }

/* ---- Blog: local help resources (always visible below the posts) ---- */
body.glp .help-section { padding: 4.5rem 0 5.5rem; position: relative; }
body.glp .help-intro { max-width: 40rem; margin-bottom: 2.2rem; }
body.glp .help-list { display: flex; flex-direction: column; border-top: 1px solid rgba(58,114,37,0.22); }
body.glp .help-row { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap; padding: 1.15rem 0; border-bottom: 1px solid rgba(58,114,37,0.22); }
body.glp .help-city { font-size: 1.15rem; font-weight: 700; color: var(--forest); letter-spacing: -0.01em; }
body.glp .help-actions { display: flex; gap: 0.7rem; flex-wrap: wrap; }
body.glp .help-actions .btn { padding: 0.55rem 1.25rem; font-size: 0.82rem; }
body.glp .help-actions .btn-glass { border: 1.5px solid var(--green-dark); background: transparent; }
body.glp .help-empty { color: var(--text-muted); }
@media (max-width: 560px) { body.glp .help-actions { width: 100%; } body.glp .help-actions .btn { flex: 1; justify-content: center; } }

/* ---- Help resources: detail page ---- */
body.glp .help-hero h1 { font-size: clamp(2.8rem, 6vw, 5rem); line-height: 0.98; max-width: 16ch; margin-inline: auto; }
body.glp .help-detail { padding: 1rem 0 5rem; position: relative; }
body.glp .help-back { display: inline-block; font-size: 0.85rem; font-weight: 600; color: var(--forest); margin-bottom: 2rem; }
body.glp .help-text { font-size: 1.08rem; max-width: 42rem; color: var(--forest); }
body.glp .help-h2 { font-family: 'Anton', 'Impact', sans-serif; font-weight: 400; text-transform: uppercase; font-size: clamp(1.8rem, 3.4vw, 2.6rem); color: var(--forest); margin: 2.6rem 0 1rem; }
body.glp .help-note { font-size: 0.85rem; color: var(--forest); opacity: 0.85; margin-top: 1.6rem; max-width: 42rem; }
body.glp .help-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin: 2rem 0; }
body.glp .help-card { background: rgba(255,255,255,0.45); border: 1px solid rgba(58,114,37,0.28); border-radius: 18px; padding: 1.5rem 1.5rem 1.3rem; display: flex; flex-direction: column; gap: 0.75rem; }
body.glp .help-card h3 { font-size: 1.15rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; color: var(--green-dark); }
body.glp .help-card h3 a { color: inherit; }
body.glp .help-card h3 a:hover { text-decoration: underline; }
body.glp .help-field { display: flex; flex-direction: column; gap: 0.1rem; }
body.glp .help-label { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #a8694a; }
body.glp .help-value { font-size: 0.93rem; line-height: 1.55; color: var(--forest); }
body.glp .help-field-phone { margin-top: auto; padding-top: 0.5rem; }
body.glp .help-field-phone .help-value { display: flex; flex-wrap: wrap; gap: 0.5rem; }
body.glp .help-phone { display: inline-block; font-weight: 800; font-size: 1.05rem; color: var(--green-dark); border: 1.5px solid var(--green-dark); border-radius: 100px; padding: 0.3rem 0.95rem; text-decoration: none; }
body.glp .help-phone:hover { background: var(--green-dark); color: #fff; text-decoration: none; }
body.glp .help-notice { background: rgba(255,255,255,0.6); border: 2px solid var(--green-dark); border-radius: 18px; padding: 1.4rem 1.6rem; margin: 2rem 0; max-width: 44rem; }
body.glp .help-notice h3 { font-size: 1.15rem; font-weight: 800; color: var(--green-dark); margin-bottom: 0.6rem; }
body.glp .help-notice p { font-size: 0.97rem; margin-bottom: 0.3rem; color: var(--forest); }
body.glp .help-download-bar { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(58,114,37,0.2); }
@media (max-width: 760px) { body.glp .help-cards { grid-template-columns: minmax(0, 1fr); } }
body.glp .help-hero h1 { max-width: 22ch; font-size: clamp(2.6rem, 5.2vw, 4.4rem); }

/* help detail page: title under the back link, meta line */
body.glp .help-hero h1 { font-size: clamp(4rem, 9vw, 7.5rem); max-width: none; }
body.glp .help-page-title { font-family: 'Anton', 'Impact', sans-serif; font-weight: 400; text-transform: uppercase; letter-spacing: 0.012em; line-height: 1.14; font-size: clamp(2rem, 3.8vw, 3rem); color: var(--forest); margin-bottom: 0.7rem; max-width: 30ch; }
body.glp .help-meta { font-size: 0.95rem; font-weight: 600; color: #a8694a; margin-bottom: 1.4rem; }

/* the footer overlaps the section above it (for the colour fade); it must not swallow clicks there */
body.glp footer { pointer-events: none; }
body.glp footer .footer-inner, body.glp footer a, body.glp footer .glp-rule { pointer-events: auto; }
body.glp .form-privacy { margin-top: 0.4rem; }
body.glp .form-privacy a { text-decoration: underline; }

/* help detail page: intro, note and notice use the full width of the cards */
body.glp .help-text, body.glp .help-note, body.glp .help-notice, body.glp .help-page-title { max-width: none; }

/* ---- Blog post: "Mehr zum Thema" box ---- */
body.glp .related-posts { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(58,114,37,0.28); }
body.glp .related-posts h2 { font-size: 1.25rem; font-weight: 800; color: var(--green-dark); letter-spacing: -0.02em; margin-bottom: 1rem; }
body.glp .related-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
body.glp .related-card { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.1rem 1.25rem; border-radius: 14px; border: 1px solid rgba(58,114,37,0.28); background: rgba(255,255,255,0.45); text-decoration: none; color: inherit; transition: border-color 0.2s, transform 0.2s; }
body.glp .related-card:hover { border-color: var(--green-deep); transform: translateY(-2px); text-decoration: none; }
body.glp .related-tag { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #a8694a; }
body.glp .related-title { font-size: 1rem; font-weight: 700; line-height: 1.4; color: var(--green-dark); }

/* ---- Workshops für Schulen ---- */
body.glp .flex-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; align-items: center; }
body.glp .work-photo { margin: 0; border-radius: 22px; overflow: hidden; border: 1px solid rgba(58,114,37,0.28); aspect-ratio: 4 / 3; background: rgba(255,255,255,0.45); }
body.glp .work-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.glp .flex-txt h2 { margin-bottom: 1.2rem; }
body.glp .flex-text { font-size: 1.05rem; line-height: 1.8; margin: 0 0 1.8rem; }
body.glp h2.glp-title.solid em { color: inherit; -webkit-text-stroke: 0; }
@media (max-width: 900px) {
  body.glp .flex-split { grid-template-columns: 1fr; gap: 2rem; }
  body.glp .work-photo { aspect-ratio: 4 / 3; border-radius: 16px; }
}

/* ---- Vorträge & Wissen (Startseite) ---- */
body.glp .g-events .intro { max-width: none; margin-bottom: 2.4rem; }
body.glp .event-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; margin-bottom: 2.6rem; }
body.glp .event-photo { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 18px; border: 1px solid rgba(58,114,37,0.28); background: rgba(255,255,255,0.45); }
body.glp .event-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.glp .event-card { padding: 2rem 2.2rem; border-radius: 22px; border: 1px solid rgba(58,114,37,0.28); background: rgba(255,255,255,0.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
body.glp .event-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #a8694a; margin: 0 0 0.5rem; }
body.glp .event-date { font-size: 1.05rem; color: var(--green-dark); margin: 0 0 0.8rem; }
body.glp .event-card h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; color: var(--green-dark); margin: 0 0 0.4rem; }
body.glp .event-sub { font-size: 1.05rem; line-height: 1.6; margin: 0 0 1rem; }
body.glp .event-meta { font-size: 0.95rem; line-height: 1.7; margin: 0; }
@media (max-width: 700px) {
  body.glp .event-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
  body.glp .event-photo:first-child { grid-column: 1 / -1; }
  body.glp .event-card { padding: 1.5rem 1.4rem; border-radius: 16px; }
}
body.glp .event-meta a { color: var(--green-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
body.glp .ziel-link { margin: 1.6rem 0 0; }
body.glp .ziel-link .btn-glass { border: 1.5px solid var(--green-dark); background: transparent; }
body.glp .event-past { margin-bottom: 1.4rem; }
body.glp .event-past h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.25; color: var(--green-dark); margin: 0 0 0.3rem; }
body.glp .event-past .event-sub { margin: 0; }

/* ---- Buttons: all primary buttons use the outlined style ("Zu den Workshops") ---- */
body.glp .btn-primary { background: transparent; color: var(--green-dark); border: 1.5px solid var(--green-dark); }
body.glp .btn-primary:hover { background: rgba(247,244,238,0.85); color: var(--green-dark); border-color: var(--green-dark); text-decoration: none; transform: translateY(-1px); }
body.glp .event-past-card { padding: 2rem 2.2rem; border-radius: 22px; border: 1px solid rgba(58,114,37,0.28); margin-bottom: 2.6rem; }
body.glp .event-past-card .event-photos { margin-bottom: 0; }
@media (max-width: 700px) { body.glp .event-past-card { padding: 1.5rem 1.4rem; border-radius: 16px; margin-bottom: 2rem; } }
