/* ThingsOnAir static site. Look follows /mga1/ (colours, type, logo). */
:root {
  --toa-blue: #1878B4;
  --toa-dark: #3B3B3B;
  --toa-grey: #5A6570;
  --toa-line: #C9D1D6;
  --toa-tint: #EDF3F7;
  --toa-navy: #202944;
  /* Spacing scale: everything sits on these steps */
  --s1: 8px;
  --s2: 16px;
  --s3: 24px;
  --s4: 32px;
  --s5: 48px;
  --measure: 680px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: var(--toa-dark);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.55;
}
::selection { background: #CFE3F1; color: var(--toa-dark); }
.wrap { max-width: 960px; margin: 0 auto; padding: 0 20px; }
a { color: var(--toa-blue); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid var(--toa-blue); outline-offset: 3px; border-radius: 2px; }
img { max-width: 100%; height: auto; display: block; }

header { padding: 22px 0 0; }
header .wrap { display: flex; justify-content: space-between; align-items: center; gap: var(--s2); }
header a:has(.logo) { display: block; }
header .logo { width: 180px; }
header nav { font-size: 15px; }
header nav a { color: var(--toa-grey); }

h1 {
  margin: var(--s4) 0 var(--s2);
  font-weight: 300;
  font-size: 30px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--toa-blue);
  text-wrap: balance;
}
h2 {
  margin: 0 0 var(--s2);
  font-weight: 400;
  font-size: 23px;
  line-height: 1.25;
  color: var(--toa-blue);
  text-wrap: balance;
}
h3 { margin: var(--s3) 0 4px; font-size: 17px; font-weight: 600; color: var(--toa-dark); }
p { margin: 0 0 var(--s2); }
/* Text läuft bis zur Bildbreite mit (Guido, 23.10.); nur die Rechtsseiten bleiben schmaler */


.rx {
  margin: var(--s3) 0 0;
  padding: 12px var(--s2);
  background: var(--toa-tint);
  border-radius: 4px;
  font-size: 15px;
}
figure { margin: var(--s3) 0 0; }
figcaption { margin-top: var(--s1); font-size: 13px; line-height: 1.4; color: var(--toa-grey); text-wrap: pretty; }

/* Sections: equal space above and below each rule */
section { margin-top: var(--s5); padding-top: var(--s5); border-top: 1px solid var(--toa-line); }
section > :last-child { margin-bottom: 0; }
.more { margin-top: var(--s3); font-weight: 600; }
.lead { font-size: 19px; line-height: 1.5; }
.wide { margin-top: var(--s4); }
.pair { display: grid; gap: var(--s3); margin-top: var(--s3); }
.pair figure { margin: 0; }

.contact address { font-style: normal; margin-bottom: var(--s2); }
.contact .firm { font-weight: 600; }
.b2b { font-size: 15px; color: var(--toa-grey); }

/* Legal pages */
.legal > * { max-width: 720px; }
.legal h2 { margin-top: var(--s4); font-size: 20px; }
.legal ul { margin: 0 0 var(--s2); padding-left: 22px; }
.legal address { font-style: normal; margin-bottom: var(--s2); }
.stand { color: var(--toa-grey); font-size: 15px; }

/* Draft marker [PRÜFEN] for facts not yet verified. Must be gone before going live. */
.pruefen { background: #FFF3B0; padding: 0 3px; font-weight: 600; }

footer {
  margin-top: var(--s5);
  padding: 0 0 var(--s4);
  font-size: 14px;
  color: var(--toa-grey);
}
footer > .wrap::before { content: ""; display: block; border-top: 1px solid var(--toa-line); margin-bottom: var(--s3); }
footer .links { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s3); }
footer a { color: var(--toa-grey); }

/* Partners and supporters: one even row of equal cells */
.funding {
  margin-top: var(--s3);
  padding: var(--s3);
  background: var(--toa-navy);
  color: #d7dbe6;
  font-size: 13px;
  border-radius: 6px;
}
.funding .funding-title { margin: 0 0 var(--s2); color: #fff; font-size: 14px; font-weight: 600; }
.funding-logos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 4px;
  overflow: hidden;
}
.partner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 104px;
  padding: var(--s2);
  background: var(--toa-navy);
}
.partner img { height: auto; }
.p-esabic { grid-column: 1 / -1; }
.l-esabic { width: 240px; }
.l-cesah { width: 150px; }
.l-efre { width: 92px; background: #fff; padding: 4px; border-radius: 2px; }
.funding p:last-child { margin: var(--s2) 0 0; line-height: 1.5; }

@media (min-width: 760px) {
  header { padding-top: var(--s4); }
  header .logo { width: 220px; }
  h1 { font-size: 40px; margin-top: var(--s5); }
  h2 { font-size: 26px; }
  .hero { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; }
  .hero figure { margin: 0; }
  .two { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 36px; align-items: start; }
  .two figure { margin: 0; }
  /* Column widths follow the image aspect ratios (1400x333, 1400x412),
     so both pictures render at the same height and the captions line up. */
  .funding { padding: var(--s3) var(--s4); }
  .funding-logos { grid-template-columns: 1.4fr 1fr 1fr; }
  .p-esabic { grid-column: auto; }
  .partner { min-height: 120px; }
  .l-esabic { width: 250px; }
  .l-cesah { width: 190px; }
  .l-efre { width: 116px; }
}

@media (max-width: 759px) {
  /* Copyright on its own line, links in one row below */
  footer .links > span:first-child { flex-basis: 100%; }
}

/* Breite Bilder untereinander, jeweils volle Textbreite (Guido, 23.10.) */
.pair { grid-template-columns: 1fr; }
.pair img { width: 100%; height: auto; display: block; }
