/* ===================================================================
   Coskun Academy Consulting – Theme Stylesheet
   =================================================================== */
/* Selbst gehostet seit OPRO #1701 (Koenigsentscheidung 19.09.2026, Kommentar 8070) --
   vorher lud jede Seite ungefragt bei Google (fonts.googleapis.com/fonts.gstatic.com).
   Dateien + @font-face-Regeln: css/fonts.css, Binaerdateien in ../fonts/.
   ?v= seit OPRO #1711: der @import trug keinen Verweis, der sich aendert, wenn sich
   fonts.css aendert (anders als style.css selbst, dessen Adresse Drupal per drush cr
   token). Aendert sich fonts.css oder eine der neun Schriftdateien, zaehlt die Nummer
   hier UND in fonts.css (jede url()) weiter. */
@import url('fonts.css?v=1711');

/* --- Design Tokens --- */
:root {
  --cac-red: #c0392b;
  --cac-red-dark: #a93226;
  --cac-red-light: #fdf2f0;
  --cac-beige: #faf6f1;
  --cac-dark: #1a1a1a;
  --cac-gray-900: #212121;
  --cac-gray-700: #555;
  --cac-gray-500: #888;
  --cac-gray-300: #d5d5d5;
  --cac-gray-100: #f5f5f5;
  --cac-white: #fff;
  --cac-green: #27ae60;
  --cac-blue: #2980b9;
  --cac-gold: #f39c12;
  --cac-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --cac-font-display: 'Playfair Display', Georgia, serif;
  --cac-radius: 12px;
  --cac-radius-sm: 8px;
  --cac-radius-pill: 999px;
  --cac-shadow: 0 2px 16px rgba(0,0,0,.07);
  --cac-shadow-lg: 0 8px 32px rgba(0,0,0,.10);
  --cac-transition: .25s cubic-bezier(.4,0,.2,1);
  --cac-max-w: 1200px;
}

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  font-family: var(--cac-font);
  color: var(--cac-dark);
  background: var(--cac-white);
  line-height: 1.6;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--cac-transition); }
ul { list-style: none; }

/* --- Utility --- */
.cac-section-label {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .78rem;
  font-weight: 600;
  color: var(--cac-red);
  text-align: center;
  margin-bottom: 6px;
}
.cac-section-title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  text-align: center;
  margin-bottom: 40px;
}
.cac-link {
  color: var(--cac-red);
  font-weight: 600;
  font-size: .9rem;
  transition: color var(--cac-transition);
}
.cac-link:hover { color: var(--cac-red-dark); }

/* --- Buttons --- */
.cac-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--cac-font);
  font-weight: 600;
  font-size: .95rem;
  padding: 12px 28px;
  border-radius: var(--cac-radius-pill);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--cac-transition);
  white-space: nowrap;
}
.cac-btn--primary {
  background: var(--cac-red);
  color: var(--cac-white);
  border-color: var(--cac-red);
}
.cac-btn--primary:hover {
  background: var(--cac-red-dark);
  border-color: var(--cac-red-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(192,57,43,.3);
}
.cac-btn--outline {
  background: var(--cac-white);
  color: var(--cac-dark);
  border-color: var(--cac-gray-300);
}
.cac-btn--outline:hover {
  border-color: var(--cac-red);
  color: var(--cac-red);
  transform: translateY(-2px);
}
.cac-btn--white {
  background: var(--cac-white);
  color: var(--cac-red);
  border-color: var(--cac-white);
  font-weight: 700;
}
.cac-btn--white:hover {
  background: var(--cac-beige);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.15);
}
.cac-btn--ghost {
  background: transparent;
  color: var(--cac-white);
  border-color: var(--cac-white);
}
.cac-btn--ghost:hover {
  background: rgba(255,255,255,.15);
  transform: translateY(-2px);
}
.cac-btn--sm { padding: 8px 20px; font-size: .85rem; }

/* ===================================================================
   HEADER
   =================================================================== */
.cac-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--cac-white);
  box-shadow: 0 1px 8px rgba(0,0,0,.06);
}
.cac-header__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  /* 84px statt 72px: das 60px-Logo hatte nur 6px Luft.
     min-height, damit eine zweite Navigationszeile (TR/RU) nicht abgeschnitten wird. */
  min-height: 84px;
  gap: 32px;
}
/* Logo: Quelldatei ist 500x500 (quadratisch), feste Masse verzerren daher nicht.
   Header ist 84px hoch -> bei 60px bleiben 12px Luft oben und unten. */
.cac-header__logo img { height: 60px; width: 60px; }
.cac-nav { flex: 1; }
.cac-nav__list {
  display: flex;
  align-items: center;
  /* Kein Umbruch in der Hauptnavigation: 7 Punkte brauchten mit 32px Abstand
     ~1186px, verfuegbar sind 1152px (1200px minus Innenabstand). */
  gap: 22px;
  justify-content: center;
  /* Englisch passt einzeilig (gemessen). Laengere Sprachen duerfen in eine
     zweite Zeile umbrechen — das ist besser als seitlich ueberzulaufen. */
  flex-wrap: wrap;
  row-gap: 4px;
}
.cac-nav__link {
  white-space: nowrap;
  font-size: .92rem;
  font-weight: 500;
  color: var(--cac-gray-700);
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 0;
  position: relative;
}
.cac-nav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--cac-red);
  transition: width var(--cac-transition);
}
.cac-nav__link:hover::after,
.cac-nav__link--active::after { width: 100%; }
.cac-nav__link--active { color: var(--cac-red); font-weight: 600; }
/* OPRO #1436 (deckt #1413): die Hauptpunkte mit Untermenue sind jetzt
   <button>, kein <span> mehr -- Grundformatierung zuruecksetzen, damit sie
   weiter wie Text aussehen, nicht wie ein Formularknopf. */
button.cac-nav__link {
  background: none;
  border: none;
  padding: 8px 0;
  font: inherit;
  cursor: pointer;
}
button.cac-nav__link:focus-visible {
  outline: 2px solid var(--cac-red);
  outline-offset: 4px;
  border-radius: 2px;
}
.cac-icon-chevron { transition: transform var(--cac-transition); }
.cac-nav__dropdown { position: relative; }
.cac-nav__submenu {
  position: absolute;
  top: 100%;
  left: -12px;
  min-width: 220px;
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  box-shadow: var(--cac-shadow-lg);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all var(--cac-transition);
}
/* :hover bleibt fuer die Maus; :focus-within oeffnet ohne jedes JS, sobald
   Tab den Ausloeser oder einen Untermenuepunkt erreicht; [aria-expanded]
   ist die von main.js gepflegte dritte Spur (Klick/Enter/Leertaste). Die
   drei Wege sind gleichrangig, keiner ersetzt einen anderen. */
.cac-nav__dropdown:hover .cac-nav__submenu,
.cac-nav__dropdown:focus-within .cac-nav__submenu,
.cac-nav__link[aria-expanded="true"] + .cac-nav__submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.cac-nav__dropdown:hover .cac-icon-chevron,
.cac-nav__dropdown:focus-within .cac-icon-chevron,
.cac-nav__link[aria-expanded="true"] .cac-icon-chevron { transform: rotate(180deg); }
.cac-nav__submenu a {
  white-space: nowrap;
  display: block;
  padding: 10px 20px;
  font-size: .88rem;
  color: var(--cac-gray-700);
  transition: all var(--cac-transition);
}
.cac-nav__submenu a:hover {
  background: var(--cac-red-light);
  color: var(--cac-red);
}
.cac-header__actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
/* Language switcher dropdown */
.cac-lang-switch {
  position: relative;
  font-size: .85rem;
  font-weight: 500;
}
.cac-lang-switch .block-language {
  position: relative;
}
.cac-lang-switch ul.links {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
/* Hide all items by default, show only the active one */
.cac-lang-switch ul.links li {
  display: none;
}
.cac-lang-switch:not(.is-open) ul.links li.is-active {
  /* Geschlossen zeigt nur der Globus-Button - kein Sprachname. */
  display: none;
}
.cac-lang-switch ul.links li.is-active {
  display: flex;
  align-items: center;
  cursor: pointer;
}
/* When open, show all items */
.cac-lang-switch.is-open ul.links li {
  display: flex;
  align-items: center;
}
/* The dropdown panel for non-active items */
.cac-lang-switch.is-open ul.links {
  position: absolute;
  /* Oeffnet unter dem Globus-Button (vorher war der Textauslöser der Anker). */
  top: calc(100% + 6px);
  right: 0;
  background: var(--cac-white);
  border-radius: var(--cac-radius-sm);
  box-shadow: var(--cac-shadow-lg);
  padding: 6px 0;
  min-width: 100px;
  z-index: 1200;
  display: flex;
  flex-direction: column;
}
.cac-lang-switch ul.links li a,
.cac-lang-switch ul.links li.is-active a {
  display: block;
  padding: 8px 16px;
  font-size: .85rem;
  font-weight: 500;
  color: var(--cac-gray-700);
  white-space: nowrap;
  transition: all var(--cac-transition);
  text-decoration: none;
  border-radius: 4px;
}
.cac-lang-switch ul.links li.is-active a {
  font-weight: 600;
  color: var(--cac-dark);
}
.cac-lang-switch.is-open ul.links li a:hover {
  background: var(--cac-red-light);
  color: var(--cac-red);
}
/* Globe icon + chevron on the active item */
.cac-lang-switch ul.links li.is-active::before {
  content: '🌐';
  font-size: .9rem;
  margin-left: 4px;
  pointer-events: none;
  order: -1;
}
.cac-lang-switch ul.links li.is-active::after {
  content: '';
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid var(--cac-gray-700);
  margin-left: 6px;
  transition: transform var(--cac-transition);
}
.cac-lang-switch.is-open ul.links li.is-active::after {
  transform: rotate(180deg);
}
/* In open state, remove the globe/chevron from non-active items */
.cac-lang-switch.is-open ul.links li:not(.is-active)::before,
.cac-lang-switch.is-open ul.links li:not(.is-active)::after {
  display: none;
}

/* Hamburger */
.cac-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  z-index: 1100;
}
.cac-hamburger span {
  width: 24px;
  height: 2.5px;
  background: var(--cac-dark);
  border-radius: 2px;
  transition: all var(--cac-transition);
}
.cac-hamburger.is-active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.cac-hamburger.is-active span:nth-child(2) { opacity: 0; }
.cac-hamburger.is-active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* Mobile nav overlay */
.cac-mobile-nav {
  position: fixed;
  inset: 0;
  /* muss der Kopfleiste folgen, sonst ueberlappt das Overlay sie */
  top: 84px;
  background: var(--cac-white);
  z-index: 999;
  padding: 32px 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px) + 40px);
  transform: translateX(100%);
  transition: transform var(--cac-transition);
}
.cac-mobile-nav.is-open { transform: translateX(0); }
.cac-mobile-nav__list { display: flex; flex-direction: column; gap: 4px; }
.cac-mobile-nav__list a {
  display: block;
  padding: 14px 0;
  font-size: 1.1rem;
  font-weight: 500;
  border-bottom: 1px solid var(--cac-gray-100);
}

.cac-mobile-nav__item { margin-top: 20px; }
.cac-mobile-nav__item:first-child { margin-top: 0; }
.cac-mobile-nav__label {
  display: block;
  padding: 4px 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cac-gray-900);
}
.cac-mobile-nav__child { padding-left: 16px; }
.cac-mobile-nav__list .cac-mobile-nav__child a {
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--cac-gray-700);
}

/* ===================================================================
   HERO
   =================================================================== */
.cac-hero {
  background-color: var(--cac-beige);
  overflow: hidden;
  position: relative;
  min-height: 416px;
}
.cac-hero__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 20px 20px 2px;
  display: flex;
  align-items: center;
  min-height: 416px;
  position: relative;
  z-index: 2;
  background-size: auto 100%;
  background-position: right;
  background-repeat: no-repeat;
}
.cac-hero__inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    var(--cac-beige) 0%,
    var(--cac-beige) 30%,
    rgba(250, 246, 241, 0.92) 35%,
    rgba(250, 246, 241, 0.5) 45%,
    rgba(250, 246, 241, 0.3) 55%,
    transparent 70%
  );
  z-index: 1;
  pointer-events: none;
}
.cac-hero__content {
  max-width: 100%;
  position: relative;
  z-index: 2;
}
.cac-hero__title {
  font-family: var(--cac-font-display);
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  line-height: 1.15;
  margin-bottom: 20px;
}
.cac-hero__title em {
  color: var(--cac-red);
  font-style: normal;
}
.cac-hero__desc {
  font-size: 1rem;
  color: var(--cac-gray-700);
  max-width: 460px;
  margin-bottom: 28px;
  line-height: 1.7;
}
.cac-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 32px;
}
.cac-hero__features {
  display: flex;
  gap: 24px;
  margin-bottom: 28px;
  flex-wrap: nowrap;
}
.cac-hero__feature {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.cac-hero__feature-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  border: 2px solid var(--cac-red);
  border-radius: 50%;
  color: var(--cac-red);
}
.cac-hero__feature-label {
  font-size: .68rem;
  font-weight: 600;
  color: var(--cac-gray-700);
  text-align: center;
  max-width: 100px;
}

/* ===================================================================
   PARTNER NETWORK
   =================================================================== */
.cac-partners {
  border: none;
  border-radius: 0;
  max-width: 100%;
  margin: 0;
  position: relative;
  z-index: 10;
  background: var(--cac-white);
  padding: 24px 0;
}
.cac-partners__header { text-align: center; margin-bottom: 16px; }
.cac-partners__icon { font-size: 1.5rem; display: block; margin-bottom: 4px; }
.cac-partners__title {
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.cac-partners__subtitle {
  font-size: .88rem;
  color: var(--cac-gray-700);
}

/* Marquee infinite scroll */
.cac-marquee {
  overflow: hidden;
  width: 100%;
  margin-bottom: 32px;
  display: flex;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.cac-marquee__track {
  display: flex;
  gap: 28px;
  animation: cac-scroll 25s linear infinite;
  width: max-content;
}
.cac-marquee:hover .cac-marquee__track {
  animation-play-state: paused;
}
@keyframes cac-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Partner cards */
.cac-partner-card {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 160px;
  height: 80px;
  padding: 16px 28px;
  border-radius: var(--cac-radius-sm);
  background: var(--cac-white);
  border: 1px solid var(--cac-gray-300);
  transition: all var(--cac-transition);
  cursor: default;
}
.cac-partner-card:hover {
  box-shadow: var(--cac-shadow);
  transform: translateY(-2px);
}
.cac-partner-card__logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
}
.cac-partner-card__logo-main {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: .03em;
  color: var(--cac-dark);
  line-height: 1.1;
}
.cac-partner-card__logo-sub {
  font-size: .6rem;
  font-weight: 500;
  color: var(--cac-gray-500);
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: .05em;
}
/* Brand colors for partner logos */
.cac-partner-card__logo--ncuk .cac-partner-card__logo-main { color: #1a3a5c; }
.cac-partner-card__logo--ncuk .cac-partner-card__logo-sub { color: #c0392b; }
.cac-partner-card__logo--oxus .cac-partner-card__logo-main { color: #2563eb; }
.cac-partner-card__logo--pace .cac-partner-card__logo-main { color: #1a3a5c; }
.cac-partner-card__logo--ovgu .cac-partner-card__logo-main { color: #1a3a5c; }
.cac-partner-card__logo--bc .cac-partner-card__logo-main { color: #2c1654; font-size: 1rem; }
.cac-partner-card__logo--icef .cac-partner-card__logo-main { color: #0d6eaa; }

/* ===================================================================
   SERVICES
   =================================================================== */
.cac-services {
  padding: 20px 24px 60px;
}
.cac-services__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.cac-service-card {
  display: grid;
  grid-template-columns: 48px 1fr 200px;
  align-items: center;
  gap: 20px;
  padding: 28px 32px;
  background: var(--cac-white);
  border: 1px solid var(--cac-gray-100);
  border-radius: var(--cac-radius);
  box-shadow: var(--cac-shadow);
  transition: all var(--cac-transition);
}
.cac-service-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--cac-shadow-lg);
  border-color: var(--cac-red-light);
}
.cac-service-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--cac-red-light);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cac-service-card__body h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.cac-service-card__body p {
  font-size: .88rem;
  color: var(--cac-gray-700);
  margin-bottom: 8px;
}
.cac-service-card__img {
  width: 200px;
  height: 120px;
  border-radius: var(--cac-radius-sm);
  overflow: hidden;
}
.cac-service-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cac-transition);
}
.cac-service-card:hover .cac-service-card__img img { transform: scale(1.05); }

/* ===================================================================
   FEATURED OPPORTUNITIES
   =================================================================== */
.cac-opportunities {
  padding: 60px 24px;
  background: var(--cac-gray-100);
}
.cac-opportunities__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
}
.cac-opp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.cac-opp-card {
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  overflow: hidden;
  box-shadow: var(--cac-shadow);
  transition: all var(--cac-transition);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cac-opp-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--cac-shadow-lg);
}
.cac-opp-card__img {
  height: 260px;
  background: linear-gradient(135deg, var(--cac-beige), var(--cac-gray-100));
  position: relative;
  overflow: hidden;
}
.cac-opp-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--cac-transition);
}
.cac-opp-card:hover .cac-opp-card__img img {
  transform: scale(1.05);
}
.cac-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 12px;
  border-radius: var(--cac-radius-pill);
  font-size: .7rem;
  font-weight: 600;
  color: var(--cac-white);
}
.cac-badge--red { background: var(--cac-red); }
.cac-badge--green { background: var(--cac-green); }
.cac-badge--blue { background: var(--cac-blue); }
.cac-badge--gold { background: var(--cac-gold); }
.cac-opp-card h2 {
  font-size: .95rem;
  font-weight: 700;
  padding: 16px 16px 6px;
}
.cac-opp-card p {
  font-size: .82rem;
  color: var(--cac-gray-700);
  padding: 0 16px;
  line-height: 1.5;
  flex-grow: 1;
}
.cac-opp-card .cac-link {
  display: block;
  padding: 12px 16px 16px;
  font-size: .82rem;
}

/* ===================================================================
   VALUE PROPOSITIONS
   =================================================================== */
.cac-values {
  padding: 60px 24px;
}
.cac-values__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  text-align: center;
}
.cac-value__icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--cac-red-light);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cac-value h4 {
  font-size: .95rem;
  font-weight: 700;
  margin-bottom: 8px;
}
.cac-value p {
  font-size: .82rem;
  color: var(--cac-gray-700);
  line-height: 1.6;
}

/* ===================================================================
   LATEST INSIGHTS (HOMEPAGE)
   =================================================================== */
.cac-insights-home {
  padding: 56px 24px;
  background: var(--cac-gray-50);
}
.cac-insights-home__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
}
.cac-insights-home__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
}
.cac-insights-home__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--cac-dark);
}
/* Style the Views output as a grid */
.cac-insights-home .views-element-container .view-content {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.cac-insights-home .views-element-container .views-row {
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  transition: all var(--cac-transition);
}
.cac-insights-home .views-element-container .views-row:hover {
  transform: translateY(-4px);
  box-shadow: var(--cac-shadow-lg);
}
.cac-insights-home .views-row .views-field-field-image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}
.cac-insights-home .views-row .views-field-title {
  padding: 16px 16px 8px;
  font-size: .9rem;
  font-weight: 700;
  color: var(--cac-dark);
  line-height: 1.4;
}
.cac-insights-home .views-row .views-field-title a {
  color: inherit;
  text-decoration: none;
}
.cac-insights-home .views-row .views-field-title a:hover {
  color: var(--cac-red);
}
.cac-insights-home .views-row .views-field-created {
  padding: 0 16px 4px;
  font-size: .72rem;
  color: var(--cac-gray-500);
}
.cac-insights-home .views-row .views-field-field-tags {
  padding: 0 16px 16px;
  font-size: .68rem;
}
.cac-insights-home .views-row .views-field-field-tags a {
  display: inline-block;
  background: var(--cac-red-light);
  color: var(--cac-red);
  padding: 2px 8px;
  border-radius: 99px;
  font-weight: 600;
  text-decoration: none;
  margin-right: 4px;
  margin-bottom: 4px;
}
.cac-insights-home .views-row .views-field-body {
  padding: 0 16px 16px;
  font-size: .78rem;
  color: var(--cac-gray-700);
  line-height: 1.5;
}
@media (max-width: 900px) {
  .cac-insights-home .views-element-container .view-content {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 500px) {
  .cac-insights-home .views-element-container .view-content {
    grid-template-columns: 1fr;
  }
}

/* ===================================================================
   CTA BANNER
   =================================================================== */
.cac-cta-banner {
  background: var(--cac-red);
  color: var(--cac-white);
  padding: 56px 24px;
}
.cac-cta-banner__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.cac-cta-banner__text h2 {
  font-family: var(--cac-font-display);
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin-bottom: 8px;
}
.cac-cta-banner__text p {
  font-size: .92rem;
  opacity: .9;
  max-width: 480px;
}
.cac-cta-banner__actions {
  display: flex;
  gap: 16px;
  flex-shrink: 0;
}

/* ===================================================================
   MAIN CONTENT (sub-pages) — Premium Content Styling
   =================================================================== */
.cac-main {
  padding: 0 0 60px;
}
.cac-main__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
}

/* Page title hero banner */
.cac-main h1,
.cac-main .page-title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--cac-white);
  background: linear-gradient(135deg, var(--cac-red) 0%, #a0231a 100%);
  margin: 0 -24px 0;
  padding: 48px 48px 44px;
  border-radius: 0;
  position: relative;
}
.cac-main h1::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 48px;
  width: 60px;
  height: 4px;
  background: rgba(255,255,255,.5);
  border-radius: 2px;
}

/* Content typography */
.cac-main .field--name-field-intro-text,
.cac-main .field--name-body,
.cac-main .field--name-field-intro-heading,
.cac-main .text-formatted {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--cac-gray-700);
}
.cac-main .field--name-field-intro-text p,
.cac-main .field--name-body p,
.cac-main .text-formatted p {
  margin-bottom: 1.2em;
  text-align: justify;
  hyphens: auto;
}
.cac-main .field--name-field-intro-text h2,
.cac-main .field--name-body h2,
.cac-main .text-formatted h2 {
  font-family: var(--cac-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--cac-dark);
  margin: 2em 0 .6em;
  padding-bottom: .4em;
  border-bottom: 2px solid var(--cac-red-light);
}
.cac-main .field--name-field-intro-text h3,
.cac-main .field--name-body h3,
.cac-main .text-formatted h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--cac-dark);
  margin: 1.6em 0 .5em;
}
.cac-main .field--name-field-intro-text h4,
.cac-main .field--name-body h4,
.cac-main .text-formatted h4 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--cac-dark);
  margin: 1.4em 0 .4em;
}

/* Content images — polished look */
.cac-main img:not([src*="keyvisual"]) {
  max-width: 100%;
  height: auto;
  border-radius: var(--cac-radius);
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
  margin: 1em 0;
  transition: transform var(--cac-transition), box-shadow var(--cac-transition);
}
.cac-main img:not([src*="keyvisual"]):hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
}




/* Styled lists */
.cac-main ul {
  padding-left: 0;
  list-style: none;
}
.cac-main ul li {
  position: relative;
  padding-left: 1.5em;
  margin-bottom: .6em;
  line-height: 1.7;
}
.cac-main ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 8px;
  height: 8px;
  background: var(--cac-red);
  border-radius: 50%;
}

/* Styled links within content */
.cac-main .field--name-field-intro-text a,
.cac-main .field--name-body a,
.cac-main .text-formatted a {
  color: var(--cac-red);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(192,57,43,.3);
  text-underline-offset: 3px;
  transition: all var(--cac-transition);
}
.cac-main .field--name-field-intro-text a:hover,
.cac-main .field--name-body a:hover,
.cac-main .text-formatted a:hover {
  text-decoration-color: var(--cac-red);
}

/* Blockquotes / highlight text */
.cac-main blockquote,
.cac-main .field--name-field-highlight-quote {
  border-left: 4px solid var(--cac-red);
  background: var(--cac-beige);
  padding: 20px 28px;
  margin: 24px 0;
  border-radius: 0 var(--cac-radius) var(--cac-radius) 0;
  font-size: 1.05rem;
  font-style: italic;
  color: var(--cac-dark);
  line-height: 1.7;
}

/* Intro heading styled */
.cac-main .field--name-field-intro-heading {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--cac-dark);
  margin-bottom: 16px;
  line-height: 1.6;
}

/* Service blocks grid */
.cac-main .field--name-field-service-blocks {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  margin: 32px 0;
}
.cac-main .field--name-field-service-blocks > .field__item {
  background: var(--cac-white);
  border: 1px solid var(--cac-gray-100);
  border-radius: var(--cac-radius);
  padding: 28px;
  box-shadow: var(--cac-shadow);
  transition: all var(--cac-transition);
}
.cac-main .field--name-field-service-blocks > .field__item:hover {
  transform: translateY(-3px);
  box-shadow: var(--cac-shadow-lg);
  border-color: var(--cac-red-light);
}

/* Span styling for old CMS content */
.cac-main span[style*="font-size"] {
  font-size: inherit !important;
}
.cac-main span[style*="font-family"] {
  font-family: inherit !important;
}

/* ===================================================================
   FOOTER
   =================================================================== */
.cac-footer {
  background: var(--cac-gray-900);
  color: var(--cac-gray-300);
  padding: 60px 24px 0;
}
.cac-footer__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr repeat(4, 1fr);
  gap: 40px;
  padding-bottom: 40px;
}
.cac-footer__logo {
  /* Ticket #939: the brand logo.svg is black-on-WHITE. The old
     `filter: brightness(10)` blew it out to a solid white square on the dark
     footer. Show the real logo on a small white chip instead (legible, no square). */
  display: block;
  height: 48px;
  width: auto;
  margin-bottom: 16px;
  background: #fff;
  padding: 6px 10px;
  border-radius: var(--cac-radius);
}
.cac-footer__brand p {
  font-size: .85rem;
  line-height: 1.7;
  margin-bottom: 20px;
  color: var(--cac-gray-500);
}
/* Ticket #939: .cac-footer__social rules removed — markup deleted (no empty profiles). */
.cac-footer__col h2 {
  color: var(--cac-white);
  font-size: .9rem;
  font-weight: 600;
  margin-bottom: 16px;
}
.cac-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.cac-footer__col a {
  font-size: .84rem;
  color: var(--cac-gray-500);
  transition: color var(--cac-transition);
}
.cac-footer__col a:hover { color: var(--cac-white); }
.cac-footer__col li { font-size: .84rem; }
.cac-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  text-align: center;
  padding: 20px 0;
  font-size: .78rem;
  color: var(--cac-gray-500);
}
.cac-footer__legal-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 10px;
}
.cac-footer__legal-links a {
  color: var(--cac-gray-400);
  text-decoration: none;
  font-size: .82rem;
  transition: color .2s;
}
.cac-footer__legal-links a:hover {
  color: var(--cac-white);
}
.cac-footer__contact a {
  color: var(--cac-gray-400);
  text-decoration: none;
}
.cac-footer__contact a:hover {
  color: var(--cac-white);
}

/* ===================================================================
   SCHEDULER MODAL
   =================================================================== */
.cac-scheduler-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}
.cac-scheduler-modal.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.3s ease, visibility 0s linear 0s;
}
.cac-scheduler-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.cac-scheduler-modal__container {
  position: relative;
  width: 90%;
  max-width: 900px;
  max-height: 90vh;
  background: var(--cac-white);
  border-radius: 16px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s ease;
}
.cac-scheduler-modal.is-active .cac-scheduler-modal__container {
  transform: translateY(0) scale(1);
}
.cac-scheduler-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: none;
  background: rgba(0, 0, 0, 0.06);
  border-radius: 50%;
  font-size: 1.4rem;
  color: var(--cac-dark);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}
.cac-scheduler-modal__close:hover {
  background: rgba(0, 0, 0, 0.12);
}
.cac-scheduler-modal__header {
  padding: 28px 32px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.cac-scheduler-modal__header h2 {
  font-family: var(--cac-font-display);
  font-size: 1.5rem;
  color: var(--cac-dark);
  margin: 0 0 4px;
}
.cac-scheduler-modal__header p {
  font-size: 0.9rem;
  color: var(--cac-gray-700);
  margin: 0;
}
.cac-scheduler-modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 0;
}
.cac-scheduler-modal__body iframe {
  display: block;
}

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media (max-width: 1024px) {
  .cac-opp-grid { grid-template-columns: repeat(3, 1fr); }
  .cac-opp-grid .cac-opp-card:last-child { display: none; }
  .cac-footer__inner { grid-template-columns: 1fr 1fr; gap: 32px; }
}

@media (max-width: 768px) {
  .cac-nav, .cac-header__actions .cac-btn { display: none; }
  .cac-hamburger { display: flex; }
  .cac-header__inner { justify-content: space-between; }

  .cac-hero {
    min-height: auto;
  }
  .cac-hero__inner {
    padding-top: 40px;
    padding-bottom: 32px;
    min-height: auto;
    background-size: cover;
    background-position: center center;
  }
  .cac-hero__inner::before {
    background: linear-gradient(
      to right,
      var(--cac-beige) 0%,
      rgba(250, 246, 241, 0.85) 30%,
      rgba(250, 246, 241, 0.4) 60%,
      transparent 100%
    );
  }
  .cac-hero__content { max-width: 100%; text-align: left; }
  .cac-hero__features {
    flex-wrap: nowrap;
    gap: 12px;
    margin-bottom: 20px;
  }
  .cac-hero__feature { flex: 1; min-width: 0; }
  .cac-hero__feature-icon {
    width: 36px;
    height: 36px;
    font-size: 1rem;
    border-width: 1.5px;
  }
  .cac-hero__feature-label {
    font-size: .58rem;
    max-width: none;
  }
  .cac-hero__ctas { flex-direction: column; }
  .cac-hero__ctas .cac-btn { justify-content: center; }

  .cac-partners { margin: -20px 16px 40px; padding: 24px 16px; }
  .cac-partners__stats { flex-direction: column; gap: 12px; }

  .cac-service-card {
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto;
  }
  .cac-service-card__img {
    grid-column: 1 / -1;
    width: 100%;
    height: 160px;
  }

  .cac-opp-grid { grid-template-columns: 1fr; }
  .cac-opp-grid .cac-opp-card:last-child { display: block; }

  .cac-values__inner { grid-template-columns: repeat(2, 1fr); gap: 24px; }

  .cac-cta-banner__inner { flex-direction: column; text-align: center; }
  .cac-cta-banner__actions { flex-direction: column; width: 100%; }
  .cac-cta-banner__actions .cac-btn { justify-content: center; width: 100%; }

  .cac-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .cac-hero__title { font-size: 1.8rem; }
  .cac-hero__features { gap: 16px; }
  .cac-values__inner { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .cac-partners__track { gap: 10px; }
  .cac-partner-badge { min-width: 90px; padding: 10px 14px; }
}

/* Hide Drupal admin/chrome elements in frontend */
.cac-site .tabs,
.cac-site .block-search-form-block,
.cac-site .block-user-login-block,
.cac-site .block-system-breadcrumb-block,
.cac-site #block-coskun-academy-theme-search-form-narrow,
.cac-site #block-coskun-academy-theme-search-form-wide,
.cac-site #block-coskun-academy-theme-login,
.cac-site #block-coskun-academy-theme-breadcrumbs,
.cac-site #block-coskun-academy-theme-account-menu,
.cac-site #block-coskun-academy-theme-main-menu,
.cac-site .menu--account,
.cac-site .cac-main .menu--main,
.cac-site form[action*="search"],
.cac-site .breadcrumb,
.cac-site nav.breadcrumb,
.cac-site .user-login-form {
  display: none !important;
}

/* Hide keyvisual images only on thematic service pages (they have separate hero cards) */
.cac-main--thematic-service-page img[src*="keyvisual"] {
  display: none !important;
}

/* ===================================================================
   AUDIENCE SERVICE PAGE & BASIC PAGE — Keyvisual hero banner
   =================================================================== */
.cac-main--audience-service-page img[src*="keyvisual"],
.cac-main--basic-page img[src*="keyvisual"] {
  display: block !important;
  width: calc(100% + 48px);
  max-width: none;
  margin: 0 -24px 32px;
  height: 360px;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
  box-shadow: none;
}

/* Desktop: two-column layout (text + image side by side) like original */
@media (min-width: 769px) {
  .cac-main .cm_column_wrapper {
    display: flex !important;
    gap: 32px;
    align-items: center;
    margin: 36px 0;
  }
  .cac-main .cm_column_wrapper .cm_column:first-child {
    flex: 1 1 55%;
    width: auto !important;
  }
  .cac-main .cm_column_wrapper .cm_column:last-child {
    flex: 0 0 40%;
    width: auto !important;
  }
}
/* Mobile: stack vertically */
@media (max-width: 768px) {
  .cac-main .cm_column_wrapper {
    display: block !important;
    margin: 24px 0;
  }
  .cac-main .cm_column_wrapper .cm_column {
    width: 100% !important;
    margin-bottom: 16px;
  }
  .cac-main--audience-service-page img[src*="keyvisual"],
  .cac-main--basic-page img[src*="keyvisual"] {
    height: 200px;
  }
}

/* Hide the column gap spacers from cm4all */
.cac-main .cm_column_gap {
  display: none !important;
}
/* Fix cm4all widget images — show them properly */
.cac-main .cm_widget_block {
  margin: 0;
}
.cac-main .cm_widget_anchor {
  display: none;
}
.cac-main .cm_widget_block img {
  width: 100%;
  height: auto;
  border-radius: var(--cac-radius);
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
  transition: transform var(--cac-transition), box-shadow var(--cac-transition);
}
.cac-main .cm_widget_block img:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
}
/* Hide broken external picture sources, keep local img */
.cac-main .cm_widget_block picture source[srcset*="myinteredu.com"],
.cac-main .cm_widget_block picture source[srcset*="cm4all"] {
  display: none;
}
/* Remove clearFloating spacers */
.cac-main .clearFloating {
  display: none !important;
}
/* Inline images in cm_column — constrained size */
.cac-main .cm_column_wrapper .cm_column img:not([src*="keyvisual"]) {
  max-width: 100%;
  height: auto;
  border-radius: var(--cac-radius);
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
}

/* ---------------------------------------------------------------------------
   Ticket #938 — /services: equalise the three bottom images.
   Root cause was a CONTENT artefact, not CSS: only the middle cm4all UroPhoto
   widget carried inline width:84.1% (the other two were 100%). Fixed at source
   in the node's field_intro_text (84.1% -> 100%), so all three are now equal
   width. This CSS only equalises their HEIGHT via a shared aspect ratio + cover
   (no stretch / distortion). Scoped to the /services page class
   (.cac-main--landing-page); :has() is unsupported in the target browser. */
/* THE actual root cause: the theme's generic desktop layout makes
   .cm_column_wrapper a flex row and sizes only :first-child (55%) and
   :last-child (40%) — leaving the MIDDLE of three columns unsized, so it
   shrank to its content. Force all three columns equal on /services. */
@media (min-width: 769px) {
  .cac-main--landing-page .cm_column_wrapper .cm_column {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}
.cac-main--landing-page .cm_column_wrapper .cm_column picture { display: block; }
.cac-main--landing-page .cm_column_wrapper .cm_column img:not([src*="keyvisual"]) {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  height: auto;
  object-fit: cover;
  object-position: center;
}

/* Call-to-action links at end of audience pages */
.cac-main--audience-service-page a[href*="contact"],
.cac-main--audience-service-page a[href*="Contact"],
.cac-main--audience-service-page a[href*="bize-ulasin"] {
  display: inline-block;
  background: var(--cac-red);
  color: var(--cac-white) !important;
  padding: 12px 28px;
  border-radius: var(--cac-radius-pill);
  font-weight: 600;
  text-decoration: none !important;
  margin-top: 8px;
  transition: all var(--cac-transition);
}
.cac-main--audience-service-page a[href*="contact"]:hover,
.cac-main--audience-service-page a[href*="Contact"]:hover,
.cac-main--audience-service-page a[href*="bize-ulasin"]:hover {
  background: #a0231a;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(192,57,43,.3);
}

/* Hide Drupal system blocks (Powered by, branding, etc.) */
.cac-site .block-system-powered-by-block,
.cac-site .block-system-branding-block,
.cac-site #block-coskun-academy-theme-powered,
.cac-site #block-coskun-academy-theme-branding,
.cac-site #block-coskun-academy-theme-site-branding,
.cac-site .site-branding,
.cac-site .site-branding__name {
  display: none !important;
}

/* --- View Grid Overrides --- */
.cac-view-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin: 40px 0;
}
@media (max-width: 768px) {
  .cac-view-grid {
    grid-template-columns: 1fr;
  }
}

/* --- View List Overrides --- */
.cac-view-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 40px 0;
}

/* --- List Items (Opportunities) --- */
.cac-list-item {
  background: var(--cac-white);
  border: 1px solid var(--cac-gray-100);
  border-radius: var(--cac-radius-sm);
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transition: all var(--cac-transition);
}
.cac-list-item:hover {
  transform: translateX(4px);
  border-color: var(--cac-red-light);
  box-shadow: var(--cac-shadow);
}
.cac-list-item__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.cac-list-item__meta .cac-badge {
  position: static;
}
.cac-list-item__detail {
  font-size: .8rem;
  color: var(--cac-gray-700);
  font-weight: 500;
}
.cac-list-item__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 8px;
}
.cac-list-item__desc {
  font-size: .9rem;
  color: var(--cac-gray-700);
  margin-bottom: 20px;
  line-height: 1.6;
}
.cac-list-item__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--cac-gray-100);
  padding-top: 16px;
}
.cac-list-item__deadline {
  font-size: .8rem;
  font-weight: 600;
  color: var(--cac-red);
}

/* --- Image responsive fixes --- */
.cac-main__inner img {
  width: 100%;
  height: auto;
  max-height: 450px;
  object-fit: cover;
  display: block;
}
.cac-opp-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 70%;
  display: block;
}

/* ===================================================================
   Trust / Accreditation Strip (#966)
   =================================================================== */
.cac-trust-strip {
  background: var(--cac-gray-100);
  padding: 28px 0;
  border-bottom: 1px solid var(--cac-gray-300);
}
.cac-trust-strip__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-trust-strip__label {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  font-weight: 600;
  color: var(--cac-gray-500);
  margin-bottom: 16px;
}
.cac-trust-strip__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}
.cac-trust-strip__logo {
  height: 48px;
  width: auto;
  opacity: .85;
  transition: opacity var(--cac-transition), transform var(--cac-transition);
}
.cac-trust-strip__logo:hover {
  opacity: 1;
  transform: scale(1.06);
}
@media (max-width: 600px) {
  .cac-trust-strip__logos { gap: 20px; }
  .cac-trust-strip__logo { height: 38px; }
}

/* ===================================================================
   Partner Logos (#706)
   =================================================================== */
.cac-partners {
  background: var(--cac-white);
  padding: 56px 0;
}
.cac-partners__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-partners__title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  margin-bottom: 8px;
}
.cac-partners__subtitle {
  font-size: .9rem;
  color: var(--cac-gray-500);
  margin-bottom: 32px;
}
.cac-partners__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
.cac-partner-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transition: transform var(--cac-transition);
}
.cac-partner-card:hover {
  transform: translateY(-3px);
}
.cac-partner-card__logo {
  height: 56px;
  width: auto;
}
.cac-partner-card__label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--cac-gray-700);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* ===================================================================
   Regional Presence (#968)
   =================================================================== */
.cac-regional {
  background: var(--cac-beige);
  padding: 64px 0;
}
.cac-regional__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-regional__title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  margin-bottom: 8px;
}
.cac-regional__subtitle {
  font-size: .9rem;
  color: var(--cac-gray-500);
  margin-bottom: 40px;
}
.cac-regional__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  max-width: 700px;
  margin: 0 auto;
}
.cac-regional-card {
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  padding: 32px 20px;
  box-shadow: var(--cac-shadow);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  transition: transform var(--cac-transition), box-shadow var(--cac-transition);
}
.cac-regional-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--cac-shadow-lg);
}
.cac-regional-card__logo {
  height: 52px;
  width: auto;
}
.cac-regional-card__name {
  font-weight: 700;
  font-size: 1rem;
}
.cac-regional-card__country {
  font-size: .82rem;
  color: var(--cac-gray-500);
}

/* ===================================================================
   Trust / Accreditation Strip (#966)
   =================================================================== */
.cac-trust-strip {
  background: var(--cac-gray-100);
  padding: 28px 0;
  border-bottom: 1px solid var(--cac-gray-300);
}
.cac-trust-strip__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-trust-strip__label {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  font-weight: 600;
  color: var(--cac-gray-500);
  margin-bottom: 16px;
}
.cac-trust-strip__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}
.cac-trust-strip__logo {
  height: 48px;
  width: auto;
  opacity: .85;
  transition: opacity var(--cac-transition), transform var(--cac-transition);
}
.cac-trust-strip__logo:hover {
  opacity: 1;
  transform: scale(1.06);
}
@media (max-width: 600px) {
  .cac-trust-strip__logos { gap: 20px; }
  .cac-trust-strip__logo { height: 38px; }
}

/* ===================================================================
   Partner Logos (#706)
   =================================================================== */
.cac-partners {
  background: var(--cac-white);
  padding: 56px 0;
}
.cac-partners__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-partners__title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  margin-bottom: 8px;
}
.cac-partners__subtitle {
  font-size: .9rem;
  color: var(--cac-gray-500);
  margin-bottom: 32px;
}
.cac-partners__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
.cac-partner-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transition: transform var(--cac-transition);
}
.cac-partner-card:hover {
  transform: translateY(-3px);
}
.cac-partner-card__logo {
  height: 56px;
  width: auto;
}
.cac-partner-card__label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--cac-gray-700);
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* ===================================================================
   Regional Presence (#968)
   =================================================================== */
.cac-regional {
  background: var(--cac-beige);
  padding: 64px 0;
}
.cac-regional__inner {
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}
.cac-regional__title {
  font-family: var(--cac-font-display);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  margin-bottom: 8px;
}
.cac-regional__subtitle {
  font-size: .9rem;
  color: var(--cac-gray-500);
  margin-bottom: 40px;
}
.cac-regional__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  max-width: 700px;
  margin: 0 auto;
}
.cac-regional-card {
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  padding: 32px 20px;
  box-shadow: var(--cac-shadow);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  transition: transform var(--cac-transition), box-shadow var(--cac-transition);
}
.cac-regional-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--cac-shadow-lg);
}
.cac-regional-card__logo {
  height: 52px;
  width: auto;
}
.cac-regional-card__name {
  font-weight: 700;
  font-size: 1rem;
}
.cac-regional-card__country {
  font-size: .82rem;
  color: var(--cac-gray-500);
}

/* --- Marquee SVG logo images (Ticket #706 fix) --- */
.cac-partner-card__logo-img {
  height: 56px;
  width: auto;
  border-radius: 8px;
}

/* --- Card placeholder for items without images --- */
.cac-opp-card__placeholder {
  width: 100%;
  height: 100%;
  min-height: 180px;
  background: linear-gradient(135deg, var(--cac-gray-100) 0%, var(--cac-gray-300) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cac-radius) var(--cac-radius) 0 0;
}
.cac-opp-card__placeholder span {
  font-size: 3rem;
  font-weight: 700;
  color: var(--cac-gray-500);
  font-family: var(--cac-font-display);
}

/* --- Fix Views wrapper inside grid --- */
.cac-opp-grid .views-element-container,
.cac-opp-grid .view,
.cac-opp-grid .view-content,
.cac-opp-grid .views-row {
  display: contents;
}
/* Hide empty badges */
.cac-badge:empty {
  display: none;
}

/* --- Fix Views dynamic wrapper div breaking grid --- */
.cac-opp-grid > .views-element-container,
.cac-opp-grid .views-element-container > div,
.cac-opp-grid .view-content > .views-row {
  display: contents;
}

/* ===== CONTACT FORM (Ticket #940) ===== */
.cac-contact-section {
  padding: 4rem 2rem;
  background: #f9f9f9;
}
.cac-contact-section__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 3rem;
  align-items: start;
}
.cac-contact-section__info h2 {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  color: #1a1a2e;
  margin-bottom: 1rem;
}
.cac-contact-section__info > p {
  color: #555;
  line-height: 1.7;
  margin-bottom: 2rem;
}
.cac-contact-details {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.cac-contact-details__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #333;
  font-size: 0.95rem;
}
.cac-contact-section__form {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
  padding: 2.5rem;
}
.cac-contact-section__form label {
  display: block;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.4rem;
  font-size: 0.9rem;
}
.cac-contact-section__form input[type="text"],
.cac-contact-section__form input[type="email"],
.cac-contact-section__form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  font-size: 0.95rem;
  font-family: 'Inter', sans-serif;
  transition: border-color 0.2s;
  box-sizing: border-box;
  margin-bottom: 1.25rem;
}
.cac-contact-section__form input:focus,
.cac-contact-section__form textarea:focus {
  outline: none;
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1);
}
.cac-contact-section__form textarea {
  min-height: 140px;
  resize: vertical;
}
.cac-contact-section__form .form-actions {
  margin-top: 1rem;
}
.cac-contact-section__form .form-submit,
.cac-contact-section__form button[type="submit"] {
  background: #c0392b;
  color: #fff;
  border: none;
  padding: 0.85rem 2.5rem;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
  font-family: 'Inter', sans-serif;
}
.cac-contact-section__form .form-submit:hover,
.cac-contact-section__form button[type="submit"]:hover {
  background: #a93226;
  transform: translateY(-1px);
}
.cac-contact-section__form .form-item {
  margin-bottom: 0;
}
.cac-contact-section__form .description {
  font-size: 0.8rem;
  color: #999;
  margin-top: -1rem;
  margin-bottom: 1rem;
}
/* Hide the preview button */
.cac-contact-section__form #edit-preview {
  display: none;
}
@media (max-width: 768px) {
  .cac-contact-section__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .cac-contact-section__form {
    padding: 1.5rem;
  }
}
/* Hide empty main content on contact page */
.cac-main--page .cac-main__inner:empty, .node--type-page .field--name-body:empty { display: none; }
.cac-contact-section { margin-top: -2rem; }
/* Contact page: hide the default node body, our form section replaces it */
body.path-node-11 .cac-main { display: none; }
.cac-contact-section { margin-top: 0; }
/* Contact page: hide node body text but keep hero banner */
.cac-main--contact .field--name-body,
.cac-main--contact .node__content > .field--type-text-with-summary {
  display: none;
}
.cac-main--contact .cac-main__inner {
  padding-bottom: 0;
}
/* Contact page: collapse all whitespace between hero and form */
.cac-main--contact { padding: 0; margin: 0; }
.cac-main--contact .cac-main__inner { padding: 0; margin: 0; max-width: none; }
.cac-main--contact .node__content { display: none; }
.cac-main--contact .cac-page-hero { display: block; }
.cac-main--contact article > .field--name-field-image,
.cac-main--contact .cac-page-hero,
.cac-main--contact .node__header { display: block !important; }
/* Contact page: hide empty paragraphs and old widget after hero image */
.cac-main--contact .clearFloating,
.cac-main--contact .cm_widget_block,
.cac-main--contact .field--name-body p:empty,
.cac-main--contact .field--name-body p br:only-child { display: none; }
.cac-main--contact .field--name-body > div > p:not(:first-child) { display: none; }
.cac-main--contact .field--name-body > div > div { display: none; }
.cac-main--contact .field--name-body > div > p:first-child { margin-bottom: 0; }
/* Contact page: UNDO hide of node__content now that body is clean */
.cac-main--contact .node__content { display: block !important; }
.cac-main--contact .field--name-body { display: block !important; }
/* Contact page: restore max-width, only remove vertical padding */
.cac-main--contact .cac-main__inner { max-width: 1200px !important; margin: 0 auto !important; padding: 0 2rem !important; }

/* University Directory Overrides */
.uni-directory ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.uni-directory li { list-style: none !important; }
.uni-directory li::before { display: none !important; }
.uni-directory li::marker { display: none !important; }
.uni-directory .uni-item { padding-left: 0 !important; }
.uni-directory .country-card { transition: transform 0.2s, box-shadow 0.2s; }
.uni-directory .country-card:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.uni-directory .region-filter { transition: all 0.2s; }
.uni-directory .region-filter:hover { border-color: #b22222 !important; }
.uni-directory #uni-search:focus { box-shadow: 0 0 0 3px rgba(178,34,34,0.15); }

/* Trust + Regional Offices Two-Column Layout */
.cac-trust-regional-row {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}
.cac-trust-col {
  flex: 1;
  text-align: center;
}
@media (max-width: 768px) {
  .cac-trust-regional-row {
    flex-direction: column;
    gap: 2rem;
  }
}

/* Fix: all logos on one line */
.cac-trust-regional-row .cac-trust-strip__logos {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  justify-content: center;
}
.cac-trust-regional-row .cac-trust-strip__logo {
  height: 42px;
  max-width: 120px;
  object-fit: contain;
}

/* Mobile: center trust + regional sections */
@media (max-width: 768px) {
  .cac-trust-col {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .cac-trust-strip__label {
    text-align: center;
  }
  .cac-trust-regional-row .cac-trust-strip__logos {
    justify-content: center;
  }
}

/* Force center trust sections */
.cac-trust-strip .cac-trust-col {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}
.cac-trust-strip .cac-trust-strip__logos {
  justify-content: center !important;
  width: 100% !important;
}
.cac-trust-strip .cac-trust-strip__label {
  text-align: center !important;
  width: 100% !important;
}
.cac-trust-strip .cac-trust-regional-row {
  justify-content: center !important;
  align-items: center !important;
}

/* Accredited & Trusted By: Logos groesser als regionale Reihe (#logo-replace) */
.cac-trust-regional-row .cac-trust-col--accreditation .cac-trust-strip__logo {
  height: 100px;
  width: auto;
  max-width: none;
}


/* ===== Kunden-Inhaltsseiten (basic_page), Struktur 19.08.2026 ===== */
.cac-basic-page .cac-page-lead {
  /* Textschrift, nicht Display: der Vorspann gehoert zum Fliesstext.
     (Playfair wird ohnehin nur im Schnitt 700 geladen, ein Vorspann in
     Normalgewicht gaebe es dort gar nicht.) Ueberschriften bleiben Serif. */
  font-family: var(--cac-font);
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--cac-gray-700);
  margin: 0 0 1.75rem;
  max-width: 46rem;
}
.cac-basic-page .cac-page-body > * { max-width: 46rem; }
/* Ueberschriften, Absaetze und Listen kommen aus den bestehenden
   .text-formatted-Regeln weiter oben — hier bewusst nichts ueberschreiben. */
.cac-basic-page .cac-cta {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--cac-gray-300);
}
@media (max-width: 768px) {
  .cac-basic-page .cac-page-lead { font-size: 1.25rem; }
}


/* ===== Sprachumschalter: Icon-Auslöser (19.08.2026) ===== */
.cac-lang-switch__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--cac-gray-700);
  cursor: pointer;
  transition: background var(--cac-transition), color var(--cac-transition);
}
.cac-lang-switch__toggle:hover {
  background: var(--cac-gray-100);
  color: var(--cac-dark);
}
.cac-lang-switch__toggle:focus-visible {
  outline: 2px solid var(--cac-red);
  outline-offset: 2px;
}
.cac-lang-switch.is-open .cac-lang-switch__toggle {
  color: var(--cac-red);
}
.cac-lang-switch__toggle .cac-flag {
  display: block;
  border-radius: 2px;
}


/* ===== Hauptnavigation: Platzstufen (21.08.2026) =====
   Ohne diese Stufen brechen die Menuepunkte um, sobald das Fenster schmaler
   als ~1200px wird. Unterhalb von 1080px reicht der Platz fuer 7 Punkte
   nicht mehr — dann uebernimmt das Burger-Menue. */
@media (max-width: 1200px) {
  .cac-nav__list { gap: 14px; }
  .cac-nav__link { font-size: .86rem; }
}
/* Enge Stufe: Smartphones im Desktop-Modus melden meist 980px Layoutbreite —
   dort muss die volle Navigation noch einzeilig passen. Dafuer weniger
   Innenabstand, kleinere Schrift und ohne Chevrons (spart ~110px).
   Eigener Block, damit der bestehende 1024px-Block unberuehrt bleibt. */
@media (max-width: 1024px) {
  .cac-header__inner { padding: 0 12px; gap: 16px; }
  .cac-nav__list { gap: 8px; }
  .cac-nav__link { font-size: .92rem; }
  /* Gemessen bei 980px Fensterbreite (830px Platz, breitere Vergleichsschrift):
     EN braucht 771px und passt damit einzeilig — das ist die Vorgabe des Kunden.
     TR/RU sind laenger und duerfen umbrechen (siehe flex-wrap unten). */
}
/* Erst hier reicht der Platz fuer 7 Punkte wirklich nicht mehr. */
@media (max-width: 940px) {
  .cac-nav { display: none; }
  .cac-hamburger { display: flex; }
  .cac-header__inner { justify-content: space-between; }
}


/* ===== Seiten in Arbeit (OPRO #1104) ===== */
.cac-wip-band {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 1.75rem;
  padding: 0.85rem 1.1rem;
  background: #FBF3E2;
  border-left: 3px solid #C08A16;
  border-radius: var(--cac-radius-sm);
  color: #6B4E0B;
  font-size: 1rem;
  line-height: 1.5;
}
.cac-wip-band::before {
  content: '';
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #C08A16;
}

/* ===================================================================
   FUSSBEREICH V2 (Briefing 20.08.2026, Abschnitt 12)
   Die Spalten kommen aus dem Hauptmenue und stehen fuer die ganze
   Organisation - nicht nur fuer Schueler und Familien.
   =================================================================== */
.cac-footer--v2 {
  padding-top: clamp(46px, 5vw, 72px);
}
.cac-footer--v2 .cac-footer__inner {
  grid-template-columns: minmax(240px, 1.05fr) minmax(0, 3.1fr);
  gap: clamp(30px, 4vw, 64px);
  padding-bottom: clamp(34px, 4vw, 52px);
}
.cac-footer--v2 .cac-footer__desc {
  font-size: .84rem;
  line-height: 1.7;
  color: var(--cac-gray-500);
  margin-bottom: 22px;
  max-width: 32ch;
}
.cac-footer--v2 .cac-footer__address p {
  font-size: .82rem;
  line-height: 1.65;
  color: var(--cac-gray-500);
  margin: 0 0 3px;
}
.cac-footer--v2 .cac-footer__address strong {
  color: var(--cac-gray-300);
  font-weight: 600;
}
.cac-footer--v2 .cac-footer__address-label {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cac-gray-500);
  margin-bottom: 8px !important;
}
.cac-footer--v2 .cac-footer__address a {
  color: var(--cac-gray-400);
}
.cac-footer--v2 .cac-footer__address a:hover {
  color: var(--cac-white);
}
.cac-footer--v2 .cac-footer__nav {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 26px 20px;
}
.cac-footer--v2 .cac-footer__col h2 {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .04em;
  margin-bottom: 12px;
  line-height: 1.35;
}
.cac-footer--v2 .cac-footer__col h2 a {
  color: var(--cac-white);
  font-size: inherit;
}
.cac-footer--v2 .cac-footer__col ul {
  gap: 7px;
}
.cac-footer--v2 .cac-footer__col li,
.cac-footer--v2 .cac-footer__col a {
  font-size: .76rem;
  line-height: 1.45;
}
.cac-footer--v2 .cac-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
  text-align: left;
  max-width: var(--cac-max-w);
  margin: 0 auto;
  padding: 18px 0 22px;
}
.cac-footer--v2 .cac-footer__legal-links {
  justify-content: flex-start;
  margin-bottom: 0;
}
.cac-footer--v2 .cac-footer__bottom p {
  margin: 0;
}

/* OPRO #1678: Ausloeser fuer den Terminkasten neben der Mailadresse in der
   Fusszeile -- die einzige Stelle, die auf jeder Seite existiert (#1414). */
.cac-footer--v2 .cac-footer__contact-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0 0 3px;
}
.cac-footer--v2 .cac-footer__scheduler-btn {
  display: inline-flex;
  align-items: center;
  padding: 14px 24px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--cac-white);
  color: #9e2b20;
  font-family: inherit;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .03em;
  line-height: 1;
  cursor: pointer;
  transition: border-color .22s ease, color .22s ease, background .22s ease;
}
.cac-footer--v2 .cac-footer__scheduler-btn:hover {
  border-color: transparent;
  color: #9e2b20;
  background: #f2ebe0;
}

@media (max-width: 1100px) {
  .cac-footer--v2 .cac-footer__inner {
    grid-template-columns: 1fr;
  }
  .cac-footer--v2 .cac-footer__nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .cac-footer--v2 .cac-footer__nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cac-footer--v2 .cac-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ===================================================================
   BILDTAFEL IM AUFKLAPPMENUE (Kundenwunsch 21.08.2026)
   Die Tafel uebernimmt die Positionierung vom Untermenue; das Bild bleibt
   dem Text untergeordnet und traegt selbst keine Beschriftung.
   =================================================================== */
.cac-nav__panel {
  position: absolute;
  top: 100%;
  left: -12px;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  background: var(--cac-white);
  border-radius: var(--cac-radius);
  box-shadow: var(--cac-shadow-lg);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all var(--cac-transition);
}
.cac-nav__dropdown:hover .cac-nav__panel,
.cac-nav__dropdown:focus-within .cac-nav__panel,
.cac-nav__link[aria-expanded="true"] + .cac-nav__panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
/* Innerhalb der Tafel ist das Untermenue ein normaler Block. */
.cac-nav__panel .cac-nav__submenu {
  position: static;
  opacity: 1;
  visibility: inherit;
  transform: none;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  padding: 12px 0;
  min-width: 232px;
}
.cac-nav__panel-media {
  flex: 0 0 236px;
  display: block;
  margin: 12px 12px 12px 4px;
  border-radius: 6px;
  overflow: hidden;
  line-height: 0;
}
.cac-nav__panel-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  /* Zurueckhaltend: das Bild soll die Links nicht ueberstrahlen. */
  filter: saturate(.88);
  transition: transform .5s cubic-bezier(.2, .7, .3, 1), filter var(--cac-transition);
}
.cac-nav__panel-media:hover img {
  filter: saturate(1);
  transform: scale(1.03);
}
/* Die beiden rechten Menuepunkte klappen nach innen auf, sonst steht die
   Tafel ueber dem Fensterrand. */
.cac-nav__list > li:nth-last-child(-n+3) .cac-nav__panel {
  left: auto;
  right: -12px;
}
@media (max-width: 1240px) {
  .cac-nav__panel-media {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cac-nav__panel-media img {
    transition: none;
  }
}

/* ===================================================================
   BANNER AUF INHALTSSEITEN (Kundennachricht 21.08.2026)
   Kasten folgt dem Bild, Deckel 600px -- Entscheidung des Koenigs 18.09.2026,
   OPRO #1663 (Kommentar 7682), nach Kundenmeldung "still zoomed in" 36 Minuten
   nach dem festen 2:1-Kasten aus #1659. Acht der zwoelf Aufmacher liefern eine
   Quelle im Verhaeltnis ~2,35:1 -- schmaler als 2:1 schnitt ihnen 14,9% der
   Breite weg. Kein festes aspect-ratio mehr auf Web: die Hoehe kommt aus dem
   Bild (height: auto), max-height: 600px begrenzt nur die vier hohen Fotos
   (Verhaeltnis < 2,0) auf den von #1659 entschiedenen Zuschnitt. max-height
   stammt aus .cac-main__inner img (dort 450px) und wird hier -- und nur hier,
   nicht am Selektor oben -- auf 600px angehoben; .cac-main .cac-page-banner img
   hat bereits hoehere Spezifitaet als .cac-main__inner img, der Deckel bleibt
   fuer alle anderen Inhaltsbilder wirksam. Handy (aspect-ratio: 16/9 unterhalb
   700px) ist von dieser Aenderung nicht betroffen.
   =================================================================== */
.cac-page-banner {
  /* Buendig mit der Titelfahne darueber, die ebenfalls aus dem Textcontainer
     herausragt (.cac-main h1 hat margin: 0 -24px). */
  margin: 0 -24px 32px;
  overflow: hidden;
  line-height: 0;
}
.cac-main .cac-page-banner img,
.cac-main .cac-page-banner img:not([src*="keyvisual"]) {
  display: block;
  width: 100%;
  height: auto;
  max-height: 600px;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}
.cac-main .cac-page-banner img:hover,
.cac-main .cac-page-banner img:not([src*="keyvisual"]):hover {
  transform: none;
  box-shadow: none;
}
@media (max-width: 700px) {
  .cac-main .cac-page-banner img,
  .cac-main .cac-page-banner img:not([src*="keyvisual"]) {
    aspect-ratio: 16 / 9;
  }
}

/* Fokuspunkt je Aufmacher, wo der zentrierte Schnitt (Vorgabe oben) einen
   Kopf oder Gebaeudeabschluss trifft (Kundenanweisung 17.09.2026, OPRO #1601).
   Gilt unveraendert in beiden Seitenverhaeltnissen -- object-position ist
   ein Prozentwert auf das Quellbild, keine Media-Query-Wiederholung noetig. */
.cac-main .cac-page-banner img[src*="hero-mustafa-coskun"] {
  object-position: center top;
}
.cac-main .cac-page-banner img[src*="hero-akylman-presidential-school"] {
  object-position: center 75%;
}

/* Nachweise und Partnerlogos auf der jeweiligen Detailseite. Ruhige Reihe,
   keine Logowand — die gehoert laut Briefing nicht auf die Startseite. */
.cac-page-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 28px 44px;
  margin: 36px 0 8px;
  padding: 28px 0 0;
  border-top: 1px solid var(--cac-gray-300);
  list-style: none;
}
/* style.css setzt fuer .cac-main ul li::before rote Punkte — die Ruecknahme
   braucht mindestens dieselbe Gewichtung, sonst bleiben die Punkte stehen. */
.cac-main .cac-page-logos li {
  padding-left: 0;
  margin-bottom: 0;
}
.cac-main .cac-page-logos li::before {
  content: none;
}
.cac-main .cac-page-logos img,
.cac-main .cac-page-logos img:not([src*="keyvisual"]) {
  height: 74px;
  width: auto;
  max-width: 230px;
  object-fit: contain;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}
@media (max-width: 700px) {
  .cac-page-logos {
    gap: 22px 30px;
  }
  .cac-main .cac-page-logos img,
  .cac-main .cac-page-logos img:not([src*="keyvisual"]) {
    height: 48px;
  }
}


/* ===== Global Presence: Inline-SVG-Karte (OPRO #1430, 13.09.2026) =====
   Schematisches Beziehungsdiagramm (kein Kartendienst): Deutschland,
   Kirgistan, Kasachstan als Kernbetrieb hervorgehoben, weitere
   internationale Reichweite dezent (kleiner, blasser, gestrichelt). */
.cac-presence-map {
  display: block;
  width: 100%;
  max-width: 46rem;
  height: auto;
  margin: 0 0 1.75rem;
}
.cac-presence-map__link { stroke-linecap: round; }
.cac-presence-map__link--core {
  stroke: var(--cac-red);
  stroke-width: 2.5;
}
.cac-presence-map__link--wide {
  stroke: var(--cac-gray-300);
  stroke-width: 1.5;
  stroke-dasharray: 4 4;
}
.cac-presence-map__node--core circle {
  fill: var(--cac-red);
}
.cac-presence-map__node--wide circle {
  fill: var(--cac-gray-500);
  opacity: .55;
}
.cac-presence-map__node text {
  font-family: var(--cac-font);
  fill: var(--cac-dark);
  text-anchor: middle;
}
.cac-presence-map__node--wide text {
  font-size: 12px;
  fill: var(--cac-gray-500);
  opacity: .8;
}
.cac-presence-map__label--main {
  font-size: 15px;
  font-weight: 700;
}
.cac-presence-map__label--sub {
  font-size: 11px;
  fill: var(--cac-gray-700);
}
@media (max-width: 640px) {
  .cac-presence-map__node text { font-size: 10px; }
  .cac-presence-map__label--main { font-size: 12px; }
  .cac-presence-map__label--sub { font-size: 9px; }
}

/* OPRO #1431 -- Inline-SVG-Grafiken For-Institutions-Cluster. Gleicher
   Punkt-und-Linie-Stil wie .cac-presence-map (#1430), hier als linearer
   Ablauf (.cac-flow-diagram, 3x) bzw. Nabe-Speiche (.cac-network-diagram,
   Universities & Education Providers). Reine Anfuegung, .cac-presence-map
   bleibt unveraendert. */
.cac-flow-diagram,
.cac-network-diagram {
  display: block;
  width: 100%;
  max-width: 46rem;
  height: auto;
  margin: 0 0 1.75rem;
}
.cac-flow-diagram__link,
.cac-flow-diagram__arrowhead,
.cac-network-diagram__link {
  stroke: var(--cac-gray-300);
  stroke-width: 2;
  stroke-linecap: round;
}
.cac-network-diagram__link--main {
  stroke: var(--cac-red);
  stroke-width: 2.5;
}
.cac-flow-diagram__node circle {
  fill: var(--cac-red);
}
.cac-network-diagram__node--hub circle {
  fill: var(--cac-red);
}
.cac-network-diagram__node--source circle,
.cac-network-diagram__node--spoke circle {
  fill: var(--cac-gray-500);
  opacity: .75;
}
.cac-flow-diagram__step {
  font-family: var(--cac-font);
  font-size: 15px;
  font-weight: 700;
  fill: #fff;
  text-anchor: middle;
}
.cac-flow-diagram__label,
.cac-network-diagram__label {
  font-family: var(--cac-font);
  font-size: 13px;
  fill: var(--cac-dark);
}
.cac-flow-diagram__label {
  /* Ablauf-Knoten: die <text> traegt kein eigenes text-anchor, hier zentriert. */
  text-anchor: middle;
}
/* Nabe-Speiche-Knoten (Universities): die Speichen-Labels tragen ihr eigenes
   text-anchor="start"/"end" je nach Seite (Praesentationsattribut) -- hier
   bewusst NICHT per CSS ueberschrieben, sonst zentrieren sich alle Labels.
   Nabe und Quellknoten haben kein eigenes text-anchor und brauchen es hier. */
.cac-network-diagram__node--hub .cac-network-diagram__label,
.cac-network-diagram__node--source .cac-network-diagram__label {
  text-anchor: middle;
}
.cac-network-diagram__label--main {
  font-weight: 700;
  fill: #fff;
}
.cac-network-diagram__node--hub .cac-network-diagram__label {
  text-anchor: middle;
}
@media (max-width: 700px) {
  .cac-flow-diagram__label,
  .cac-network-diagram__label {
    font-size: 11px;
  }
  .cac-flow-diagram__step {
    font-size: 12px;
  }
}

/* OPRO #1433 -- Students-&-Families-Cluster (Premium Education Consulting /
   International Study Opportunities). Reine Anfuegung, .cac-flow-diagram
   (#1431) wird fuer die 4D-Grafik WIEDERVERWENDET statt kopiert -- keine
   eigenen Regeln dafuer hier. Neu sind vier Komponenten: interaktive
   September-Juni-Zeitleiste, Callout-Block, Kostenformel-Kette,
   Laendervergleichs-Tabelle, Stipendienkarten. */

/* ---- Zeitleiste (September - June, mit JS umschaltbar) ---- */
.cac-main .cac-timeline {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 0 1.75rem;
  border-top: 2px solid var(--cac-gray-300);
}
.cac-main .cac-timeline__step {
  flex: 1 1 19%;
  min-width: 11rem;
  border-right: 1px solid var(--cac-gray-300);
  padding: 1rem 1rem 1.25rem;
}
.cac-main .cac-timeline__step:last-child { border-right: none; }
.cac-main .cac-timeline__toggle {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  padding: 0 0 .6rem;
  font-family: var(--cac-font);
  font-weight: 700;
  font-size: 1rem;
  color: var(--cac-red);
  cursor: pointer;
}
.cac-main .cac-timeline__toggle::before {
  content: '\2014';
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  line-height: 1.3rem;
  text-align: center;
  border-radius: 50%;
  background: var(--cac-red);
  color: var(--cac-white);
  font-size: .8rem;
  margin-right: .5rem;
}
.cac-main .cac-timeline__panel p {
  font-size: .92rem;
  color: var(--cac-gray-700);
  margin: 0;
}
/* Ohne JS bleiben alle fuenf Panels sichtbar (Pflichtkriterium). Erst mit
   JS bekommt der Container diese Klasse und blendet Nicht-aktive aus --
   Fortschreitende Verbesserung, kein Text hinter JS versteckt. */
.cac-main .cac-timeline.is-interactive .cac-timeline__panel {
  display: none;
}
.cac-main .cac-timeline.is-interactive .cac-timeline__step.is-active .cac-timeline__panel {
  display: block;
}
.cac-main .cac-timeline.is-interactive .cac-timeline__step.is-active {
  background: var(--cac-red-light);
}
.cac-main .cac-timeline.is-interactive .cac-timeline__toggle {
  cursor: pointer;
}
@media (max-width: 800px) {
  .cac-main .cac-timeline__step {
    flex: 1 1 100%;
    border-right: none;
    border-bottom: 1px solid var(--cac-gray-300);
  }
  .cac-main .cac-timeline__step:last-child { border-bottom: none; }
}

/* ---- Callout: "Minimum Requirement != Competitive Profile" ---- */
.cac-main .cac-callout {
  border: 2px solid var(--cac-red);
  border-radius: var(--cac-radius);
  background: var(--cac-red-light);
  padding: 1.5rem 1.75rem;
  margin: 0 0 1.75rem;
}
.cac-main .cac-callout h2,
.cac-main .cac-callout h3 {
  margin: 0 0 .6rem;
  color: var(--cac-red-dark);
}
.cac-main .cac-callout p {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 500;
}

/* ---- Kostenformel-Kette ---- */
.cac-main .cac-cost-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1.75rem;
  padding: 1.25rem;
  border-radius: var(--cac-radius);
  background: var(--cac-gray-100);
}
.cac-main .cac-cost-formula__item {
  background: var(--cac-white);
  border: 1px solid var(--cac-gray-300);
  border-radius: var(--cac-radius-sm);
  padding: .5rem .85rem;
  font-size: .9rem;
  font-weight: 500;
}
.cac-main .cac-cost-formula__op {
  font-weight: 700;
  color: var(--cac-red);
}
.cac-main .cac-cost-formula__item--result {
  background: var(--cac-red);
  color: var(--cac-white);
  border-color: var(--cac-red);
}

/* ---- Laendervergleichs-Tabelle ---- */
.cac-main .cac-country-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.75rem;
}
.cac-main .cac-country-table th,
.cac-main .cac-country-table td {
  border: 1px solid var(--cac-gray-300);
  padding: .75rem .9rem;
  text-align: left;
  vertical-align: top;
  font-size: .92rem;
}
.cac-main .cac-country-table th {
  background: var(--cac-dark);
  color: var(--cac-white);
  font-family: var(--cac-font-display);
  font-weight: 700;
}
.cac-main .cac-country-table td:first-child {
  font-weight: 700;
  color: var(--cac-red-dark);
  white-space: nowrap;
}

/* ---- Stipendienkarten ---- */
.cac-main .cac-scholarship-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 1rem;
  margin: 0 0 1.75rem;
}
.cac-main .cac-scholarship-card {
  border: 1px solid var(--cac-gray-300);
  border-radius: var(--cac-radius-sm);
  padding: 1rem 1.15rem;
  background: var(--cac-white);
}
.cac-main .cac-scholarship-card__name {
  display: block;
  font-weight: 700;
  color: var(--cac-red-dark);
  margin-bottom: .35rem;
}
/* ===== OPRO #1600, 17.09.2026 -- Neun SVG-Diagramme lesbar, kein Wort geaendert =====
   Kundenanweisung Mustafa Coskun, 17.09.2026 13:19:43 UTC ("Some diagrams are so
   primitive that they are pathetic!"). PO-Umfang von drei auf neun Vorkommen
   erweitert (dieselbe Vorlage steht 21x .cac-flow-diagram / 3x .cac-presence-map /
   3x .cac-network-diagram, ueber 24 Adressen in drei Sprachen).

   Reine ANFUEGUNG ans Dateiende -- keine einzige Regel aus #1430/#1431 wird
   geloescht (Ticket-Kriterium 7: "style.css/main.js duerfen wachsen, 0 geloeschte
   Regeln"), nur durch spaeter im Dokument stehende, gleich starke Selektoren
   ueberschrieben (Kaskade nach Quellreihenfolge bei gleicher Spezifitaet).

   Betroffen sind ausschliesslich: Schriftgroesse, ein Fill-Ton der "weiten"
   Praesenz-Knoten, und die Position von zwei Text-Gruppen -- per CSS `transform`
   auf den vorhandenen <text>, OHNE die x/y-Attribute im Markup anzufassen. Die
   <text>-Inhalte selbst (Wortlaut, Anzahl, Reihenfolge) sind in keiner Zeile
   dieses Blocks erwaehnt oder veraendert -- das ist mit `analyse/*-worte-nachher.txt`
   gegen den Vorzustand geprueft (siehe Bericht). */

/* -- Kriterium 3: ueberall mindestens Fliesstextgroesse (.text-formatted = 1rem
   = 16px). Ersetzt wirksam die sechs Verkleinerungsstufen 15/13/12/11/10/9px aus
   #1430/#1431, ohne eine davon zu entfernen. */
.cac-presence-map__node--wide text,
.cac-presence-map__label--sub,
.cac-flow-diagram__label,
.cac-network-diagram__label {
  font-size: 16px;
}
.cac-presence-map__label--main,
.cac-flow-diagram__step {
  font-size: 17px;
}
/* Kriterium 6 (Teil 1): auf schmalen Bildschirmen NICHT kleiner als oben --
   dieselben Selektoren wie die bestehenden Verkleinerungs-Media-Queries aus
   #1430/#1431, hier nur mit gleicher/groesserer Zahl, spaeter im Dokument. */
@media (max-width: 640px) {
  .cac-presence-map__node text { font-size: 16px; }
  .cac-presence-map__label--main { font-size: 17px; }
  .cac-presence-map__label--sub { font-size: 16px; }
}
@media (max-width: 700px) {
  .cac-flow-diagram__label,
  .cac-network-diagram__label { font-size: 16px; }
  .cac-flow-diagram__step { font-size: 17px; }
}

/* -- Kontrast: die "weite" Reichweite (UK & Europe / North America / Asia) soll
   bewusst blasser bleiben als der Kernbetrieb -- aber #888 auf Weiss bei 12px
   war genau das Bild, das der Kunde als "primitiv"/grau ansah. #555 ist derselbe
   Ton wie der Fliesstext (.text-formatted, var(--cac-gray-700)); die Abstufung
   zum Kernbetrieb bleibt ueber die Opazitaet erhalten. */
.cac-presence-map__node--wide text {
  fill: var(--cac-gray-700);
  opacity: .85;
}

/* -- Kriterium 4, Global Presence: "Kyrgyzstan / Regional operations" lag auf der
   gestrichelten Linie nach Asien (Bildbeleg: Kundenscreenshot 13.51.13,
   Nachrender screenshots/presence-map-vorher-rsvg.png vs. -nachher-rsvg.png).
   translate(560,150) ist in allen drei Sprachversionen identisch (nur der
   <text>-Inhalt unterscheidet sich, gemessen en/tr/ru) -- eine einzige Regel
   ueber den Attribut-Selektor auf die Koordinate verschiebt beide <text> dieses
   Knotens um denselben Betrag nach unten, unterhalb der ankommenden Linie.
   Keine x/y-Zahl im Markup angefasst, kein Zeichen der Beschriftung veraendert. */
.cac-presence-map__node--core[transform="translate(560,150)"] text {
  transform: translateY(58px);
}

/* -- Kriterium 4, Netzdiagramm: alle vier Speichen-Labels (Schools/Universities/
   Students/Program Partners) tragen im Markup x="-26" mit text-anchor="start" --
   das beginnt 26 Einheiten LINKS vom Knotenzentrum und laeuft nach rechts mitten
   durch den Kreis (r=18, sichtbar im Kundenscreenshot 13.52.53 und im
   Nachrender screenshots/network-diagram-vorher-rsvg.png). +52px nach rechts
   raeumt den Kreis plus 8px Abstand frei (52 - 26 = 26 = r + 8), ohne x/y im
   Markup anzufassen. */
.cac-network-diagram__node--spoke .cac-network-diagram__label {
  transform: translateX(52px);
}

/* Kriterium 5 (Richtung) ist fuer .cac-flow-diagram bereits erfuellt:
   .cac-flow-diagram__arrowhead-Linien bestehen seit #1431 (zwei Diagonalen je
   Verbindung, siehe style.css oben) -- keine neue Regel noetig, nur durch
   Ansehen bestaetigt (Kriterium 9). */

/* ---- OPRO #1600, Nachbesserung nach Abnahme-Ruecklauf (Mira, Kommentar 7155,
   17.09.2026 19:00 UTC) -- drei Funde, zwei davon aelter als #1600, aber durch
   Kriterium 4/9 gedeckt und deshalb hier mitrepariert; kein Wort angefasst.
   Reine Anfuegung, ueberschreibt nur durch spaeter im Dokument stehende
   Selektoren gleicher Spezifitaet -- 0 geloeschte Regeln. */

/* Fund 1 (aelter als #1600, aus #1430/#1431): .cac-network-diagram__label--main
   traegt fill:#fff (Zeile 2697), die beiden <text> stehen aber bei y=52/68
   AUSSERHALB des Nabenkreises (r=34) auf weissem Grund -- weisse Schrift auf
   Weiss, "CAC regional platform" war auf keiner der drei Sprachen sichtbar. */
.cac-network-diagram__label--main {
  fill: var(--cac-dark);
}

/* Fund 2 (aelter als #1600, aus #1430): "Headquarters" (Germany-Kernknoten,
   translate(150,110), identisch in allen drei Sprachen) beruehrt die
   gestrichelte Linie nach North America -- mit rsvg-convert und aufgeloesten
   CSS-Variablen nachgemessen (Lehre [[rsvg-convert-ignoriert-css-var]]):
   kleinster Pixelabstand 0,5 Einheiten, also beruehrend, nicht nur eng.
   Verschiebt BEIDE <text> dieses einen Knotens (Germany + Headquarters bleiben
   zueinander ausgerichtet) um 20 Einheiten nach links, weg von der Linie --
   nachgemessener Abstand danach ~11 Einheiten. Kein x/y im Markup angefasst,
   kein Zeichen der Beschriftung veraendert. */
.cac-presence-map__node--core[transform="translate(150,110)"] text {
  transform: translateX(-20px);
}

/* Fund 3, aus #1600 selbst (Kriterium 4 rot in Mira's Abnahme): in der von
   main.js gestapelten Mobil-Fassung lief die Verbindungslinie durch die
   Beschriftung des vorherigen Knotens, weil beide auf x=centerX zentriert
   sind. Der eigentliche Fix liegt in main.js (die Linie spart die per
   getBBox gemessene Ausdehnung der Beschriftung aus) -- diese Regel hier
   ist nur die Absicherung, falls getBBox in einem Browser einmal 0 liefert
   (z. B. display:none waehrend des Umbaus): Label bekommt einen deckenden
   Hintergrund in der Seitenfarbe, damit eine Restlinie darunter nicht
   durchscheint. */
.cac-flow-diagram.is-stacked .cac-flow-diagram__label {
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 5px;
  stroke-linejoin: round;
}

/* OPRO #1670, 18.09.2026: Startseiten-Aufmacher (Mustafas Uhrturm-Foto, Hochformat)
   verliert im queren Anzeigekasten unterhalb 900px sonst Dach und Turmspitze am
   oberen Rand -- object-position schiebt den sichtbaren Ausschnitt nach oben.
   Der Kasten (.cac-hero2--v4 .cac-hero2__media, home-v4.css) schaltet genau bei
   900px um, nicht bei 700px wie die Aufmacher der Unterseiten (.cac-page-banner,
   #1663/#1668) -- deshalb eigene Grenze hier, jener Block bleibt unangetastet. */
@media (max-width: 900px) {
  .cac-main--sections .cac-hero2--v4 .cac-hero2__media img {
    object-position: 50% 28%;
  }
}

/* OPRO #1688: Global-Presence-Grafik traegt eingebrannten Text, verliert bei aspect-ratio:16/9
   unter 700px 33,8% der Breite (gemessen). Ausnahme scoped ueber den Dateinamen, nur dieses Bild. */
@media (max-width: 700px) {
  .cac-main .cac-page-banner img[src*="hero-global-presence"] {
    aspect-ratio: auto;
  }
}


/* ===== OPRO #1689: Abzeichen getrennt und weiter unten als die Logoreihe (Kundenanordnung
   19.09.2026, Kommentar 7925/7930) -- scoped auf Node 59, keine Schema-/Template-Aenderung.
   .cac-page-body traegt selbst keine Box-Stile (nur .cac-page-body > * setzt max-width, siehe
   oben) -- display:contents verliert deshalb hier nichts, macht den Absatz aber zum direkten
   Flex-Kind von <article>, damit "order" ihn hinter die Logoreihe stellen kann. */
article[data-history-node-id="59"] {
  display: flex;
  flex-direction: column;
}
article[data-history-node-id="59"] > .cac-page-body,
article[data-history-node-id="59"] > .cac-page-body > div {
  display: contents;
}
.cac-ncuk-badge-block {
  order: 1;
  margin-top: 2.5rem;
}
.cac-ncuk-badge-block img {
  /* .cac-main__inner img (Zeile ~1609) zwingt sonst jedes Inhaltsbild auf width:100% +
     max-height:450px + object-fit:cover -- bei einem quadratischen Abzeichen schneidet das
     Kreisrand und Schrift oben/unten ab. Hier fuer dieses eine Bild aufgehoben: feste,
     unbeschnittene Groesse, zentriert, damit die eigene Schrift vollstaendig sichtbar bleibt. */
  display: block;
  width: 260px;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  margin: 0 auto;
}
.cac-ncuk-badge-block p {
  font-size: 0.85rem;
  color: var(--cac-gray-700);
  margin-top: 0.5rem;
}

/* Nachtrag OPRO #1689 (korrigiert): der erste Versuch zielte auf direkte article-Kinder --
   die tatsaechlichen Absaetze/Ueberschriften/der Abzeichen-Block sitzen aber zwei Ebenen tiefer
   (article > .cac-page-body > anonymes Feld-div > Element). display:contents aendert nur den
   Rendering-/Flexkontext, nicht die vom CSS-Selektor gelesene DOM-Tiefe -- hier auf der
   tatsaechlichen Ebene erneut gesetzt. */
article[data-history-node-id="59"] > .cac-page-body > div > * {
  max-width: 46rem;
}

/* OPRO #1698: PACE-Co-Brand-Logo an die vom Kunden markierte Stelle vor "What Is NCUK?"/
   Uebersetzung verschoben (vorher Logoreihe, #1689), zentriert. .cac-main__inner img
   (Zeile ~1609) erzwingt sonst width:100%/object-fit:cover/max-height:450px und schneidet
   das breite Logo oben/unten ab -- hier fuer diesen Wrapper aufgehoben, Muster wie
   .cac-ncuk-badge-block img (Zeile ~3101). */
.cac-pace-cobrand-inline { text-align: center; margin: 2rem 0; }
.cac-pace-cobrand-inline img { display: inline-block; width: auto; max-width: 100%; height: auto; max-height: none; object-fit: contain; margin: 0 auto; }

