/**
 * @file
 * Visual styles for nodes.
 */

.node--unpublished {
  background-color: #fff4f4;
}

/* ── Project node: contact persons section ── */

.node-project__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-600, 48px);
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px);
  background-color: var(--ambience-200, #f3f0ed);
}

.node-project__contacts-heading {
  margin: 0;
  color: var(--trust);
  font-variant-numeric: slashed-zero;
  font-family: "Bosch Sans", sans-serif;
  font-size: var(--text-h3);
  font-style: normal;
  font-weight: 700;
  line-height: 120%;
  letter-spacing: -0.665px;
}

.node-project__contacts-grid {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
}

@media (min-width: 768px) {
  .node-project__contacts {
    padding: var(--spacing-1000, 80px) var(--spacing-500, 40px);
  }

  .node-project__contacts-grid {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
  }

  .node-project__contacts-grid .contact-card {
    flex: 1 1 calc(50% - var(--spacing-200, 16px));
    max-width: calc(50% - var(--spacing-200, 16px));
    min-width: 0;
  }
}

@media (min-width: 1200px) {
  .node-project__contacts {
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }

  .node-project__contacts-heading {
    font-size: var(--h2-size, 48px);
  }
}

@media (min-width: 1920px) {
  .node-project__contacts {
    padding: var(--spacing-2000, 160px) 100px;
  }

  .node-project__contacts-heading {
    font-size: var(--h2-size, 54px);
  }
}

/* ── Project node: related content section ── handled by bosch:slider component ── */

.node-project__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-400, 32px);
}

@media (min-width: 1200px) {
  .node-project__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ── Project node: ähnliche Projekte slider section ── */

.node-project__similar {
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px);
  background-color: var(--ambience, #ebe6e1);
  overflow: hidden;
}

.node-project__similar .slider {
  gap: var(--spacing-1000, 80px);
}

.node-project__similar .slider__container {
  gap: var(--spacing-250, 20px);
}

@media (min-width: 768px) {
  .node-project__similar {
    padding: var(--spacing-1000, 80px) var(--spacing-500, 40px);
  }
}

@media (min-width: 1200px) {
  .node-project__similar {
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }
}

@media (min-width: 1920px) {
  .node-project__similar {
    padding: var(--spacing-2000, 160px) 100px;
  }
}

/* ── Person node ── */

.node-person__header {
  background-color: var(--ambience-200, #f3f0ed);
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px);
}

.node-person__header-inner {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
  max-width: calc(10 * var(--grid-column-width--desktop) + 9 * var(--grid-gutter--desktop));
  margin-inline: auto;
}

/* Portrait image: square, rounded, fixed width */
.node-person__portrait {
  width: 160px;
  height: 160px;
  border-radius: var(--border-radius-l, 12px);
  overflow: hidden;
  flex-shrink: 0;

  & img,
  & picture {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.node-person__portrait--placeholder {
  background-color: var(--ambience-600);
  display: flex;
  align-items: center;
  justify-content: center;

  .icon {
    width: 60%;
    height: 60%;
    color: var(--ambience);
    stroke-width: 0.075rem;
  }
}

.node-person__identity {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-100, 8px);
}

/* Expertise labels — pink chips, one per word, above the name */
.node-person__expertise-labels {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-075, 6px);
}

.node-person__expertise-label {
  display: inline-flex;
  align-items: center;
  padding: 3px var(--spacing-150, 12px);
  background-color: var(--attitude, #ffa0fa);
  border-radius: var(--border-radius-round, 9999px);
  font-family: "Bosch Sans", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.4;
  color: var(--trust, #550a2d);
  white-space: nowrap;
}

/* Company label above name — borrowed from about-person__label */
.node-person__company {
  margin: 0;
  font-size: var(--paragraph-m-size, 22px);
  font-weight: 400;
  line-height: 1.4;
  color: var(--accent-500, #c81e2e);
  letter-spacing: -0.22px;
}

/* Name — borrowed from about-person__name */
.node-person__name {
  margin: 0;
  font-family: "Bosch Sans", sans-serif;
  font-weight: 700;
  font-size: var(--h2-size, 48px);
  line-height: 1.2;
  letter-spacing: -0.021em;
  color: var(--trust, #550a2d);
}

/* Role / position — borrowed from about-person__role */
.node-person__role {
  margin: 0;
  font-size: var(--paragraph-l-size, 26px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.39px;
  color: var(--trust, #550a2d);
}

.node-person__location {
  margin: 0;
  font-size: var(--paragraph-m-size, 22px);
  font-weight: 400;
  line-height: 1.4;
  color: var(--trust, #550a2d);
  opacity: 0.7;
}

.node-person__actions {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-200, 16px);
  margin-top: var(--spacing-200, 16px);
}

.node-person__contact {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-075, 6px);
}

.node-person__contact .button {
  width: auto;
}

.node-person__social {
  display: flex;
  flex-direction: row;
  gap: var(--spacing-200, 16px);
}

.node-person__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--trust, #550a2d);
  flex-shrink: 0;

  svg {
    width: 100%;
    height: 100%;
  }
}

/* Content section — white background */
.node-person__content {
  background-color: var(--white, #ffffff);
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px);
}

.node-person__content-inner {
  max-width: calc(10 * var(--grid-column-width--desktop) + 9 * var(--grid-gutter--desktop));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-600, 48px);
}

/* Description + expertise — borrowed from about-person__bio */
.node-person__description,
.node-person__expertise {
  font-size: var(--paragraph-s-size, 18px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.18px;
  color: var(--trust, #550a2d);

  &:empty { display: none; }

  p:first-of-type { margin-top: 0; }
  p:last-of-type  { margin-bottom: 0; }

  a {
    color: var(--trust, #550a2d);
    text-decoration: underline;
  }
}

/* Tablet+: portrait left, identity right */
@media (min-width: 768px) {
  .node-person__header-inner {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--spacing-600, 48px);
  }

  .node-person__portrait {
    width: 220px;
    height: 220px;
  }

  .node-person__content {
    padding: var(--spacing-1000, 80px) var(--spacing-500, 40px);
  }
}

@media (min-width: 1200px) {
  .node-person__header {
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }

  .node-person__portrait {
    width: 280px;
    height: 280px;
  }

  .node-person__content {
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }
}

@media (min-width: 1440px) {
  .node-person__header {
    padding-inline-start: calc(var(--grid-margin) + 2 * var(--grid-gutter));
    padding-inline-end: var(--grid-margin);
  }

  .node-person__header-inner {
    max-width: 990px;
    margin-inline: 0;
  }
}

.path-node .node--type-person {
  margin-bottom: var(--spacing-1000, 80px);
}

.node-person__lead {
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px) 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 30px;
  letter-spacing: -0.2px;
  color: var(--trust, #550a2d);
}

@media (min-width: 768px) {
  .node-person__lead {
    padding-inline: var(--spacing-500, 40px);
  }
}

@media (min-width: 1200px) {
  .node-person__lead {
    padding-inline: var(--spacing-800, 64px);
  }
}

@media (min-width: 1440px) {
  .node-person__lead {
    padding-inline-start: calc(var(--grid-margin) + 2 * var(--grid-gutter));
    padding-inline-end: 0;
    max-width: calc(990px + var(--grid-margin) + 2 * var(--grid-gutter));
  }
}


@media (min-width: 1440px) {
  .path-node.page-node-type-person .container__inner {
    max-width: 990px;
    margin-inline-start: calc(2 * var(--grid-gutter));
  }
}

/* ── Stellenanzeige node ── */

.node--stellenanzeige {
  background-color: var(--white, #ffffff);
}

.node-stellenanzeige__work-model {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: var(--font-weight-bold, 700);
  font-size: var(--text-paragraph-l, 26px);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-stellenanzeige__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-100, 8px);
  align-items: center;
}

.node--stellenanzeige .node-article__header-right {
  flex: 0 0 320px;
}

.node-stellenanzeige__published {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-050, 4px);
}

.node-article__sidebar-meta-label {
  display: block;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: var(--font-weight-regular, 400);
  font-size: var(--text-paragraph-s, 18px);
  color: var(--trust-300, #773b57);
}

.node-article__sidebar-meta-value {
  display: block;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: var(--font-weight-bold, 700);
  font-size: var(--text-paragraph-m, 22px);
  color: var(--trust, #550a2d);
}

.node-stellenanzeige__body {
  padding: 0 var(--spacing-300, 24px) var(--spacing-800, 64px);
}

@media (min-width: 768px) {
  .node-stellenanzeige__body {
    padding: 0 var(--spacing-500, 40px) var(--spacing-1000, 80px);
  }
}

@media (min-width: 1200px) {
  .node-stellenanzeige__body {
    padding: 0 var(--spacing-800, 64px) var(--spacing-1500, 120px);
  }
}

/* ── Article node ── */

.node-article__header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
  padding: var(--spacing-800, 64px) var(--spacing-300, 24px);
}

.node-article__header-left {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-300, 24px);
}

.node-article__header-right {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
}

.node-article__headline {
  margin: 0;
  font-weight: var(--font-weight-bold, 700);
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.665px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__subline {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -0.432px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__lead {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-regular, 400);
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.18px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-200, 16px);
}

.node-article__meta-label {
  display: inline-flex;
  align-items: center;
  padding: 4px var(--spacing-150, 12px);
  background-color: var(--ambience-200, #f3f0ed);
  border-radius: var(--border-radius-s, 2px);
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 16px;
  line-height: 1.1;
  letter-spacing: -0.16px;
  color: var(--trust, #550a2d);
  white-space: nowrap;
  font-feature-settings: 'zero';
}

.node-article__hero-image {
  margin-inline: var(--spacing-300, 24px);
  border-radius: var(--border-radius-m, 4px);
  overflow: hidden;
  aspect-ratio: 16 / 9;
  position: relative;

  .image,
  .image__media,
  .media,
  .media__image-wrap {
    height: 100%;
  }

  .media__image-wrap {
    position: initial;
  }
}

.node-article__hero-image:hover .media__credits-overlay {
  opacity: 1;
}

.node-article__hero-image img,
.node-article__hero-image picture {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.node-article__body {
  padding: 0 var(--spacing-300, 24px);
  margin-bottom: var(--spacing-1000, 80px);
}

@media (min-width: 768px) {
  .node-article__header {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--spacing-800, 64px);
    padding: var(--spacing-1000, 80px) var(--spacing-500, 40px);
  }

  .node-article__header-left,
  .node-article__header-right {
    flex: 1;
    min-width: 0;
  }

  .node-article__headline {
    letter-spacing: -1.056px;
  }

  .node-article__subline {
    font-size: 30px;
    letter-spacing: -0.54px;
  }

  .node-article__lead {
    font-size: 20px;
    letter-spacing: -0.2px;
  }

  .node-article__meta-label {
    font-size: 18px;
  }

  .node-article__hero-image {
    margin-inline: var(--spacing-500, 40px);
  }

  .node-article__body {
    padding: 0 var(--spacing-500, 40px);
  }
}

@media (min-width: 1200px) {
  .node-article__header {
    padding: var(--spacing-1500) var(--spacing-800) var(--spacing-1000);
  }

  .node-article__header-right {
    gap: var(--spacing-500, 40px);
  }

  .node-article__headline {
    letter-spacing: -1.188px;
  }

  .node-article__subline {
    font-size: 34px;
    letter-spacing: -0.595px;
  }

  .node-article__lead {
    font-size: 22px;
    letter-spacing: -0.22px;
  }

  .node-article__meta-label {
    font-size: 20px;
    letter-spacing: -0.24px;
  }

  .node-article__hero-image {
    margin-inline: var(--spacing-800, 64px);
    aspect-ratio: 1720 / 665;
  }

  .node-article__body {
    padding: 0 var(--spacing-800, 64px);
    padding-right: 30%;
  }
}

/* ── Article node: newsletter box ── */

.node-article__newsletter {
  display: flex;
  overflow: hidden;
  border-radius: var(--border-radius-m, 4px);
  background-color: var(--trust, #550a2d);
  margin-inline: var(--spacing-300, 24px);
  margin-bottom: var(--spacing-1000, 80px);
  min-height: 280px;
}

.node-article__newsletter-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--spacing-400, 32px);
  padding: var(--spacing-400, 32px);
  min-width: 0;
}

.node-article__newsletter-text {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-100, 8px);
}

.node-article__newsletter-headline {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -0.73px;
  color: var(--white, #ffffff);
  font-feature-settings: 'zero';
}

.node-article__newsletter-body {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-regular, 400);
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: -0.16px;
  color: var(--white, #ffffff);
  font-feature-settings: 'zero';
}

.node-article__newsletter-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  height: 44px;
  padding: 0 var(--spacing-300, 24px);
  background-color: var(--attitude, #ffa0fa);
  border-radius: var(--border-radius-round, 9999px);
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 16px;
  line-height: 1.1;
  color: var(--trust, #550a2d);
  text-decoration: none;
  white-space: nowrap;
  font-feature-settings: 'zero';
}

.node-article__newsletter-image {
  display: none;
}

@media (min-width: 768px) {
  .node-article__newsletter {
    margin-inline: var(--spacing-500, 40px);
    min-height: 360px;
  }

  .node-article__newsletter-content {
    padding: var(--spacing-500, 40px);
  }

  .node-article__newsletter-headline {
    font-size: 44px;
    letter-spacing: -1.012px;
  }

  .node-article__newsletter-body {
    font-size: 18px;
    letter-spacing: -0.18px;
  }

  .node-article__newsletter-button {
    height: 48px;
    font-size: 18px;
    letter-spacing: -0.18px;
  }

  .node-article__newsletter-image {
    display: block;
    flex: 1;
    position: relative;
    min-width: 280px;
    overflow: hidden;
  }

  .node-article__newsletter-image img {
    position: absolute;
    width: 110%;
    height: 110%;
    top: 8%;
    left: -2%;
    max-width: none;
    object-fit: cover;
    object-position: left center;
  }
}

@media (min-width: 1200px) {
  .node-article__newsletter {
    margin-inline: var(--spacing-800, 64px);
    min-height: 500px;
  }

  .node-article__newsletter-content {
    padding: var(--spacing-800, 64px);
  }

  .node-article__newsletter-headline {
    font-size: 60px;
    letter-spacing: -1.38px;
  }

  .node-article__newsletter-body {
    font-size: 20px;
    letter-spacing: -0.2px;
  }

  .node-article__newsletter-button {
    height: 52px;
    padding: 0 var(--spacing-400, 32px);
    font-size: 20px;
    letter-spacing: -0.24px;
  }
}

@media (min-width: 1920px) {
  .node-article__newsletter {
    margin-inline: 100px;
    min-height: 720px;
  }

  .node-article__newsletter-content {
    padding: var(--spacing-800, 64px);
  }

  .node-article__newsletter-headline {
    font-size: 76px;
    letter-spacing: -1.748px;
  }

  .node-article__newsletter-body {
    font-size: 22px;
    letter-spacing: -0.22px;
  }

  .node-article__newsletter-button {
    height: 56px;
    padding: 0 var(--spacing-400, 32px);
    font-size: 22px;
    letter-spacing: -0.264px;
  }
}

/* ── Article full view: figure spacing ── */

.path-node.page-node-type-article figure.image:not(.teaser-card-content .image) {
  margin-bottom: var(--spacing-400); /* we have to try what a good measure is */
}

/* ── Article body: Canvas item spacing ──
 * Figma (141:20559): 120px gap between blocks, no per-surface padding.
 * Surface defaults (80px block, 10% inline) are overridden here so the
 * reading column stays full-width and spacing matches the design.
 */

.node-article__body .surface {
  --surface-spacing-block: 0;
  --surface-spacing-inline: 0;
}

.node-article__body {
  --container-padding-block-start: 0px;
}


.node-article__body > * + * {
  margin-top: var(--spacing-600, 48px);
}

@media (min-width: 768px) {
  .node-article__body > * + * {
    margin-top: var(--spacing-800, 64px);
  }
}

@media (min-width: 1200px) {
  .node-article__body > * + * {
    margin-top: var(--spacing-1000, 80px);
  }
}

@media (min-width: 1920px) {
  .node-article__body > * + * {
    margin-top: var(--spacing-1500, 120px);
  }
}

/* ── Article node: body + sidebar layout ── */

.node-article__sidebar {
  padding: 0 var(--spacing-300, 24px) var(--spacing-800, 64px);
  margin-bottom: var(--spacing-1000, 80px);
}

.node-article__sidebar-inner {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-500, 40px);
  padding: var(--spacing-400, 32px);
  background-color: var(--ambience-200, #f5f3f0);
  border-radius: var(--border-radius-m, 4px);
}

.node-article__sidebar-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-150, 12px);
}

.node-article__sidebar-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 9px var(--spacing-200, 16px) 11px var(--spacing-150, 12px);
  background-color: var(--ambience-500, #dbd4ce);
  border-radius: var(--border-radius-round, 9999px);
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 15px;
  line-height: 1.1;
  letter-spacing: -0.15px;
  color: var(--trust, #550a2d);
  white-space: nowrap;
  text-decoration: none;
  font-feature-settings: 'zero';
}

.node-article__sidebar-chip:hover {
  background-color: var(--ambience-600, #c8bfb8);
}

.node-article__sidebar-section {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-250, 20px);
}

.node-article__sidebar-divider {
  margin: 0;
  border: none;
  border-top: 1px solid var(--ambience-500, #dbd4ce);
}

.node-article__sidebar-share {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.node-article__sidebar-share-label {
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.18px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__sidebar-share-icons {
  display: flex;
  gap: var(--spacing-050, 4px);
}

.node-article__sidebar-share-icons .icon,
.node-publication__share-icons .icon,
.node-event__share-icons .icon,
.node-project__share-icons .icon {
  --icon-size: 24px;
}

.node-article__sidebar-share-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-100, 8px) var(--spacing-150, 12px);
  background: none;
  border: none;
  border-radius: var(--border-radius-m, 4px);
  color: var(--trust, #550a2d);
  cursor: pointer;
  text-decoration: none;
}

.node-article__sidebar-share-link:hover {
  background-color: var(--ambience-300, #e8e3de);
}

.node-article__sidebar-author {
  display: flex;
  flex-direction: column;
}

.node-article__sidebar-author-prefix {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-regular, 400);
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.18px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__sidebar-author-name {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 16px;
  line-height: 1.1;
  letter-spacing: -0.16px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

@media (min-width: 1200px) {
  .node-article__content-wrap {
    display: grid;
    grid-template-columns: 1fr 320px;
    column-gap: var(--spacing-800, 64px);
    align-items: start;
    padding-inline: var(--spacing-800, 64px);
  }

  .node-article__content-wrap .node-article__body {
    padding-inline: 0;
  }

  .node-article__sidebar {
    padding: 0;
    position: sticky;
    top: var(--spacing-400, 32px);
    padding-top: var(--spacing-1000, 80px);
  }
}

/* ── Article node: related content grid ── */

.node-article__related {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-600, 48px);
  padding: var(--spacing-2000, 160px) var(--spacing-300, 24px);
  background-color: var(--white, #ffffff);
  color: var(--trust, #550a2d);
}

.node-article__related-heading {
  margin: 0;
  font-family: var(--font-family, "Bosch Sans", sans-serif);
  font-weight: var(--font-weight-bold, 700);
  font-size: 38px;
  line-height: 1.2;
  letter-spacing: -0.797px;
  color: var(--trust, #550a2d);
  font-feature-settings: 'zero';
}

.node-article__related-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-400, 32px);
}

@media (min-width: 600px) {
  .node-article__related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .node-article__related {
    padding: var(--spacing-2000, 160px) var(--spacing-800, 64px);
  }

  .node-article__related-heading {
    font-size: 48px;
    letter-spacing: -1.008px;
  }

  .node-article__content-wrap {
    grid-template-columns: 990px 320px;
  }

  .node-article__related-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1920px) {
  .node-article__header {
    padding: var(--spacing-1500) var(--spacing-1250) var(--spacing-1000)
  }

  .node-article__headline {
    letter-spacing: -1.408px;
  }

  .node-article__subline {
    font-size: 38px;
    letter-spacing: -0.665px;
  }

  .node-article__hero-image {
    margin-inline: 100px;
    aspect-ratio: unset;
    height: 665px;
  }

  .node-article__content-wrap {
    grid-template-columns: 990px 320px;
    column-gap: 117px;
  }

  .node-article__content-wrap .node-article__body {
    padding: var(--spacing-800) 0;
  }

  .node-article__sidebar {
    padding-top: var(--spacing-800);
  }

  .node-article__related {
    padding: var(--spacing-2000, 160px) 100px;
  }

  .node-article__related-heading {
    font-size: 54px;
    letter-spacing: -1.134px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Publication node
   Figma node: 141:19096
   Layout: portrait cover (left) + details (right); related grid at bottom.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Main two-column section ──────────────────────────────────────────────── */

.node-publication__main {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--spacing-600, 48px);
  padding: var(--spacing-1000, 80px) var(--spacing-400, 32px);
}

@media (min-width: 768px) {
  .node-publication__main {
    grid-template-columns: 280px 1fr;
    gap: var(--spacing-800, 64px);
    padding: var(--spacing-1000, 80px) var(--spacing-600, 48px);
    align-items: start;
  }
}

@media (min-width: 1200px) {
  .node-publication__main {
    grid-template-columns: 340px 1fr;
    gap: var(--spacing-1000, 80px);
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }
}

@media (min-width: 1920px) {
  .node-publication__main {
    grid-template-columns: 406px 942px;
    column-gap: 80px;
    padding: var(--spacing-1500, 120px) 246px;
  }
}

/* ── Cover image ──────────────────────────────────────────────────────────── */

.node-publication__cover {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
}

.node-publication__cover-image {
  aspect-ratio: 406 / 575;
  border-radius: var(--border-radius-m, 4px);
  border: 2px solid var(--white, white);
  overflow: hidden;
  /* background-color: var(--neutral-200, #e4e4e4);*/
}

.node-publication__cover-image figure,
.node-publication__cover-image img,
.node-publication__cover-image > * {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Download button ──────────────────────────────────────────────────────── */

.node-publication__download {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-200, 16px);
  height: 56px;
  padding: 2px var(--spacing-400, 32px) 3px var(--spacing-350, 28px);
  background-color: var(--ambience, #ebe6e1);
  color: var(--trust, #550a2d);
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: var(--text-button-m, 22px);
  line-height: 1.1;
  letter-spacing: -0.264px;
  white-space: nowrap;
  text-decoration: none;
  border-radius: var(--border-radius-round, 1000px);
}

.node-publication__download:hover {
  background-color: color-mix(in srgb, var(--ambience, #ebe6e1) 85%, black);
}

.node-publication__download-icon {
  display: flex;
}

/* ── Details column ───────────────────────────────────────────────────────── */

.node-publication__details {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
}

/* ── Headline ─────────────────────────────────────────────────────────────── */

.node-publication__headline {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: var(--text-h3, 38px);
  line-height: 1.2;
  letter-spacing: -1.75px;
  color: var(--trust, #550a2d);
}

/* ── Lead text ────────────────────────────────────────────────────────────── */

.node-publication__lead {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: var(--text-paragraph-l, 22px);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: var(--trust, #550a2d);
}

/* ── Meta chips ───────────────────────────────────────────────────────────── */

.node-publication__meta-labels {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-100, 8px);
}

/* ── Body text ────────────────────────────────────────────────────────────── */

.node-publication__body {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: var(--text-paragraph-l, 22px);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: var(--trust, #550a2d);
}

.node-publication__body p { margin: 0 0 1em; }
.node-publication__body p:last-child { margin-bottom: 0; }

/* ── Publisher + authors ──────────────────────────────────────────────────── */

.node-publication__publisher {
  display: flex;
}

.node-publication__meta-row {
  display: flex;
  flex-direction: column;
}

.node-publication__meta-row-label,
.node-publication__meta-row-value {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-size: var(--text-paragraph-s, 18px);
  line-height: 1.5;
  color: var(--trust, #550a2d);
}

.node-publication__meta-row-label {
  font-weight: 700;
}

.node-publication__meta-row-value {
  font-weight: 400;
}

/* ── Share section ────────────────────────────────────────────────────────── */

.node-publication__share {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-250, 20px);
  padding: var(--spacing-250, 20px) 28px;
  background-color: var(--ambience-200, #f3f0ed);
  border-radius: var(--border-radius-m, 4px);
}

.node-publication__share-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.node-publication__share-label {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.18px;
  color: var(--trust, #550a2d);
  white-space: nowrap;
  font-feature-settings: 'zero';
}

.node-publication__share-icons {
  display: flex;
  gap: var(--spacing-050, 4px);
}

.node-publication__share-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-100, 8px) var(--spacing-150, 12px);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--trust, #550a2d);
  text-decoration: none;
  border-radius: var(--border-radius-m, 4px);
}

.node-publication__share-link:hover {
  background-color: var(--ambience-300, #e3ddd7);
}

.node-publication__share-divider {
  border: none;
  border-top: 1px solid var(--ambience-500, #c9c0b8);
  margin: 0;
}

.node-publication__social-media {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: center;
}

.node-publication__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 4px;
  border-radius: var(--border-radius-m, 4px);
  color: var(--trust, #550a2d);
  text-decoration: none;
  flex-shrink: 0;
}

.node-publication__social-link:hover {
  background-color: var(--ambience-300, #e3ddd7);
}

.node-publication__social-link svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* ── Related publications section ─────────────────────────────────────────── */

.node-publication__related {
  background-color: var(--ambience-200, #f3f0ed);
  padding: var(--spacing-1000, 80px) var(--spacing-400, 32px);
}

@media (min-width: 1200px) {
  .node-publication__related {
    padding: var(--spacing-1500, 120px) var(--spacing-800, 64px);
  }
}

@media (min-width: 1920px) {
  .node-publication__related {
    padding: var(--spacing-1500, 120px) 246px;
  }
}

.node-publication__related-heading {
  margin: 0 0 var(--spacing-1000, 80px);
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: var(--text-h2, 54px);
  line-height: 1.2;
  letter-spacing: -1.134px;
  color: var(--trust, #550a2d);
  text-align: center;
}

.node-publication__related-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-400, 32px);
  align-items: end;
}

@media (min-width: 1200px) {
  .node-publication__related-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 80px;
  }
}

/* ── Related publication card ─────────────────────────────────────────────── */

.node-publication__related-card {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-300, 24px);
}

.node-publication__related-card-image {
  aspect-ratio: 297 / 420;
  border-radius: var(--border-radius-m, 4px);
  overflow: hidden;
  background-color: var(--neutral-200, #e4e4e4);
}

.node-publication__related-card-image figure,
.node-publication__related-card-image img,
.node-publication__related-card-image > * {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.node-publication__related-card-title {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: var(--text-paragraph-l, 22px);
  line-height: 1.4;
  color: var(--trust, #550a2d);
  text-decoration: none;
}

.node-publication__related-card-title:hover {
  text-decoration: underline;
}

.node-publication__related-card-actions {
  display: flex;
  gap: var(--spacing-200, 16px);
  align-items: center;
}

/* ═══════════════════════════════════════════════════════════════════════════
   NODE — Event
═══════════════════════════════════════════════════════════════════════════ */

/* ── Layout ──────────────────────────────────────────────────────────────── */

.node--type-event {
  padding: var(--spacing-600, 48px) 0;
}

.node--type-event.node--view-mode-teaser-list {
  position: relative;
  max-width: 1428px;
  margin-inline: auto;
  padding-top: var(--spacing-400, 32px);
}

@media (min-width: 1200px) {
  .node--type-event.node--view-mode-teaser-list {
    padding-top: var(--spacing-1000, 80px);
    padding-bottom: var(--spacing-1000, 80px);
  }
}

/* Separator line above every row */
.node--type-event.node--view-mode-teaser-list::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 2px;
  background: var(--ambience, #ebe6e1);
}

/* Closing line after the last row */
.views-row:last-child .node--type-event.node--view-mode-teaser-list::after,
.view-content > .node--type-event.node--view-mode-teaser-list:last-child::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 2px;
  background: var(--ambience, #ebe6e1);
}

.node-event__layout {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-600, 48px);
}

@media (min-width: 1200px) {
  .node-event__layout {
    display: grid;
    grid-template-columns: 360px 1fr;
    column-gap: 80px;
    row-gap: 0;
    align-items: start;
  }
}

@media (min-width: 1920px) {
  .node-event__layout {
    grid-template-columns: 320px 994px;
  }
}

/* ── Sidebar ─────────────────────────────────────────────────────────────── */

@media (min-width: 1200px) {
  .node-event__sidebar {
    position: sticky;
    top: var(--spacing-600, 48px);
  }
}

.node-event__sidebar-card {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
  padding: var(--spacing-400, 32px);
  background-color: var(--ambience-200, #f3f0ed);
  border-radius: var(--border-radius-m, 4px);
}

/* ── Date block ─────────────────────────────────────────────────────────── */

.node-event__date-block {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-050, 4px);
}

.node-event__date {
  color: var(--accent-accent, #FA263A);
  font-variant-numeric: slashed-zero;
  font-family: "Bosch Sans", sans-serif;
  font-size: var(--text-size-Headline-h4, 32px);
  font-style: normal;
  font-weight: 700;
  line-height: 125%;
  letter-spacing: -0.48px;
}

.node-event__date-time {
  color: var(--trust);
  font-variant-numeric: slashed-zero;
  font-family: "Bosch Sans", sans-serif;
  font-size: var(--text-paragraph-m);
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: -0.22px;
}

/* ── Location block ─────────────────────────────────────────────────────── */

.node-event__location-block {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-150, 12px);
}

.node-event__venue-name {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  color: var(--trust, #550a2d);
}

.node-event__address {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: var(--trust, #550a2d);
  font-style: normal;
  opacity: 0.75;
}

.node-event__route-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-100, 8px);
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.5;
  color: var(--attitude-600, #cc80ca);
  text-decoration: none;
}

.node-event__route-link:hover {
  text-decoration: underline;
}

/* ── Sidebar sections (divider + content) ───────────────────────────────── */

.node-event__sidebar-section {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-300, 24px);
}

.node-event__divider {
  border: none;
  border-top: 1px solid var(--ambience-500, #c9c0b8);
  margin: 0;
}

/* ── Organizer meta item ────────────────────────────────────────────────── */

.node-event__meta-item {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-050, 4px);
}

.node-event__location-label,
.node-event__meta-label {
  color: var(--trust-trust, #550A2D);
  font-variant-numeric: slashed-zero;
  font-family: "Bosch Sans", sans-serif;
  font-size: var(--text-paragraph-s, 18px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: -0.18px;
}

.node-event__meta-value {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  color: var(--trust, #550a2d);
}

/* ── Share (sidebar) ────────────────────────────────────────────────────── */

.node-event__share {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-200, 16px);
}

.node-event__share-label {
  color: var(--trust-trust, #550A2D);
  font-variant-numeric: slashed-zero;
  font-family: "Bosch Sans", sans-serif;
  font-size: var(--text-paragraph-s, 18px);
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  letter-spacing: -0.18px;
}

.node-event__share-icons {
  display: flex;
  align-items: center;
  gap: var(--spacing-050, 4px);
}

.node-event__share-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-100, 8px) var(--spacing-150, 12px);
  border: none;
  background: none;
  border-radius: var(--border-radius-m, 4px);
  color: var(--trust, #550a2d);
  text-decoration: none;
  cursor: pointer;
  flex-shrink: 0;
}

.node-event__share-link:hover {
  background-color: var(--ambience-300, #e3ddd7);
}

/* ── Project share ── */

.node-project__share {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-200, 16px);
}

.node-project__share-label {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.5;
  color: var(--trust, #550a2d);
}

.node-project__share-icons {
  display: flex;
  align-items: center;
  gap: var(--spacing-050, 4px);
}

.node-project__share-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-100, 8px) var(--spacing-150, 12px);
  border: none;
  background: none;
  border-radius: var(--border-radius-m, 4px);
  color: var(--trust, #550a2d);
  text-decoration: none;
  cursor: pointer;
  flex-shrink: 0;
}

.node-project__share-link:hover {
  background-color: var(--ambience-300, #e3ddd7);
}

/* ── CTA / Registration button ──────────────────────────────────────────── */

.node-event__cta-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-100, 8px);
  width: 100%;
  padding: 14px var(--spacing-300, 24px);
  background-color: var(--attitude, #ffa0fa);
  border-radius: var(--border-radius-pill, 100px);
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  color: var(--trust, #550a2d);
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.node-event__cta-button:hover {
  background-color: var(--attitude-400, #ffb8ff);
}

/* ── Main content column ────────────────────────────────────────────────── */

.node-event__main {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-600, 48px);
}

/* ── Chips row ──────────────────────────────────────────────────────────── */

.node-event__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-150, 12px);
  align-items: center;
}

/* ── Headline ───────────────────────────────────────────────────────────── */

.node-event__headline {
  margin: 0;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 1.1;
  letter-spacing: -1px;
  color: var(--trust, #550a2d);
}

/* ── Hero image ─────────────────────────────────────────────────────────── */

.node-event__hero {
  border-radius: var(--border-radius-m, 4px);
  overflow: hidden;
  background-color: var(--neutral-200, #e4e4e4);
}

.node-event__hero figure,
.node-event__hero img,
.node-event__hero > * {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Body text ──────────────────────────────────────────────────────────── */

.node-event__body {
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.65;
  color: var(--trust, #550a2d);
}

.node-event__body p {
  margin: 0 0 var(--spacing-300, 24px);
}

.node-event__body p:last-child {
  margin-bottom: 0;
}

/* ── Meta table rows (topics / experts) ─────────────────────────────────── */

.node-event__meta-table-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-200, 16px);
  align-items: flex-start;
  border-top: 1px solid var(--ambience-400, #d6d0ca);
  padding-top: var(--spacing-300, 24px);
}

.node-event__meta-table-key {
  min-width: 90px;
  padding-top: 3px;
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--trust, #550a2d);
  opacity: 0.6;
}

.node-event__meta-table-value {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-100, 8px);
  align-items: center;
}

.node-event__expert-tag {
  display: inline-flex;
  padding: 3px 12px;
  background-color: var(--ambience-200, #f3f0ed);
  border-radius: var(--border-radius-pill, 100px);
  font-family: 'Bosch Sans', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  color: var(--trust, #550a2d);
}

/* ── Contact persons ────────────────────────────────────────────────────── */

.node-event__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-400, 32px);
  border-top: 1px solid var(--ambience-400, #d6d0ca);
  padding-top: var(--spacing-400, 32px);
}

@media (min-width: 768px) {
  .node-event__contacts {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

/* ── Landingpage node: page title ── */

.node-landingpage__title {
  padding-block: var(--spacing-2000, 160px) var(--spacing-1000, 80px);
  font-family: var(--font-bosch-sans, 'Bosch Sans'), sans-serif;
  font-weight: 700;
  font-size: var(--text-h2);
  line-height: 1.2;
  letter-spacing: -0.021em;
  color: var(--trust, #550a2d);
  text-align: center;
}

.node-landingpage--project-sub .node-landingpage__title {
  max-width: calc(1427px + 2 * var(--grid-margin, 16px));
  margin-inline: auto;
  padding-inline: var(--grid-margin, 16px);
}

@media (min-width: 768px) {
  .node-landingpage--project-sub .node-landingpage__title {
    /* align with container-100--small: grid-margin + 1 col + 1 gutter, viewport-based */
    padding-inline-start: calc(var(--grid-margin) + var(--grid-column-width) + var(--grid-gutter));
  }
}

@media (min-width: 1440px) {
  .node-landingpage--project-sub .node-landingpage__title {
    /* col-width derived from fixed 1427px content area (container is max-width capped here) */
    padding-inline-start: calc(var(--grid-margin) + (1427px - 11 * var(--grid-gutter)) / 12 + var(--grid-gutter));
  }
}

/* ── Landingpage node: Projektunterseite canvas bottom spacing ── */

.node-landingpage--project-sub .node__content {
  padding-block-end: var(--spacing-1000, 80px);
}

.node-landingpage--project-sub .node__content h3,
.node-landingpage--project-sub .node__content .heading--h3 {
  padding-block: 24px;
}

/* ── Landingpage node: sticky back-to-project link ── */

.node-landingpage__back {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: var(--spacing-300, 24px) var(--spacing-300, 24px);
}

@media (min-width: 1024px) {
  .node-landingpage__back {
    padding-left: var(--spacing-600, 48px);
    padding-right: var(--spacing-600, 48px);
  }
}

/* ── Page node: centered h1 ── */
.node--type-page .heading--h1 {
  text-align: center;
}

