/* ===================================================================
   Startseite neu gedacht (OPRO #1342) — Brief des Kunden vom 10.09.2026.
   Umgebaut nach Mustafas Bauplan vom 11.09.2026 (OPRO #1371): drei
   Logo-Raenge, Hochschulschau in vier Spalten, das Foto der
   Unterzeichnung, gestaltete Karten statt Textwaenden — und kein
   Bildplatz mehr. Wo kein Foto vorliegt, ist der Abschnitt so gesetzt,
   dass er ohne Bild fertig aussieht.

   Eigene Datei und eigene Bibliothek: geladen wird das hier nur, wenn ein
   Abschnitt eine v4-Auspraegung traegt. /home-v3 und die Live-Startseite
   sehen davon nichts — ihr ausgeliefertes Markup bleibt unangetastet.

   Baut auf home.css auf (Tokens, Grundraster, Schaltflaechen). Creme und
   Karmin bleiben, ausdruecklich: "it's the myinteredu earth that gives us
   our identity". Bewusst kein :has() (Browser des Auftraggebers kennt es
   nicht) und keine Filter auf fremden Zeichen.
   =================================================================== */

/* --- Nur fuer Screenreader ----------------------------------------- */
.cac-main--sections .cac-v4-sr{
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* --- 1. Hero: institutionelle Aussage, kein Portraet ---------------- */
.cac-main--sections .cac-hero2--v4{
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  background: var(--ivory);
}
.cac-main--sections .cac-hero2--v4 .cac-hero2__text-inner{
  max-width: 36rem;
}
.cac-main--sections .cac-hero2--v4 .cac-hero2__title{
  font-size: clamp(1.95rem, 3.4vw, 3.1rem);
  line-height: 1.14;
}
.cac-main--sections .cac-hero2--v4 .cac-hero2__lead{
  max-width: 46ch;
  font-size: 1.06rem;
}
.cac-main--sections .cac-hero2--v4 .cac-hero2__media{
  min-height: clamp(340px, 44vw, 580px);
}

/* --- 1b. Hero ohne Bild (OPRO #1374) ------------------------------
   Der Kunde hat das Arbeitstreffen-Foto aus dem Hero genommen (#1373):
   "The signing-ceremony photograph should remain the only photograph
   featuring me on the homepage." Ohne Bild bliebe rechts die leere
   Creme-Haelfte des 55/45-Rasters stehen und saehe aus wie ein Bild,
   das nicht geladen hat. Die Fassung ohne Bild (cac-hero2--solo, gesetzt
   in paragraph--cac-hero.html.twig) steht deshalb einspaltig, mit
   groesserer Schrift, auf einem Verlauf von Creme nach Sand; als Struktur
   ohne Bild konzentrische Ringe im Ziegelrot der Marke. Kein Kasten, kein
   Rahmen, kein Bildplatz. Die Ringe sind ein Pseudo-Element: im Dokument
   steht davon nichts, vorgelesen wird nur die Aussage. overflow: hidden
   haelt sie in der Flaeche — sie ragen sonst auf dem Telefon hinaus.
   ------------------------------------------------------------------ */
.cac-main--sections .cac-hero2--v4.cac-hero2--solo{
  position: relative;
  overflow: hidden;
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr);
  background:
    radial-gradient(ellipse 60% 90% at 100% 50%, rgba(192, 57, 43, .07), rgba(192, 57, 43, 0) 70%),
    linear-gradient(90deg, var(--ivory) 0%, var(--ivory) 40%, var(--ivory-deep) 100%);
}
.cac-main--sections .cac-hero2--solo::after{
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  right: calc(-1 * min(10vw, 180px));
  width: min(46vw, 820px);
  aspect-ratio: 1;
  transform: translateY(-50%);
  border-radius: 50%;
  pointer-events: none;
  background:
    repeating-radial-gradient(circle at 50% 50%,
      rgba(192, 57, 43, 0) 0 46px, rgba(192, 57, 43, .16) 46px 47px);
}
.cac-main--sections .cac-hero2--solo .cac-hero2__text{
  padding-top: clamp(64px, 8vw, 128px);
  padding-bottom: clamp(64px, 8vw, 128px);
}
.cac-main--sections .cac-hero2--solo .cac-hero2__text-inner{
  max-width: 50rem;
}
.cac-main--sections .cac-hero2--solo .cac-hero2__title{
  font-size: clamp(2.1rem, 4.4vw, 4.2rem);
  max-width: 18ch;
}
.cac-main--sections .cac-hero2--solo .cac-hero2__lead{
  max-width: 58ch;
  font-size: 1.1rem;
}
/* Zwischen 900 und 1200 px reicht der Text weiter nach rechts: Ringe weg davon. */
@media (max-width: 1200px) {
  .cac-main--sections .cac-hero2--solo::after{
    right: -18vw;
  }
}
/* Telefon und Tablet: einspaltig ohnehin; die Ringe nur noch in der Ecke oben rechts. */
@media (max-width: 900px) {
  .cac-main--sections .cac-hero2--solo::after{
    top: 0;
    right: calc(-1 * min(30vw, 180px));
    width: min(70vw, 420px);
    transform: translateY(-42%);
  }
}

/* --- 1a. Rang 1: Vertrauensleiste direkt unter dem Hero ------------
   Nur Bildmarken, einzeilig auf dem Schreibtisch, umbrechend auf dem
   Telefon. Weisser Grund, weil EAIE und ITAC auf deckend weissem Grund
   geliefert sind — auf Creme stuenden sie als weisse Kaesten da. Jedes
   Zeichen gleich hoch, gedeckelt durch die halbe ausgelieferte
   Pixelgroesse (--cac-logo-w/-h aus der Vorverarbeitung); object-fit
   haelt das Seitenverhaeltnis, falls die Breitengrenze greift.
   ------------------------------------------------------------------ */
.cac-main--sections .cac-v4-auth{
  background: #fff;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  padding: clamp(22px, 2.6vw, 34px) 0;
}
.cac-main--sections .cac-v4-auth__inner{
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.cac-main--sections .cac-v4-auth__marks{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 2.4vw, 32px) clamp(32px, 6vw, 88px);
}
.cac-main--sections .cac-v4-auth__mark{
  display: flex;
  align-items: center;
  justify-content: center;
}
.cac-main--sections .cac-v4-auth__mark a{
  display: block;
}
/* OPRO #1390 (Kunde, #1386: "logos in the authority bar should be larger"):
   96 statt 64 px. 96 ist der groesste gemeinsame Wert unter dem Deckel
   --cac-logo-h (EAIE: 98 px) — alle vier bleiben auf 2x-Bildschirmen ohne
   Hochrechnen. 12.5vw haelt die vier zwischen 641 und 767 px in einer Reihe;
   mit festen 96 px stand ITAC dort allein in einer zweiten Zeile. Die
   Breitengrenze waechst mit: EAIE (2,45:1) braucht bei 96 px 235 px, unter
   den alten 160 px waere es kleiner statt groesser geworden. */
.cac-main--sections .cac-v4-auth__mark img{
  display: block;
  width: auto;
  height: min(96px, 12.5vw, var(--cac-logo-h, 96px));
  max-width: min(240px, var(--cac-logo-w, 240px));
  object-fit: contain;
}

/* --- 2. Was CAC ist: ein Satz, daneben die harten Zahlen ------------ */
.cac-main--sections .cac-split--v4-statement{
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  background: #fff;
  border-bottom: 1px solid var(--line-soft);
}
.cac-main--sections .cac-split--v4-statement .cac-split__title{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.7vw, 2.15rem);
  line-height: 1.2;
  margin: 0 0 18px;
  max-width: 24ch;
}
/* Ohne Foto (OPRO #1371): keine halbe Seite mit Loch, sondern Text ueber
   die volle Breite — links Kennzeile und Ueberschrift, rechts Text, Zahlen
   und Schaltflaeche. */
.cac-main--sections .cac-split--solo{
  grid-template-columns: minmax(0, 1fr);
}
.cac-main--sections .cac-split--solo .cac-split__text{
  display: block;
  padding: var(--pad-y) 0;
}
.cac-main--sections .cac-split--solo .cac-split__inner{
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 24px clamp(36px, 6vw, 96px);
  align-items: start;
}
.cac-main--sections .cac-split--solo .cac-split__title{
  max-width: 18ch;
  margin: 0;
}
.cac-main--sections .cac-split--solo .cac-split__rest .cac-rte{
  font-size: 1.04rem;
  max-width: 62ch;
}
.cac-main--sections .cac-v4-figures{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 30px 0 30px;
  border-top: 1px solid var(--line);
}
.cac-main--sections .cac-v4-figure{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 14px 18px 0;
}
.cac-main--sections .cac-v4-figure + .cac-v4-figure{
  border-left: 1px solid var(--line);
  padding-left: 16px;
}
.cac-main--sections .cac-v4-figure__value{
  font-family: var(--cac-font-display);
  font-weight: 700;
  /* Bewusst zurueckhaltend: die Spalte ist nur rund ein Drittel der halben
     Seitenbreite. Groesser gesetzt bricht "~10,000" in drei Zeilen. */
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  line-height: 1.05;
  color: var(--brick);
  white-space: nowrap;
}
.cac-main--sections .cac-v4-figure__label{
  font-size: .82rem;
  line-height: 1.5;
  color: var(--ink-mute);
}

/* --- 3. Die 4D-Struktur: vier gleichgewichtige Karten ---------------
   Seit #1371 eigenstaendige Karten (weisser Grund auf Creme, feiner
   Rahmen, Karminkante oben) statt eines Gitters aus Haarlinien. */
.cac-main--sections .cac-section--v4-fourd{
  background: var(--ivory);
}
.cac-main--sections .cac-v4-4d{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}
.cac-main--sections .cac-v4-4d__field{
  background: #fff;
  border: 1px solid var(--line);
  border-top: 2px solid var(--brick);
  padding: clamp(24px, 2.6vw, 34px);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cac-main--sections .cac-v4-4d__num{
  font-family: var(--cac-font);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .17em;
  color: var(--brick);
}
.cac-main--sections .cac-v4-4d__name{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.22rem;
  line-height: 1.2;
  color: var(--ink);
}
.cac-main--sections .cac-v4-4d__text{
  font-size: .93rem;
  line-height: 1.65;
  color: var(--ink-soft);
}

/* --- 4. Fuer wen wir arbeiten: fuenf Karten (bis OPRO #1395 sechs) --
   Sechs Spuren, jede Karte zwei: drei Karten je Reihe wie zuvor. Seit
   #1395 sind es fuenf. Traegt die letzte Reihe nur zwei, teilen sie sich
   die Breite (je drei Spuren), sonst bliebe rechts eine leere Zelle; so
   stehen auch die Netzwerkkarten. Bei sechs Karten greift die Regel nicht:
   zwei von sechs Spuren plus eine Luecke sind genau eine von drei Spalten.
   ------------------------------------------------------------------ */
.cac-main--sections .cac-section--v4-audiences{
  background: #fff;
}
.cac-main--sections .cac-v4-aud{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}
.cac-main--sections .cac-v4-aud__row{
  grid-column: span 2;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
  align-items: baseline;
  gap: 10px 16px;
  padding: clamp(22px, 2.4vw, 30px);
  background: var(--ivory);
  border: 1px solid var(--line-soft);
  transition: border-color .2s ease, background-color .2s ease;
}
/* Letzte Reihe mit nur zwei Karten (seit #1395: Karte 4 und 5). */
.cac-main--sections .cac-v4-aud__row:nth-last-child(2):nth-child(3n+1),
.cac-main--sections .cac-v4-aud__row:last-child:nth-child(3n+2){
  grid-column: span 3;
}
.cac-main--sections .cac-v4-aud__row:hover{
  background: var(--ivory-deep);
  border-color: var(--line);
}
.cac-main--sections .cac-v4-aud__who{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.25;
  color: var(--ink);
}
.cac-main--sections .cac-v4-aud__gain{
  grid-column: 1 / -1;
  font-size: .93rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 46ch;
}
.cac-main--sections .cac-v4-aud__row .cac-arrow{
  /* Ohne feste Zuweisung rutscht der Pfeil unter den Text: die
     Nutzenzeile darunter belegt beide Spalten. */
  grid-row: 1;
  grid-column: 2;
  align-self: baseline;
}

/* --- 4b. Zoom-CTA zwischen "Fuer wen" und "Institutionell" (OPRO #1672) --
   Eigener, aber minimaler Abschnitt: Breite und waagerechtes Polster
   kommen ueber .cac-section/.cac-section__inner (home.css), hier wird nur
   der Knopf zentriert. Senkrechtes Polster auf null (OPRO #1681) -- der
   Knopf ist ein Trenner mit Knopf, keine eigene Inhaltsflaeche; die Luft
   um ihn ist seither das Polster der Nachbarabschnitte. --------------- */
.cac-main--sections .cac-scheduler-cta__inner{
  display: flex;
  justify-content: center;
}
.cac-main--sections .cac-section.cac-scheduler-cta{
  padding-top: 0;
  padding-bottom: 0;
}

/* --- 5. Leistungen institutionell ----------------------------------- */
.cac-main--sections .cac-section--v4-services{
  background: var(--ivory);
}
.cac-main--sections .cac-v4-svc{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(30px, 4vw, 64px);
}
.cac-main--sections .cac-v4-svc__row{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  padding: 24px 0;
  border-top: 1px solid var(--line);
}
.cac-main--sections .cac-v4-svc__num{
  font-family: var(--cac-font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--brick);
  line-height: 1.3;
}
.cac-main--sections .cac-v4-svc__name{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 6px;
}
.cac-main--sections .cac-v4-svc__text{
  font-size: .93rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 44ch;
}
/* Mit dem Foto der Unterzeichnung (OPRO #1371): links Text, rechts das
   Bild in seinem eigenen Seitenverhaeltnis 3:4. Hoechstens 480 px breit —
   die halbe Pixelbreite der Datei (960 px), damit ein 2x-Bildschirm nichts
   hochrechnet. Der Bauplan nennt "etwa 520". */
.cac-main--sections .cac-v4-inst{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
.cac-main--sections .cac-v4-inst .cac-v4-svc{
  grid-template-columns: minmax(0, 1fr);
}
.cac-main--sections .cac-v4-inst__more{
  margin-top: 26px;
}
.cac-main--sections .cac-v4-inst__media picture{
  display: block;
}
.cac-main--sections .cac-v4-inst__media img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 2px;
}

/* --- 5a. Rang 2: Netzwerke und Bildungsgruppen ----------------------
   Fuenf Karten, drei oben, zwei breitere unten (sechs Spalten, die
   ersten drei Karten je zwei, die letzten zwei je drei). Gebaut fuer
   genau fuenf Karten. Weisse Karten, weil GEDU (JPEG) und Oxford
   International auf deckend weissem Grund geliefert sind. Jede Marke
   gleich hoch, gedeckelt wie in der Vertrauensleiste. */
.cac-main--sections .cac-section--v4-networks{
  background: var(--ivory);
}
.cac-main--sections .cac-v4-net{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}
.cac-main--sections .cac-v4-net__card{
  grid-column: span 2;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--line);
  padding: clamp(24px, 2.6vw, 34px);
}
.cac-main--sections .cac-v4-net__card:nth-child(n+4){
  grid-column: span 3;
}
.cac-main--sections .cac-v4-net__marks{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 24px;
  min-height: 56px;
  padding-bottom: 20px;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--line-soft);
}
.cac-main--sections .cac-v4-net__marks img{
  display: block;
  width: auto;
  height: min(56px, var(--cac-logo-h, 56px));
  max-width: min(100%, var(--cac-logo-w, 200px));
  object-fit: contain;
}
.cac-main--sections .cac-v4-net__name{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.12rem;
  line-height: 1.25;
  color: var(--ink);
}
.cac-main--sections .cac-v4-net__text{
  font-size: .93rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 52ch;
}
.cac-main--sections .cac-v4-net__card .cac-arrow{
  margin-top: auto;
}

/* --- 6. Leistungen fuer Studierende: eine Leiter -------------------- */
.cac-main--sections .cac-section--v4-routes{
  background: #fff;
}
.cac-main--sections .cac-v4-routes{
  display: grid;
  grid-template-columns: minmax(0, 60fr) minmax(0, 40fr);
  gap: clamp(28px, 4vw, 60px);
  align-items: start;
}
.cac-main--sections .cac-v4-routes__list{
  counter-reset: cac-step;
}
.cac-main--sections .cac-v4-routes__step{
  position: relative;
  padding: 18px 0 18px 28px;
  border-top: 1px solid var(--line);
}
.cac-main--sections .cac-v4-routes__step::before{
  content: "";
  position: absolute;
  left: 4px;
  top: 27px;
  width: 9px;
  height: 9px;
  border: 2px solid var(--brick);
  border-radius: 50%;
  background: #fff;
}
.cac-main--sections .cac-v4-routes__step::after{
  content: "";
  position: absolute;
  left: 8px;
  top: 36px;
  bottom: -1px;
  width: 1px;
  background: var(--line);
}
.cac-main--sections .cac-v4-routes__step:last-child::after{
  display: none;
}
.cac-main--sections .cac-v4-routes__stage{
  display: block;
  font-family: var(--cac-font);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: 6px;
}
.cac-main--sections .cac-v4-routes__name{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 5px;
}
.cac-main--sections .cac-v4-routes__text{
  font-size: .93rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 48ch;
}
.cac-main--sections .cac-v4-routes__media{
  min-height: clamp(300px, 34vw, 460px);
  border-radius: 2px;
  overflow: hidden;
  background: var(--ivory-deep);
}
.cac-main--sections .cac-v4-routes__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Das Foto fuellt den Rahmen (OPRO #1394). Ueber 1024 px traegt der Rahmen
   nur min-height; height: 100% am <img> loest sich dann nicht auf, das Foto
   stuende in 3:2, und darunter bliebe die Rahmenfarbe stehen (gemessen
   108-171 px, sah aus wie ein Bildplatz). Als Raster mit einer Zelle streckt
   sich <picture> auf die Rahmenhoehe, und die Prozenthoehe greift. Bis
   1024 px unveraendert: dort gibt aspect-ratio 16/10 die Hoehe schon vor. */
.cac-main--sections .cac-v4-routes__media{
  display: grid;
}
.cac-main--sections .cac-v4-routes__media picture{
  display: block;
  min-height: 0;
}
/* Ohne Foto (OPRO #1371): die sechs Stufen ueber die volle Breite, drei je
   Zeile. Die senkrechte Verbindung entfaellt, weil die Stufen jetzt
   nebeneinander stehen; sie kehrt einspaltig zurueck. */
.cac-main--sections .cac-v4-routes--solo{
  grid-template-columns: minmax(0, 1fr);
}
.cac-main--sections .cac-v4-routes--solo .cac-v4-routes__list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(28px, 4vw, 56px);
}
.cac-main--sections .cac-v4-routes--solo .cac-v4-routes__step::after{
  display: none;
}

/* --- 7. Reichweite und Netzwerk ------------------------------------- */
.cac-main--sections .cac-section--v4-reach{
  background: var(--burgundy);
  color: #fff;
}
.cac-main--sections .cac-section--v4-reach .cac-section__title,
.cac-main--sections .cac-section--v4-reach .cac-section__intro,
.cac-main--sections .cac-section--v4-reach .cac-rte{
  color: #fff;
}
.cac-main--sections .cac-section--v4-reach .cac-eyebrow{
  color: var(--copper);
}
.cac-main--sections .cac-section--v4-reach .cac-section__intro{
  color: rgba(255, 255, 255, .8);
}
.cac-main--sections .cac-section--v4-reach .cac-arrow-link{
  color: var(--copper);
}
.cac-main--sections .cac-v4-reach{
  display: grid;
  grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
  gap: clamp(28px, 4vw, 60px);
  align-items: center;
}
.cac-main--sections .cac-v4-reach__map img{
  display: block;
  width: 100%;
  height: auto;
}
.cac-main--sections .cac-v4-reach__list{
  display: grid;
  gap: 0;
}
.cac-main--sections .cac-v4-reach__place{
  padding: 18px 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
}
.cac-main--sections .cac-v4-reach__place--mark{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
}
/* Die beiden Partnerzeichen (OPRO #1371) in derselben Kachel: gleiche
   Groesse heisst gleicher Rang. object-fit: cover schneidet nur leeren
   Rand — gemessen: PACE hat seine Schrift in 772 x 306 von 1024 x 1024,
   OXUS sein Zeichen in 178 x 214 von 432 x 274, beide mittig. Der Grund
   der Kachel ist der Grund der Datei; umgefaerbt wird nichts. */
.cac-main--sections .cac-v4-reach__tile{
  display: block;
  width: 144px;
  height: 96px;
  overflow: hidden;
  border-radius: 2px;
  background: #fff;
}
.cac-main--sections .cac-v4-reach__tile img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Der MyInterEdu-Globus in der Zeile Germany (OPRO #1392, Kunde #1386) ist
   eine Vollflaechenmarke: quadratisch, die Zeichnung reicht bis 26 px an den
   Rand der 1024er-Datei. cover schnitte oben und unten je ein Sechstel ab,
   darunter "learn globally" (gemessen: 66,7 % der Hoehe sichtbar). contain
   zeigt ihn ganz, 96 x 96 in der Kachel, 80 x 80 bis 640 px; der Grund der
   Datei ist weiss wie die Kachel. Gebunden an die Datei, nicht an die Zeile:
   PACE und OXUS bleiben bei cover, unveraendert. */
.cac-main--sections .cac-v4-reach__tile img[src*="/home-v4-logo-myinteredu."]{
  object-fit: contain;
}
.cac-main--sections .cac-v4-reach__role{
  font-family: var(--cac-font);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--copper);
  margin-bottom: 6px;
}
.cac-main--sections .cac-v4-reach__country{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.2;
  color: #fff;
}
.cac-main--sections .cac-v4-reach__org{
  font-size: .93rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, .8);
}
.cac-main--sections .cac-v4-reach__city{
  font-size: .82rem;
  color: rgba(255, 255, 255, .58);
  margin-top: 4px;
}

/* --- 8. Glaubwuerdigkeit: die acht Zeichen --------------------------
   Seit #1371 nicht mehr auf der Seite (die Zeichen stehen in Rang 1 und
   2). Die Regeln bleiben, damit ein Rueckweg auf die Revision davor
   unveraendert aussieht. */
.cac-main--sections .cac-v4-cred{
  padding: var(--pad-y) 0;
  background: var(--ivory);
  border-bottom: 1px solid var(--line-soft);
}
.cac-main--sections .cac-v4-cred__inner{
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.cac-main--sections .cac-v4-cred__head{
  max-width: 62ch;
  margin-bottom: clamp(26px, 3vw, 40px);
}
.cac-main--sections .cac-v4-cred__title{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: clamp(1.45rem, 2.6vw, 2.05rem);
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 14px;
}
/* Vier je Zeile, zwei Zeilen: acht Zeichen in einem Fluss brechen sonst
   7 + 1 um, und das eine allein sieht aus wie ein Nachtrag. Jede Zelle
   gleich gross, das Zeichen darin zentriert — die Zeichen selbst bleiben
   unveraendert (keine Umfaerbung, keine Verzerrung). */
.cac-main--sections .cac-v4-cred__marks{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  justify-items: center;
  gap: clamp(22px, 3vw, 40px);
  padding: clamp(22px, 3vw, 34px) 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.cac-main--sections .cac-v4-cred__mark{
  display: flex;
  align-items: center;
  justify-content: center;
}
.cac-main--sections .cac-v4-cred__mark img{
  display: block;
  width: auto;
  max-width: min(100%, 150px);
  max-height: 54px;
  height: auto;
}
.cac-main--sections .cac-v4-cred__note{
  margin-top: 20px;
}

/* --- 9. Rang 3: Hochschulschau, Namen statt Logos ------------------- */
.cac-main--sections .cac-v4-unis{
  padding: var(--pad-y) 0;
  background: #fff;
}
.cac-main--sections .cac-v4-unis__inner{
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.cac-main--sections .cac-v4-unis__intro{
  max-width: 60ch;
  margin-bottom: clamp(26px, 3vw, 40px);
}
.cac-main--sections .cac-v4-unis__title{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.7vw, 2.15rem);
  line-height: 1.2;
  color: var(--ink);
  margin: 0 0 10px;
}
.cac-main--sections .cac-v4-unis__sub{
  font-size: 1rem;
  color: var(--ink-soft);
  margin-bottom: 12px;
}
.cac-main--sections .cac-v4-unis__cta{
  margin-top: 22px;
}
/* Flache Liste (#1342) — nur noch, wenn kein Name eine Region traegt. */
.cac-main--sections .cac-v4-unis__names{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}
/* Vier Spalten, je eine Region (OPRO #1371): der Regionsname ist die
   Spaltenueberschrift, darunter die Namen als gesetzte Wortmarken mit
   Haarlinien — gleichwertig, ohne Bild.
   Bis OPRO #1391 stand ueber jeder Region eine Ordnungszahl 01-04 aus dem
   Zaehler cac-region (::before, 2.1rem Kupfer), die Region selbst klein in
   Versalien. Der Kunde wollte die Weltregion statt 1, 2, 3, 4 (#1386). Die
   Spalten haben keine Reihenfolge, die eine Zahl tragen koennte; die Zahlen
   01-04 der 4D-Karten (Abschnitt 3) sind eine Folge und bleiben. */
.cac-main--sections .cac-v4-unis__show{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px clamp(24px, 3vw, 48px);
}
.cac-main--sections .cac-v4-unis__col{
  border-top: 2px solid var(--ink);
  padding-top: 18px;
}
/* Gemessen an 23 Breiten von 1920 bis 320 px (#1391): jeder Kopf bleibt
   einzeilig, die Namenslisten einer Reihe stehen auf gleicher Hoehe. */
.cac-main--sections .cac-v4-unis__region{
  font-family: var(--cac-font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
  color: var(--brick);
  margin: 0 0 8px;
}
.cac-main--sections .cac-v4-unis__name{
  font-family: var(--cac-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
  padding: 14px 22px 14px 0;
  border-bottom: 1px solid var(--line-soft);
}
.cac-main--sections .cac-v4-unis__list .cac-v4-unis__name{
  padding-right: 0;
}
.cac-main--sections .cac-v4-unis__list .cac-v4-unis__name:last-child{
  border-bottom: 0;
}
.cac-main--sections .cac-v4-unis__note{
  margin-top: 28px;
  font-size: .84rem;
  line-height: 1.6;
  color: var(--ink-mute);
  max-width: 70ch;
}

/* --- 9b. Regionaltafeln (OPRO #1708, Entwurf des Kunden 19.09.2026) --
   Vier Bildtafeln UK/NA/EU/APAC statt vier Textspalten, darunter ein Band
   mit "300+" und dem Knopf, der Erklaerabsatz ans Ende gewandert. Kein
   :has(), keine Filter auf fremden Zeichen — dieselbe Regel wie im
   ganzen File. */
.cac-main--sections .cac-v4-unis__panels{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 2.4vw, 32px);
  margin-top: 8px;
}
.cac-main--sections .cac-v4-unis__panel{
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 2px solid var(--brick);
}
.cac-main--sections .cac-v4-unis__panel-media{
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--ivory-deep);
}
.cac-main--sections .cac-v4-unis__panel-media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cac-main--sections .cac-v4-unis__panel-media::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 14, 10, 0) 45%, rgba(20, 14, 10, .72) 100%);
}
.cac-main--sections .cac-v4-unis__panel-caption{
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 12px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cac-main--sections .cac-v4-unis__panel-label{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.25;
  color: #fff;
}
.cac-main--sections .cac-v4-unis__panel-tagline{
  font-family: var(--cac-font);
  font-weight: 500;
  font-size: .78rem;
  line-height: 1.3;
  color: rgba(255,255,255,.86);
}
.cac-main--sections .cac-v4-unis__panel-list{
  display: flex;
  flex-direction: column;
  padding: 6px 20px 10px;
}
.cac-main--sections .cac-v4-unis__entry{
  display: flex;
  flex-direction: column;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-soft);
}
.cac-main--sections .cac-v4-unis__entry:last-child{
  border-bottom: 0;
}
.cac-main--sections .cac-v4-unis__entry-name{
  font-family: var(--cac-font-display);
  font-size: .96rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink);
}
.cac-main--sections .cac-v4-unis__entry-loc{
  margin-top: 2px;
  font-size: .78rem;
  color: var(--ink-mute);
}
.cac-main--sections .cac-v4-unis__band{
  position: relative;
  overflow: hidden;
  margin-top: clamp(28px, 3.4vw, 44px);
  background: var(--brick);
}
.cac-main--sections .cac-v4-unis__band-map{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .18;
}
.cac-main--sections .cac-v4-unis__band-inner{
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: clamp(22px, 2.6vw, 32px) clamp(20px, 3vw, 36px);
}
.cac-main--sections .cac-v4-unis__band-count{
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #fff;
}
.cac-main--sections .cac-v4-unis__band-count-text{
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-width: 38ch;
}
.cac-main--sections .cac-v4-unis__band-count-number{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 1.9rem);
  line-height: 1.1;
}
.cac-main--sections .cac-v4-unis__band-count-note{
  font-family: var(--cac-font);
  font-weight: 500;
  font-size: .82rem;
  line-height: 1.35;
  color: rgba(255,255,255,.88);
}
.cac-main--sections .cac-v4-unis__band-icon{
  width: 32px;
  height: 32px;
  color: #fff;
  flex: 0 0 auto;
}
.cac-main--sections .cac-v4-unis__band-cta{
  flex: 0 0 auto;
}
.cac-main--sections .cac-v4-unis__tagline{
  margin: clamp(22px, 2.6vw, 30px) 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-family: var(--cac-font);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.cac-main--sections .cac-v4-unis__tagline-sep{
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--brick);
  flex: 0 0 auto;
}
.cac-main--sections .cac-v4-unis__text{
  margin-top: 22px;
  max-width: 70ch;
}
.cac-main--sections .cac-v4-unis__footer-tag{
  margin-top: 18px;
  font-family: var(--cac-font);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* --- 9a. News & Insights (OPRO #1378) ------------------------------
   Die drei Beitraege der Live-Startseite im Kartenstil dieser Seite:
   weisse Karten auf Creme, feiner Rahmen, Karminkante oben wie die
   4D-Felder. Bild oben in 4:3 (die Quellen sind quadratisch, 1024 px;
   der Beschnitt nimmt oben und unten je ein Achtel), darunter Datum in
   Versalien, Titel, Anriss, Pfeil. Die ganze Karte ist der Verweis
   (cac-cover-link). Creme, weil die Hochschulschau darueber weiss ist und
   der Kontakt darunter ziegelrot. */
.cac-main--sections .cac-section--v4-news{
  background: var(--ivory);
}
.cac-main--sections .cac-v4-news{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 22px);
}
.cac-main--sections .cac-v4-news__card{
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 2px solid var(--brick);
}
.cac-main--sections .cac-v4-news__media{
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--ivory-deep);
}
.cac-main--sections .cac-v4-news__media picture{
  display: block;
  height: 100%;
}
.cac-main--sections .cac-v4-news__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.cac-main--sections .cac-v4-news__card:hover .cac-v4-news__media img{
  transform: scale(1.03);
}
.cac-main--sections .cac-v4-news__body{
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: clamp(22px, 2.4vw, 30px);
}
.cac-main--sections .cac-v4-news__date{
  font-family: var(--cac-font);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--brick);
}
.cac-main--sections .cac-v4-news__title{
  font-family: var(--cac-font-display);
  font-weight: 700;
  font-size: 1.12rem;
  line-height: 1.3;
  color: var(--ink);
  overflow-wrap: break-word;
}
.cac-main--sections .cac-v4-news__text{
  font-size: .93rem;
  line-height: 1.6;
  color: var(--ink-soft);
  overflow-wrap: break-word;
}
.cac-main--sections .cac-v4-news__card .cac-arrow{
  align-self: flex-start;
  margin-top: auto;
  padding-top: 4px;
}
.cac-main--sections .cac-v4-news__card:hover .cac-arrow{
  transform: translateX(4px);
}

/* --- 10. Kontakt: ein Weg ------------------------------------------- */
.cac-main--sections .cac-band--v4-contact{
  background: var(--brick);
  padding: clamp(44px, 5vw, 68px) 0;
}
.cac-main--sections .cac-band--v4-contact .cac-band__inner{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.cac-main--sections .cac-band--v4-contact .cac-band__title{
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  margin: 0 0 10px;
}
.cac-main--sections .cac-band--v4-contact .cac-band__body{
  color: rgba(255, 255, 255, .9);
  max-width: 46ch;
}

/* --- Schmalere Fenster ----------------------------------------------
   Einspaltig heisst hier minmax(0, 1fr), nie nacktes 1fr: 1fr ist
   minmax(auto, 1fr), die Spalte waechst dann auf die Mindestbreite ihres
   breitesten Kindes, und body { overflow-x: hidden } (style.css:41)
   schneidet den Ueberhang ab, statt ihn scrollbar zu machen (OPRO #1359).
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
  .cac-main--sections .cac-v4-4d{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cac-main--sections .cac-v4-routes,
.cac-main--sections .cac-v4-reach{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-routes__media{
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .cac-main--sections .cac-v4-aud{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  /* Zwei Spalten: die Spurregeln von oben zuruecknehmen. Bleibt eine Karte
     allein (fuenf Karten, #1395), nimmt sie die ganze Breite. */
  .cac-main--sections .cac-v4-aud__row,
  .cac-main--sections .cac-v4-aud__row:nth-last-child(2):nth-child(3n+1),
  .cac-main--sections .cac-v4-aud__row:last-child:nth-child(3n+2){
    grid-column: auto;
  }
  .cac-main--sections .cac-v4-aud__row:last-child:nth-child(odd){
    grid-column: 1 / -1;
  }
  .cac-main--sections .cac-v4-net{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cac-main--sections .cac-v4-net__card,
.cac-main--sections .cac-v4-net__card:nth-child(n+4){
    grid-column: auto;
  }
  .cac-main--sections .cac-v4-net__card:last-child:nth-child(odd){
    grid-column: 1 / -1;
  }
  .cac-main--sections .cac-v4-routes--solo .cac-v4-routes__list{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cac-main--sections .cac-v4-unis__show,
  .cac-main--sections .cac-v4-unis__panels{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .cac-main--sections .cac-hero2--v4{
    grid-template-columns: minmax(0, 1fr);
  }
  /* Die Mindesthoehe aus Abschnitt 1 wiegt mehr als die Ruecknahme in
     home.css (min-height: 0 unter 900 px) und galt deshalb auch hier. Mit
     aspect-ratio 16/10 wurden aus 340 px Hoehe 544 px Mindestbreite — das
     war der Ueberhang auf jedem Telefon unter 544 px (OPRO #1359). */
  .cac-main--sections .cac-hero2--v4 .cac-hero2__media{
    min-height: 0;
  }
  /* home.css setzt .cac-split unter 900 px auf nacktes 1fr. Heute ohne
     messbare Wirkung (Spalte = Fensterbreite), Absicherung fuer den v4-Block. */
  .cac-main--sections .cac-split--v4-statement{
    grid-template-columns: minmax(0, 1fr);
  }
  /* home.css gibt dem Textblock unter 900 px eigenen Seitenabstand; die
     Fassung ohne Foto hat ihn schon im inneren Block. */
  .cac-main--sections .cac-split--solo .cac-split__text{
    padding: clamp(40px, 8vw, 64px) 0;
  }
  .cac-main--sections .cac-split--solo .cac-split__inner{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-svc{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-inst{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-inst__media{
    max-width: 480px;
  }
  /* News (OPRO #1378): untereinander, jede Karte quer — Bild links, Text
     rechts. Drei Karten mit Bild oben waeren auf dem Tablet drei
     bildschirmhohe Bloecke. */
  .cac-main--sections .cac-v4-news{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-news__card{
    display: grid;
    grid-template-columns: minmax(0, 38fr) minmax(0, 62fr);
  }
  .cac-main--sections .cac-v4-news__media{
    aspect-ratio: auto;
    min-height: 200px;
  }
  .cac-main--sections .cac-v4-news__media picture{
    position: absolute;
    inset: 0;
  }
}

@media (max-width: 640px) {
  .cac-main--sections .cac-v4-4d{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-figures{
    grid-template-columns: minmax(0, 1fr);
    border-top: 0;
  }
  .cac-main--sections .cac-v4-figure{
    border-top: 1px solid var(--line);
    padding: 16px 0;
  }
  .cac-main--sections .cac-v4-figure + .cac-v4-figure{
    border-left: 0;
    padding-left: 0;
  }
  .cac-main--sections .cac-band--v4-contact .cac-band__inner{
    flex-direction: column;
    align-items: flex-start;
  }
  .cac-main--sections .cac-v4-unis__names{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-cred__marks{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cac-main--sections .cac-v4-auth__marks{
    gap: 18px 28px;
  }
  /* OPRO #1390: vier Zeichen zu 60 px brauchen 337 px plus Abstaende und
     passen auf kein Telefon in eine Reihe; frei umbrechend stand ITAC von 375
     bis 480 px allein in der zweiten. Deshalb zwei mal zwei: halbe Breite
     abzueglich des halben Spaltenabstands (28px oben). Unter 362 px wird die
     Zelle schmaler als EAIE und das Zeichen schrumpft in ihr. */
  .cac-main--sections .cac-v4-auth__mark{
    flex: 0 0 calc(50% - 14px);
  }
  .cac-main--sections .cac-v4-auth__mark img{
    height: min(60px, var(--cac-logo-h, 60px));
    max-width: min(100%, 240px, var(--cac-logo-w, 240px));
  }
  .cac-main--sections .cac-v4-aud,
.cac-main--sections .cac-v4-net,
.cac-main--sections .cac-v4-unis__show,
.cac-main--sections .cac-v4-unis__panels{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-unis__band-inner{
    flex-direction: column;
    align-items: flex-start;
  }
  .cac-main--sections .cac-v4-routes--solo .cac-v4-routes__list{
    grid-template-columns: minmax(0, 1fr);
  }
  .cac-main--sections .cac-v4-routes--solo .cac-v4-routes__step::after{
    display: block;
  }
  .cac-main--sections .cac-v4-routes--solo .cac-v4-routes__step:last-child::after{
    display: none;
  }
  /* News auf dem Telefon: wieder Bild oben, flacher als am Schreibtisch. */
  .cac-main--sections .cac-v4-news__card{
    display: flex;
  }
  .cac-main--sections .cac-v4-news__media{
    aspect-ratio: 16 / 10;
    min-height: 0;
  }
  .cac-main--sections .cac-v4-news__media picture{
    position: static;
  }
  /* Kleinere Kachel, beide gleich: auch bei 3x reicht dann die Datei
     (OXUS 432 x 274 gegen 3 x 126 x 80). */
  .cac-main--sections .cac-v4-reach__tile{
    width: 120px;
    height: 80px;
  }
}
