/* Logo placeholders and simplified legal footer */
.card-icon {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .7);
  border: 1px dashed rgba(20, 43, 74, .28);
  border-radius: 3px;
}

.card-icon svg {
  width: 29px;
  height: 29px;
  fill: none;
  stroke: rgba(20, 43, 74, .48);
  stroke-width: 1.6;
}

.card-icon img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 6px;
  object-fit: contain;
}

.center-mark {
  background: #fff;
  border: 1px solid rgba(255, 255, 255, .35);
}

.center-mark img,
.center-mark .img {
  width: 80%;
  height: 80%;
  object-fit: contain;
}

/* Typography */
body,
p,
address,
button,
a,
.hero-copy > p,
.hero-visual > p,
.intro p,
.portal-card p,
.values p,
.imprint {
  font-family: 'DM Sans', sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
h1 em,
h2 em,
h3 em {
  font-family: 'Manrope', sans-serif;
}

footer {
  width: 100%;
  max-width: none;
  padding: 28px 36px;
  background: var(--paper);
}

.imprint {
  width: 100%;
  max-width: 1208px;
  margin: 0 auto;
}

@media (max-width: 600px) {
  footer { padding: 20px; }
  .imprint { grid-template-columns: 1fr; }
}
