/* =========================================================
   Rudeuco-Rudolz – Impressum & Datenschutz
   Klassen: rr-legal-hero, rr-legal-layout, rr-legal-content,
   rr-legal-toc, rr-legal-section
   ========================================================= */

.rr-legal-hero {
  background: var(--rr-gradient-soft);
  border-bottom: 1px solid var(--rr-border);
}
.rr-legal-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rr-content-gap);
  align-items: start;
}
.rr-legal-content {
  background: var(--rr-white);
  border: 1px solid var(--rr-border);
  border-radius: var(--rr-radius-lg);
  box-shadow: var(--rr-shadow-soft);
}
.rr-legal-content h2 { font-size: clamp(1.45rem, 3vw, 2.25rem); margin-top: 1.4em; }
.rr-legal-content h3 { font-size: clamp(1.18rem, 2vw, 1.55rem); margin-top: 1.2em; }
.rr-legal-content p, .rr-legal-content li { color: var(--rr-text-soft); font-size: clamp(.96rem, 1.1vw, 1.05rem); }
.rr-legal-content a { word-break: break-word; font-weight: 750; }
.rr-legal-toc {
  position: sticky;
  top: 110px;
  background: var(--rr-white);
  border: 1px solid var(--rr-border);
  border-radius: var(--rr-radius-lg);
  box-shadow: 0 12px 34px rgba(6,28,43,.06);
}
.rr-legal-toc ul, .rr-legal-toc .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.rr-legal-toc a { color: var(--rr-text-soft); text-decoration: none; font-weight: 750; }
.rr-legal-toc a:hover { color: var(--rr-primary); }
.rr-legal-section { scroll-margin-top: 125px; }

@media (min-width: 1000px) {
  .rr-legal-layout { grid-template-columns: 280px minmax(0, 1fr); }
}
@media (max-width: 999px) {
  .rr-legal-toc { position: relative; top: auto; }
}
/* =========================================================
   RUDEUCO RUDOLZ – IMPRESSUM & DATENSCHUTZ
========================================================= */

.rr-legal-hero,
.rr-legal-main {
  position: relative;
  overflow: hidden;
}

.rr-legal-hero-inner,
.rr-legal-main-inner {
  width: min(100%, var(--rr-container, 1200px));
  margin-inline: auto;
}

/* Hero */
.rr-legal-hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 22px;
  max-width: 920px;
}

.rr-legal-title .elementor-heading-title,
.rr-legal-title {
  max-width: 900px;
}

.rr-legal-lead {
  max-width: 760px;
}

/* Main Layout */
.rr-legal-main-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: flex-start;
}

/* Content */
.rr-legal-content {
  min-width: 0;
}

.rr-legal-card {
  position: relative;
  overflow: hidden;

  border-radius: var(--rr-radius-xl, 34px);
  border: 1px solid rgba(9, 42, 62, 0.10);

  background:
    radial-gradient(circle at 12% 0%, rgba(242, 140, 40, 0.075), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,0.96), rgba(246,249,251,0.86));

  box-shadow:
    0 18px 55px rgba(6, 28, 43, 0.08),
    inset 0 1px 0 rgba(255,255,255,0.9);
}

/* Padding kannst du auch in Elementor setzen */
.rr-legal-card {
  padding: clamp(1.6rem, 3vw, 3rem);
}

/* Legal Text Styling */
.rr-legal-card h2,
.rr-legal-card .elementor-heading-title {
  color: var(--rr-primary, #0E4F7C);
}

.rr-legal-card h2 {
  margin: 2.2rem 0 0.85rem;
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  line-height: 1.18;
  letter-spacing: -0.035em;
  font-weight: 850;
}

.rr-legal-card h2:first-child {
  margin-top: 0;
}

.rr-legal-card h3 {
  margin: 1.45rem 0 0.55rem;
  color: var(--rr-text, #132F43);
  font-size: clamp(1.08rem, 1.4vw, 1.32rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
  font-weight: 800;
}

.rr-legal-card p,
.rr-legal-card li {
  color: var(--rr-text-soft, #4F6675);
  font-size: var(--rr-text-size, 1rem);
  line-height: 1.75;
}

.rr-legal-card p {
  margin: 0 0 1rem;
}

.rr-legal-card ul,
.rr-legal-card ol {
  margin: 0 0 1.2rem 1.2rem;
  padding: 0;
}

.rr-legal-card a {
  color: var(--rr-primary, #0E4F7C);
  font-weight: 750;
  text-decoration: none;
}

.rr-legal-card a:hover {
  color: var(--rr-accent, #F28C28);
}

/* Sidebar */
.rr-legal-sidebar {
  position: sticky;
  top: 110px;
}

.rr-legal-side-card {
  position: relative;
  overflow: hidden;

  border-radius: var(--rr-radius-xl, 34px);
  border: 1px solid rgba(9, 42, 62, 0.10);

  background:
    radial-gradient(circle at 88% 14%, rgba(24, 161, 199, 0.11), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,0.96), rgba(246,249,251,0.86));

  box-shadow:
    0 18px 55px rgba(6, 28, 43, 0.08),
    inset 0 1px 0 rgba(255,255,255,0.9);

  padding: clamp(1.35rem, 2.4vw, 2rem);
}

.rr-legal-side-card h3,
.rr-legal-side-card .elementor-heading-title {
  margin: 0 0 0.85rem;
  color: var(--rr-primary, #0E4F7C);
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  line-height: 1.15;
  letter-spacing: -0.03em;
  font-weight: 850;
}

.rr-legal-side-card p {
  color: var(--rr-text-soft, #4F6675);
  font-size: var(--rr-small-size, 0.95rem);
  line-height: 1.65;
}

/* Sidebar Icon List */
.rr-legal-contact-list .elementor-icon-list-items {
  display: grid;
  gap: 12px;
  margin: 1.2rem 0 0;
  padding: 0;
}

.rr-legal-contact-list .elementor-icon-list-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  margin: 0 !important;
}

.rr-legal-contact-list .elementor-icon-list-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;

  width: 32px;
  height: 32px;
  min-width: 32px;

  border-radius: 999px;
  background: rgba(14, 79, 124, 0.08);
  color: var(--rr-primary, #0E4F7C) !important;
}

.rr-legal-contact-list .elementor-icon-list-icon svg,
.rr-legal-contact-list .elementor-icon-list-icon i {
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: currentColor !important;
  fill: currentColor !important;
  transform: translateX(2px);
}

.rr-legal-contact-list .elementor-icon-list-text,
.rr-legal-contact-list .elementor-icon-list-text a {
  color: var(--rr-text, #132F43) !important;
  text-decoration: none !important;
  font-weight: 700;
  line-height: 1.35;
}

/* CTA unten */
.rr-legal-bottom-cta {
  margin-top: clamp(1.5rem, 3vw, 2.2rem);

  border-radius: var(--rr-radius-lg, 24px);
  border: 1px solid rgba(14, 79, 124, 0.12);
  background: rgba(14, 79, 124, 0.055);

  padding: clamp(1.25rem, 2.5vw, 1.8rem);
}

.rr-legal-bottom-cta p {
  margin: 0;
  color: var(--rr-text-soft, #4F6675);
}

/* Responsive */
@media (max-width: 1024px) {
  .rr-legal-main-inner {
    grid-template-columns: 1fr;
  }

  .rr-legal-sidebar {
    position: relative;
    top: auto;
  }
}

@media (max-width: 767px) {
  .rr-legal-card,
  .rr-legal-side-card {
    border-radius: 24px;
  }

  .rr-legal-card {
    padding: 1.35rem;
  }

  .rr-legal-card h2 {
    margin-top: 1.8rem;
  }
}