/* ═══════════════════════════════════════════
   VON SCHWECH IMMOBILIEN — style.css v2
   ═══════════════════════════════════════════ */

:root {
  --cream:  #f7f3ed;
  --cream2: #ede8df;
  --white:  #ffffff;
  --ink:    #1c1a17;
  --mid:    #6b6560;
  --rule:   rgba(28,26,23,0.1);
  --gold:   #b09070;
  --serif:  'Cormorant', Georgia, serif;
  --sans:   'Jost', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
/* Wie fadeIn, aber bewahrt eine bestehende translateX(-50%)-Zentrierung.
   Wird für horizontal zentrierte, absolut positionierte Elemente benötigt
   (z. B. .hero-bottom) – sonst überschreibt "transform: none" am Ende der
   Animation die Zentrierung und das Element rutscht nach rechts aus dem
   sichtbaren Bereich. */
@keyframes fadeInCenterX {
  from { opacity: 0; transform: translate(-50%, 16px); }
  to   { opacity: 1; transform: translate(-50%, 0); }
}
@keyframes scrollDot {
  0%  { transform: translateY(0);    opacity: .8; }
  60% { transform: translateY(9px);  opacity: .2; }
  100%{ transform: translateY(0);    opacity: .8; }
}

/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90;
  display: flex; justify-content: space-between; align-items: center;
  padding: 24px 52px;
  transition: padding .4s, background .4s, border-color .4s;
  border-bottom: 1px solid transparent;
}
nav.scrolled {
  padding: 16px 52px;
  background: rgba(247,243,237,0.97);
  /* backdrop-filter removed: avoids rendering artefacts on some browsers */
  border-bottom-color: var(--rule);
}
.nav-logo img {
  height: 46px; width: auto;
  transition: height .4s;
  display: block;
}
nav.scrolled .nav-logo img { height: 34px; }
.nav-links { display: flex; gap: 36px; list-style: none; }
.nav-links a {
  font-family: var(--sans); font-size: .65rem; font-weight: 300;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--mid); text-decoration: none; transition: color .3s;
}
.nav-links a:hover { color: var(--ink); }
.nav-cta {
  font-family: var(--sans); font-size: .65rem; font-weight: 300;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid rgba(28,26,23,.3);
  padding-bottom: 2px; transition: border-color .3s;
}
.nav-cta:hover { border-color: var(--ink); }
.hamburger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; background: none; border: none;
}
.hamburger span { display: block; width: 22px; height: 1px; background: var(--ink); }

/* ── MOBILE MENU ── */
.mob {
  display: none; position: fixed; inset: 0; z-index: 200;
  background: var(--cream);
  flex-direction: column; justify-content: center; align-items: flex-start;
  padding: 60px 40px; gap: 28px;
}
.mob.open { display: flex; }
.mob img { height: 48px; margin-bottom: 28px;  }
.mob a {
  font-family: var(--serif); font-size: 2.2rem;
  font-weight: 300; color: var(--ink); text-decoration: none;
}
.mob a:hover { color: var(--gold); }
.mob-close {
  position: absolute; top: 28px; right: 36px;
  background: none; border: none; color: var(--mid);
  font-size: 1.2rem; cursor: pointer;
}

/* ── HERO ── */
#hero {
  height: 100vh;
  min-height: 720px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f7f3ed;
  isolation: isolate;
}
.hero-img {
  position: absolute;
  inset: 0;
  background-image: url('../img/hero.jpg?v=11');
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  z-index: 0;
  transform: translateZ(0);
  backface-visibility: hidden;
}
.hero-img img {
  display: none;
}
.hero-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(247,243,237,0.0) 0%,
    rgba(247,243,237,0.0) 65%,
    rgba(247,243,237,0.5) 100%
  );
}
.hero-logo-center {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  animation: fadeIn 1.2s .5s both;
}
.hero-logo-center img {
  width: clamp(240px, 32vw, 460px);
  height: auto;
  display: block;
  filter: drop-shadow(0 4px 30px rgba(247,243,237,.75)) drop-shadow(0 1px 8px rgba(247,243,237,.6));
}
.hero-scroll-hint {
  position: absolute; bottom: 32px; left: 50%;
  transform: translateX(-50%); z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  animation: fadeInCenterX 1s 1.6s both;
}
.hero-scroll-hint span {
  font-family: var(--sans); font-size: .54rem;
  letter-spacing: .22em; text-transform: uppercase;
  color: rgba(28,26,23,.45);
}
.hero-scroll-hint svg { opacity: .35; }
.hero-scroll-hint circle { animation: scrollDot 2s 2s ease infinite; }


/* WebP fallback deaktiviert: stabile JPG-Darstellung gegen Browser-Artefakte. */

@media (max-width: 900px) {
  #hero { min-height: 640px; }
  .hero-img { background-position: center 38%; }
}

/* ── HERO-BOTTOM (Tagline + Buttons über dem Foto) ── */
.hero-bottom {
  position: absolute; bottom: 56px; left: 50%; transform: translateX(-50%);
  z-index: 3; width: 100%; max-width: 720px; text-align: center; padding: 0 24px;
  animation: fadeInCenterX 1s 1.4s both;
}
.hero-bottom .hero-tag {
  font-family: var(--sans); font-size: .84rem; font-weight: 300; color: var(--ink);
  max-width: 560px; margin: 0 auto 24px; line-height: 1.8;
  text-shadow: 0 1px 10px rgba(247,243,237,.85);
}
.hero-bottom .hero-cta-row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }
@media (max-width: 1024px) {
  .hero-bottom { bottom: 34px; }
  .hero-bottom .hero-tag { font-size: .76rem; margin-bottom: 18px; }
}
@media (min-width: 1025px) {
  .hero-bottom .hero-tag { font-size: 1rem; }
}

/* ── OBJEKT-STREIFEN (schwarz-weiß) ── */
.obj-strip { padding: 40px 52px 100px; border-top: 1px solid var(--rule); }
.obj-strip-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin-top: 30px; }
.obj-strip-item { position: relative; overflow: hidden; aspect-ratio: 4/3; margin: 0; }
.obj-strip-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: grayscale(100%) contrast(1.05) brightness(1.02);
  transition: transform .6s ease;
}
.obj-strip-item:hover img { transform: scale(1.04); }
.obj-strip-item figcaption {
  position: absolute; left: 18px; bottom: 16px;
  font-family: var(--sans); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--cream); text-shadow: 0 1px 6px rgba(0,0,0,.55);
}
@media (max-width: 1024px) {
  .obj-strip { padding: 24px 24px 60px; }
  .obj-strip-row { grid-template-columns: 1fr; gap: 10px; }
}

/* ── STATEMENT ── */
#statement {
  padding: 100px 52px;
  border-top: 1px solid var(--rule);
  display: grid; grid-template-columns: 160px 1fr;
  gap: 60px; align-items: start;
}
.st-label {
  font-size: .58rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--gold); padding-top: 10px;
}
.st-text {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  font-weight: 300; line-height: 1.45; color: var(--ink);
}
.st-text em { font-style: italic; color: var(--mid); }

/* ── ÜBER UNS ── */
#ueber {
  display: grid; grid-template-columns: 420px 1fr;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.ue-photo { overflow: hidden; position: relative; background: var(--cream2); }
.ue-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 15%;
  filter: grayscale(100%) contrast(1.05) brightness(1.08);
  display: block;
}
.ue-content {
  padding: 90px 80px 90px 70px;
  display: flex; flex-direction: column; justify-content: center;
  background: var(--white);
}
.sec-label {
  font-size: .58rem; letter-spacing: .26em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 28px;
}
.ue-h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 300; line-height: 1.2; margin-bottom: 28px;
}
.ue-h2 em { font-style: italic; color: var(--mid); }
.ue-body { font-size: .84rem; line-height: 2; color: var(--mid); max-width: 460px; margin-bottom: 16px; }
.ue-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.ue-tag {
  font-size: .55rem; letter-spacing: .14em; text-transform: uppercase;
  border: 1px solid rgba(28,26,23,.15); color: var(--mid); padding: 5px 13px;
}

/* ── OFF-MARKET ── */
#offmarket { padding: 100px 52px; background: var(--cream); }
.om-top { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; margin-bottom: 70px; }
.om-h2 { font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 300; line-height: 1.12; }
.om-h2 em { font-style: italic; color: var(--mid); }
.om-lead { font-size: .82rem; line-height: 2; color: var(--mid); }
.om-list { list-style: none; border-top: 1px solid var(--rule); min-width: 0; }
.om-list li {
  display: grid; grid-template-columns: 56px 1fr 1fr;
  gap: 32px; align-items: baseline;
  padding: 28px 0; border-bottom: 1px solid var(--rule);
  transition: background .25s;
  min-width: 0;
}
.om-t, .om-d { min-width: 0; overflow-wrap: break-word; }
.om-list li:hover { background: rgba(28,26,23,.02); padding-left: 10px; margin-left: -10px; }
.om-n { font-size: .7rem; color: var(--gold); letter-spacing: .08em; }
.om-t { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; color: var(--ink); }
.om-d { font-size: .78rem; line-height: 1.8; color: var(--mid); }
.om-cta { margin-top: 40px; font-size: .8rem; color: var(--mid); display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.teaser-sec .om-top { margin-bottom: 0; }
#offmarket.teaser-sec > .lnk { margin: 40px 52px 0; display: inline-flex; }
@media (max-width: 1024px) { #offmarket.teaser-sec > .lnk { margin: 30px 24px 0; } }

/* ── INVESTOREN ── */
#investor { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rule); }
.inv-img {
  min-height: 580px;
  background: url('https://images.unsplash.com/photo-1589797268350-44b2cbae816e?w=1400&q=80') center/cover no-repeat;
  filter: grayscale(100%) contrast(1.05) brightness(.96);
  position: relative;
}
.inv-img::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to right, transparent 55%, var(--cream));
}
.inv-content { padding: 90px 70px; background: var(--cream); display: flex; flex-direction: column; justify-content: center; }
.inv-h2 { font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 300; line-height: 1.2; margin-bottom: 24px; }
.inv-h2 em { font-style: italic; color: var(--mid); }
.inv-body { font-size: .82rem; line-height: 2; color: var(--mid); max-width: 420px; margin-bottom: 32px; }
.inv-pts { display: flex; flex-direction: column; gap: 14px; margin-bottom: 44px; }
.inv-pt { display: flex; gap: 16px; font-size: .8rem; line-height: 1.7; color: var(--mid); }
.inv-pt::before { content: ''; flex-shrink: 0; width: 14px; height: 1px; background: var(--gold); margin-top: 11px; }
.lnk {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .62rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid rgba(28,26,23,.25); padding-bottom: 3px;
  transition: gap .3s, border-color .3s;
}
.lnk::after { content: '→'; }
.lnk:hover { gap: 16px; border-color: var(--ink); }

/* ── QUALIFIZIERUNGS-PROZESS ── */
.kap-steps-sec { padding: 100px 52px; background: var(--white); border-top: 1px solid var(--rule); }

/* ── KAPITALANLAGEN-FRAGEBOGEN ── */
.kap-form-sec { padding: 110px 52px; background: var(--cream2); border-top: 1px solid var(--rule); }
.kap-form-wrap { max-width: 680px; margin: 0 auto; }
.kap-h2 { font-family: var(--serif); font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 300; line-height: 1.15; margin-bottom: 24px; text-align: center; }
.kap-h2 em { font-style: italic; color: var(--mid); }
.kap-lead { font-size: .82rem; line-height: 1.9; color: var(--mid); text-align: center; max-width: 480px; margin: 0 auto 52px; }
.kap-form { background: var(--white); padding: 48px 52px; border: 1px solid var(--rule); }
.kap-consent { display: flex; align-items: flex-start; gap: 12px; margin: 28px 0 8px; cursor: pointer; }
.kap-consent input { margin-top: 3px; flex-shrink: 0; accent-color: var(--ink); }
.kap-consent span { font-size: .72rem; line-height: 1.7; color: var(--mid); }
.kap-consent a { color: var(--ink); }

@media (max-width: 1024px) {
  .kap-steps-sec { padding: 70px 24px; }
  .kap-form-sec { padding: 70px 24px; }
  .kap-form { padding: 32px 24px; }
}

/* ── LEISTUNGEN ── */
#leistungen { padding: 100px 52px; background: var(--white); border-top: 1px solid var(--rule); }
.numbered-sec { padding: 100px 52px; background: var(--white); border-top: 1px solid var(--rule); }
.lst-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 70px; }
.lst-h2 { font-family: var(--serif); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 300; }
.lst-h2 em { font-style: italic; color: var(--mid); }
.lst-sub { font-size: .78rem; color: var(--mid); max-width: 260px; text-align: right; line-height: 1.8; }
.lst-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--rule); min-width: 0; }
.lst-item { padding: 48px 40px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); transition: background .3s; min-width: 0; overflow-wrap: break-word; }
.lst-item:hover { background: var(--cream); }
.lst-n { font-size: .58rem; letter-spacing: .2em; color: var(--gold); margin-bottom: 18px; }
.lst-t { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; color: var(--ink); margin-bottom: 12px; }
.lst-d { font-size: .76rem; line-height: 1.85; color: var(--mid); }

/* ── KONTAKT ── */
#kontakt { border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 1fr; }
.kon-l { padding: 90px 70px; background: var(--ink); display: flex; flex-direction: column; justify-content: center; }
.kon-l .sec-label { color: var(--gold); margin-bottom: 24px; }
.kon-h2 { font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 300; line-height: 1.1; color: var(--cream); margin-bottom: 20px; }
.kon-sub { font-size: .82rem; line-height: 1.9; color: rgba(247,243,237,.5); margin-bottom: 48px; max-width: 340px; }
.kon-details { display: flex; flex-direction: column; gap: 14px; }
.kon-row { display: flex; align-items: center; gap: 14px; font-size: .8rem; color: rgba(247,243,237,.65); }
.kon-row a { color: inherit; text-decoration: none; }
.kon-row a:hover { color: var(--cream); }
.kdot { width: 4px; height: 4px; background: var(--gold); border-radius: 50%; flex-shrink: 0; }
.kon-r { padding: 90px 70px; background: var(--cream2); display: flex; flex-direction: column; justify-content: center; }
.kon-r h3 { font-family: var(--serif); font-size: 1.6rem; font-weight: 300; color: var(--ink); margin-bottom: 36px; }
.fg { margin-bottom: 20px; }
.fg label { display: block; font-size: .55rem; letter-spacing: .2em; text-transform: uppercase; color: var(--mid); margin-bottom: 8px; }
.fg input, .fg select, .fg textarea {
  width: 100%; padding: 12px 0; background: transparent;
  border: none; border-bottom: 1px solid rgba(28,26,23,.15);
  color: var(--ink); font-family: var(--sans); font-size: .84rem; font-weight: 300;
  outline: none; -webkit-appearance: none; transition: border-color .3s;
}
.fg input::placeholder, .fg textarea::placeholder { color: rgba(107,101,96,.5); }
.fg input:focus, .fg select:focus, .fg textarea:focus { border-bottom-color: var(--ink); }
.fg select option { background: var(--cream); }
.fg textarea { resize: none; height: 72px; }
.fg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; min-width: 0; }
.fg { min-width: 0; }
.kon-btn {
  margin-top: 20px; width: 100%; padding: 14px;
  background: var(--ink); color: var(--cream);
  font-family: var(--sans); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase;
  font-weight: 300; border: none; cursor: pointer; transition: background .3s;
}
.kon-btn:hover { background: #2e2b26; }

/* ── FOOTER ── */
footer { background: var(--cream); border-top: 1px solid var(--rule); padding: 50px 52px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 50px; min-width: 0; }
footer > div, footer > .ft-col { min-width: 0; }
.ft-logo img { height: 36px; display: block; margin-bottom: 14px;  }
.ft-tag { font-size: .73rem; color: var(--mid); line-height: 1.8; max-width: 200px; }
.ft-col h5 { font-size: .55rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
.ft-col ul { list-style: none; }
.ft-col li { margin-bottom: 8px; }
.ft-col a { font-size: .76rem; color: var(--mid); text-decoration: none; transition: color .3s; }
.ft-col a:hover { color: var(--ink); }
.ft-bot { border-top: 1px solid var(--rule); padding: 18px 52px; display: flex; justify-content: space-between; background: var(--cream); }
.ft-bot p, .ft-bot a { font-size: .64rem; color: var(--mid); text-decoration: none; }
.ft-bot a:hover { color: var(--ink); }

/* ── REVEAL ── */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; }
.reveal.in { opacity: 1; transform: none; }
.d1 { transition-delay: .1s; }
.d2 { transition-delay: .22s; }
.d3 { transition-delay: .34s; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  nav { padding: 18px 24px; }
  nav.scrolled { padding: 14px 24px; }
  .nav-links, .nav-cta { display: none; }
  .hamburger { display: flex; }
  .hero-logo-center img { width: clamp(180px, 60vw, 320px); }
  #statement { grid-template-columns: 1fr; padding: 70px 24px; gap: 16px; }
  #ueber { grid-template-columns: 1fr; }
  .ue-photo { min-height: 340px; max-height: 400px; }
  .ue-content { padding: 60px 24px; }
  #offmarket { padding: 70px 24px; }
  .om-top { grid-template-columns: 1fr; gap: 20px; }
  .om-list li { grid-template-columns: 44px 1fr; }
  .om-d { display: none; }
  #investor { grid-template-columns: 1fr; }
  .inv-img { min-height: 260px; }
  .inv-content { padding: 60px 24px; }
  #leistungen { padding: 70px 24px; }
  .numbered-sec { padding: 70px 24px; }
  .lst-top { flex-direction: column; gap: 16px; }
  .lst-sub { text-align: left; }
  .lst-grid { grid-template-columns: 1fr; }
  .lst-item { border-right: none; }
  #kontakt { grid-template-columns: 1fr; }
  .kon-l, .kon-r { padding: 60px 24px; }
  .fg-row { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr 1fr; gap: 36px; padding: 44px 24px; }
  .ft-bot { padding: 16px 24px; flex-direction: column; gap: 6px; }
  .mob { padding: 60px 24px; }
  .mob-close { right: 24px; }
}


.subpage nav { background: rgba(247,243,237,.97); border-bottom-color: var(--rule); padding: 16px 52px; }
@media (max-width: 1024px) { .subpage nav { padding: 14px 24px; } }

/* ── SUBPAGE HERO (Off-Market / Kapitalanlage eigenständige Seiten) ── */
.pg-hero { padding: 170px 52px 70px; max-width: 760px; }
.pg-h1 { font-family: var(--serif); font-weight: 300; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.1; letter-spacing: -.02em; margin: 22px 0 28px; color: var(--ink); }
.pg-h1 em { font-style: italic; color: var(--mid); }
.pg-lead { font-size: .88rem; line-height: 2; color: var(--mid); max-width: 560px; }
.pg-cta-row { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: center; margin-top: 44px; }
.pg-btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px; background: var(--ink); color: var(--cream); font-family: var(--sans); font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; transition: background .3s; }
.pg-btn:hover { background: #2e2b26; }
.pg-btn.secondary { background: var(--ink); color: var(--cream); border: none; }
.pg-btn.secondary:hover { background: #2e2b26; }
.pg-note { font-size: .68rem; color: var(--mid); letter-spacing: .04em; }
@media (max-width: 1024px) { .pg-hero { padding: 130px 24px 50px; } }

/* ── LEGAL PAGES ── */
.legal-page nav{background:rgba(247,243,237,.97);border-bottom-color:var(--rule)}
.legal-wrap{
  padding:150px 52px 90px;
  display:grid;
  grid-template-columns:minmax(260px,360px) 1fr;
  gap:72px;
  background:linear-gradient(135deg,var(--cream),var(--cream2));
  min-height:70vh;
  min-width:0;
}
.legal-wrap aside{position:sticky;top:120px;align-self:start;min-width:0}
.legal-kicker{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:24px}
.legal-title{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,6vw,6rem);line-height:.95;letter-spacing:-.04em;margin-bottom:26px;color:var(--ink)}
.legal-title em{font-style:italic;color:var(--mid)}
.legal-note{font-size:.84rem;line-height:1.9;color:var(--mid);max-width:340px;border-left:1px solid rgba(176,144,112,.5);padding-left:22px}
.legal-content{display:grid;gap:18px;min-width:0}
.legal-card{background:rgba(255,255,255,.48);border:1px solid var(--rule);padding:34px 38px;box-shadow:0 24px 70px rgba(28,26,23,.035);min-width:0}
.legal-card h2{font-family:var(--serif);font-weight:300;font-size:2rem;line-height:1.15;margin-bottom:16px;color:var(--ink);overflow-wrap:break-word}
.legal-card p{font-size:.84rem;line-height:1.95;color:var(--mid);margin-bottom:12px;overflow-wrap:break-word}
.legal-card p:last-child{margin-bottom:0}
.legal-card strong{font-weight:400;color:var(--ink)}
.legal-card a{color:var(--ink);border-bottom:1px solid rgba(28,26,23,.25);text-decoration:none}
.legal-placeholder{color:#9b5d41;font-weight:400}
@media(max-width:1024px){
  .legal-wrap{grid-template-columns:1fr;padding:120px 24px 65px;gap:34px}
  .legal-wrap aside{position:relative;top:auto}
  .legal-card{padding:26px 22px}
}

/* ── GRÖSSERE SCHRIFT FÜR DESKTOP ── */
@media (min-width: 1025px) {
  body { font-size: 1.05rem; }
  .nav-links a, .nav-cta { font-size: .74rem; letter-spacing: .14em; }
  .st-label, .sec-label { font-size: .68rem; }
  .st-text { font-size: clamp(2rem, 3.4vw, 3rem); }
  .ue-body { font-size: .96rem; max-width: 520px; }
  .ue-tag { font-size: .62rem; }
  .om-lead, .inv-body, .kap-lead, .pg-lead { font-size: 1rem; }
  .om-t { font-size: 1.35rem; }
  .om-d { font-size: .88rem; }
  .lst-sub { font-size: .88rem; max-width: 300px; }
  .lst-t { font-size: 1.3rem; }
  .lst-d { font-size: .86rem; }
  .inv-pt { font-size: .9rem; }
  .kon-sub { font-size: .92rem; max-width: 380px; }
  .kon-row { font-size: .9rem; }
  .fg label { font-size: .6rem; }
  .fg input, .fg select, .fg textarea { font-size: .94rem; }
  .kon-btn, .lnk, .pg-btn { font-size: .7rem; }
  .ft-tag, .ft-col a { font-size: .82rem; }
  .ft-bot p, .ft-bot a { font-size: .7rem; }
  .legal-note, .legal-card p { font-size: .92rem; }
}
