/*
 * VON RUEDEN Arbeitsrecht Designsystem 1.2.4 — Foundation
 * Visually derived from the public Sexualstrafrecht hub. The rules are
 * deliberately scoped to the v1.2 body marker and never rewrite content.
 */

body.vrh-ar-style-v120 {
  --vrh-ar-night: #061b2c;
  --vrh-ar-night-soft: #0c2c3e;
  --vrh-ar-navy: #003764;
  --vrh-ar-navy-hover: #12528f;
  --vrh-ar-ink: #10232e;
  --vrh-ar-body: #354651;
  --vrh-ar-muted: #63717a;
  --vrh-ar-cream: #faf8f3;
  --vrh-ar-paper: #ffffff;
  --vrh-ar-light: #f3efe7;
  --vrh-ar-olive: #a9b86c;
  --vrh-ar-olive-soft: #e9edda;
  --vrh-ar-olive-text: #596523;
  --vrh-ar-lime: #b6db00;
  --vrh-ar-lime-hover: #d0fa00;
  --vrh-ar-line: rgba(16, 35, 46, 0.18);
  --vrh-ar-line-strong: rgba(16, 35, 46, 0.34);
  --vrh-ar-shadow-sm: 0 8px 24px rgba(6, 27, 44, 0.08);
  --vrh-ar-shadow-md: 0 18px 44px rgba(6, 27, 44, 0.14);
  --vrh-ar-font-sans: "Montserrat", Arial, Helvetica, sans-serif;
  --vrh-ar-font-display: Georgia, "Times New Roman", serif;
  --vrh-ar-container: 74rem;
  --vrh-ar-reading: 52rem;
  --vrh-ar-section-space: clamp(3.5rem, 7vw, 7rem);
  background: var(--vrh-ar-cream);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface,
body.vrh-ar-style-v120 .vrh-ar-design-surface *,
body.vrh-ar-style-v120 .vrh-ar-design-surface *::before,
body.vrh-ar-style-v120 .vrh-ar-design-surface *::after {
  box-sizing: border-box;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: visible;
  background: var(--vrh-ar-cream);
  color: var(--vrh-ar-body);
  font-family: var(--vrh-ar-font-sans);
  font-size: 1rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface :where(h1, h2, h3, h4, p, ul, ol, blockquote, figure) {
  margin-top: 0;
}

body.vrh-ar-style-v120 :where(.vrh-ar-design-surface, main) :where(h1, h2, h3, h4) {
  color: var(--vrh-ar-ink);
  font-family: var(--vrh-ar-font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
  hyphens: auto;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

body.vrh-ar-style-v120 :where(.vrh-ar-design-surface, main) h1 {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
  font-size: clamp(2.55rem, 7vw, 5.25rem);
  line-height: 1;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface h2 {
  margin-top: clamp(2.8rem, 6vw, 5.5rem);
  margin-bottom: 1.25rem;
  font-size: clamp(2.1rem, 5.5vw, 3.65rem);
  line-height: 1.06;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface h3 {
  margin-top: clamp(2rem, 4vw, 3.25rem);
  margin-bottom: 0.8rem;
  font-size: clamp(1.45rem, 3.5vw, 2rem);
  line-height: 1.18;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface h4 {
  margin-top: 1.75rem;
  margin-bottom: 0.65rem;
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  line-height: 1.25;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface :where(p, li) {
  color: inherit;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface p {
  margin-bottom: 1.2rem;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface :where(ul, ol) {
  padding-left: 1.35rem;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface li + li {
  margin-top: 0.55rem;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface a {
  color: var(--vrh-ar-navy);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface a:hover {
  color: var(--vrh-ar-olive-text);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--vrh-ar-paper);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--vrh-ar-navy);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface :where(img, video, iframe) {
  max-width: 100%;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface img {
  height: auto;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface figure {
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface figcaption {
  margin-top: 0.65rem;
  color: var(--vrh-ar-muted);
  font-size: 0.8rem;
  line-height: 1.5;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface hr,
body.vrh-ar-style-v120 .vrh-ar-design-surface .wp-block-separator {
  width: 100%;
  height: 1px;
  margin-block: clamp(2.5rem, 6vw, 5rem);
  border: 0;
  background: var(--vrh-ar-line);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface ::selection {
  background: var(--vrh-ar-lime);
  color: var(--vrh-ar-night);
}

/* Keep full-width Elementor layouts intact while applying the shared palette. */
body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor {
  width: 100%;
  background: var(--vrh-ar-cream);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface .elementor-widget-text-editor {
  color: var(--vrh-ar-body);
  font-family: var(--vrh-ar-font-sans);
  line-height: 1.7;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface .elementor-widget-heading :where(h1, h2, h3, h4) {
  font-family: var(--vrh-ar-font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
}

/* Elementor adapter: retain component markup while applying the reference rhythm. */
body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor > .e-con.e-parent {
  border-bottom: 1px solid var(--vrh-ar-line);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor > .e-con.e-parent:not([data-settings*="background_background"]) {
  background-color: var(--vrh-ar-cream);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor > .e-con.e-parent:first-child {
  background-color: var(--vrh-ar-night);
  color: var(--vrh-ar-light);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor > .e-con.e-parent:first-child :where(
  h1,
  h2,
  h3,
  h4,
  p,
  li,
  a:not(.elementor-button),
  small,
  strong,
  .elementor-heading-title,
  .elementor-widget-text-editor
) {
  color: var(--vrh-ar-light) !important;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface > .elementor > .e-con.e-parent:first-child :where(
  .elementor-button,
  .elementor-button-text,
  .elementor-button-icon
) {
  color: var(--vrh-ar-night) !important;
}

/* Classic Arbeitsrecht templates render their hero/sidebar outside the_content. */
body.vrh-ar-style-v120 :where(.ar-subsite-header, .ar-main-header) {
  position: relative;
  isolation: isolate;
  min-height: clamp(15rem, 34vw, 25rem);
  padding-block: clamp(4.5rem, 9vw, 8rem);
  background-color: var(--vrh-ar-night) !important;
  color: var(--vrh-ar-light);
}

body.vrh-ar-style-v120 :where(.ar-subsite-header, .ar-main-header)::before {
  z-index: -1;
  opacity: 0.12;
}

body.vrh-ar-style-v120 :where(.ar-subsite-header, .ar-main-header) :where(h1, h2, p, a) {
  color: inherit;
}

body.vrh-ar-style-v120 :where(.ar-subsite-header, .ar-main-header) :where(h1, h2) {
  font-family: var(--vrh-ar-font-display);
  font-weight: 400;
  letter-spacing: -0.025em;
}

body.vrh-ar-style-v120 :where(.ar-sidebar, .ar-sidebar-bottom) {
  border: 1px solid var(--vrh-ar-line);
  border-radius: 0;
  background: var(--vrh-ar-paper);
  box-shadow: var(--vrh-ar-shadow-md);
  color: var(--vrh-ar-body);
}

body.vrh-ar-style-v120 :where(.ar-sidebar, .ar-sidebar-bottom) :where(h2, h3, h4) {
  color: var(--vrh-ar-ink);
  font-family: var(--vrh-ar-font-display);
}

body.vrh-ar-style-v120 :where(.ar-sidebar, .ar-sidebar-bottom) :where(ul.ar-main-side-menue, ul.ar-sub-side-menue) a {
  border-radius: 0;
  color: var(--vrh-ar-ink);
  font-family: var(--vrh-ar-font-sans);
}

body.vrh-ar-style-v120 :where(.ar-sidebar, .ar-sidebar-bottom) :where(ul.ar-main-side-menue, ul.ar-sub-side-menue) a:hover,
body.vrh-ar-style-v120 :where(.ar-sidebar, .ar-sidebar-bottom) :where(ul.ar-main-side-menue, ul.ar-sub-side-menue) .current-menu-item > a {
  background: var(--vrh-ar-lime);
  color: var(--vrh-ar-night);
}

/* Journal adapter: article chrome lives outside the_content wrapper. */
body.vrh-ar-style-v120 .vrj.vrj-single {
  background: var(--vrh-ar-cream);
  color: var(--vrh-ar-body);
  font-family: var(--vrh-ar-font-sans);
}

body.vrh-ar-style-v120 .vrj-article-head {
  width: min(calc(100% - 2rem), var(--vrh-ar-container));
  margin-inline: auto;
  padding: clamp(2rem, 6vw, 5rem);
  border-left: 0.45rem solid var(--vrh-ar-olive);
  background: var(--vrh-ar-night);
  color: var(--vrh-ar-light);
}

body.vrh-ar-style-v120 .vrj-article-head :where(h1, p, span, time, a) {
  color: inherit;
}

body.vrh-ar-style-v120 .vrj-article-head h1 {
  max-width: 18ch;
  font-family: var(--vrh-ar-font-display);
  font-size: clamp(2.45rem, 7vw, 5.15rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.025em;
}

body.vrh-ar-style-v120 :where(.vrj-article-meta, .vrj-breadcrumbs, .vrj-author-line) {
  font-family: var(--vrh-ar-font-sans);
  letter-spacing: 0.035em;
}

body.vrh-ar-style-v120 .vrj-article-image img {
  border-radius: 0;
}

body.vrh-ar-style-v120 :where(.vrj-toc, .vrj-mobile-toc, .vrj-author-card, .vrj-related) {
  border: 1px solid var(--vrh-ar-line);
  border-radius: 0;
  background: var(--vrh-ar-paper);
  box-shadow: var(--vrh-ar-shadow-sm);
}

body.vrh-ar-style-v120 .vrj-consultation {
  border: 1px solid var(--vrh-ar-night);
  border-radius: 0;
  background: var(--vrh-ar-night);
  color: var(--vrh-ar-light);
  box-shadow: var(--vrh-ar-shadow-md);
}

body.vrh-ar-style-v120 .vrj-consultation :where(h2, p) {
  color: inherit;
}

body.vrh-ar-style-v120 .vrj-consultation > a {
  border-radius: 0;
  background: var(--vrh-ar-lime);
  color: var(--vrh-ar-night) !important;
}

body.vrh-ar-style-v120 .vrj-consultation > a:is(:hover, :focus-visible) {
  background: var(--vrh-ar-lime-hover);
  color: var(--vrh-ar-night) !important;
}

body.vrh-ar-style-v120 :where(.vrj-eyebrow, .vrj-number) {
  color: var(--vrh-ar-olive-text);
  font-family: var(--vrh-ar-font-sans);
}

body.vrh-ar-style-v120 .vrj-consultation :where(.vrj-eyebrow, .vrj-number) {
  color: var(--vrh-ar-lime);
}

/* Public Arbeitnehmer template (anonymous DOM, independent of its editor DOM). */
body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub.vr-arb-page {
  background: var(--vrh-ar-cream);
  color: var(--vrh-ar-ink);
  font-family: var(--vrh-ar-font-sans);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub .vr-hero {
  background: var(--vrh-ar-night);
  color: var(--vrh-ar-light);
}

body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub .vr-hero :where(h1, h2, h3, p, strong) {
  color: inherit;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub :where(.vr-button--primary, .vr-actions > a:first-child) {
  border-color: var(--vrh-ar-lime);
  border-radius: 0;
  background: var(--vrh-ar-lime);
  color: var(--vrh-ar-night) !important;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub :where(.vr-button--primary, .vr-actions > a:first-child):is(:hover, :focus-visible) {
  background: var(--vrh-ar-lime-hover);
  color: var(--vrh-ar-night) !important;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface #vr-arb-hub :where(.vr-emergency, .vr-topic-nav, .vr-card) {
  border-radius: 0;
}

/* Gutenberg and classic article content retain their DOM and gain a readable measure. */
body.vrh-ar-style-v120 .vrh-ar-design-surface > :where(
  p,
  h2,
  h3,
  h4,
  ul,
  ol,
  blockquote,
  figure,
  table,
  .wp-block-table,
  .wp-block-file,
  .wp-block-columns,
  .wp-block-group,
  .info-box,
  .unterbrecher-shadow,
  .vrh-related-links,
  .vrh-freshness-note,
  .vrh-ratgeber-index
) {
  width: min(calc(100% - 2rem), var(--vrh-ar-container));
  margin-inline: auto;
}

body.vrh-ar-style-v120 .vrh-ar-design-surface > :where(p, ul, ol, blockquote) {
  max-width: var(--vrh-ar-reading);
}

body.vrh-ar-style-v120 main > h1.vrh-arbeitsrecht-title {
  width: min(calc(100% - 2rem), var(--vrh-ar-container));
  margin: 0 auto;
  padding: clamp(2.25rem, 7vw, 5.5rem) clamp(1.25rem, 4vw, 3.25rem);
  border-left: 0.45rem solid var(--vrh-ar-olive);
  background: var(--vrh-ar-night);
  color: var(--vrh-ar-light);
}

body.vrh-ar-style-v120 :where(.breadcrumb, .breadcrumbs, .yoast-breadcrumb, nav[aria-label*="Breadcrumb" i]) {
  color: var(--vrh-ar-muted);
  font-family: var(--vrh-ar-font-sans);
  font-size: 0.8rem;
}

body.vrh-ar-style-v120 :where(.breadcrumb, .breadcrumbs, .yoast-breadcrumb, nav[aria-label*="Breadcrumb" i]) a {
  color: var(--vrh-ar-navy);
}

@media (min-width: 36rem) {
  body.vrh-ar-style-v120 .vrh-ar-design-surface > :where(
    p,
    h2,
    h3,
    h4,
    ul,
    ol,
    blockquote,
    figure,
    table,
    .wp-block-table,
    .wp-block-file,
    .wp-block-columns,
    .wp-block-group,
    .info-box,
    .unterbrecher-shadow,
    .vrh-related-links,
    .vrh-freshness-note,
    .vrh-ratgeber-index
  ),
  body.vrh-ar-style-v120 main > h1.vrh-arbeitsrecht-title {
    width: min(calc(100% - 3rem), var(--vrh-ar-container));
  }
}

@media (max-width: 47.99rem) {
  body.vrh-ar-style-v120 .ar-sidebar {
    top: 0;
  }

  body.vrh-ar-style-v120 .vrj-article-head {
    width: min(calc(100% - 1rem), var(--vrh-ar-container));
    padding: 2rem 1.25rem;
  }
}

@media (min-width: 62rem) {
  body.vrh-ar-style-v120 .vrh-ar-design-surface > :where(
    p,
    h2,
    h3,
    h4,
    ul,
    ol,
    blockquote,
    figure,
    table,
    .wp-block-table,
    .wp-block-file,
    .wp-block-columns,
    .wp-block-group,
    .info-box,
    .unterbrecher-shadow,
    .vrh-related-links,
    .vrh-freshness-note,
    .vrh-ratgeber-index
  ),
  body.vrh-ar-style-v120 main > h1.vrh-arbeitsrecht-title {
    width: min(calc(100% - 6rem), var(--vrh-ar-container));
  }
}

@media (prefers-contrast: more) {
  body.vrh-ar-style-v120 {
    --vrh-ar-line: rgba(16, 35, 46, 0.46);
    --vrh-ar-line-strong: rgba(16, 35, 46, 0.68);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.vrh-ar-style-v120 .vrh-ar-design-surface *,
  body.vrh-ar-style-v120 .vrh-ar-design-surface *::before,
  body.vrh-ar-style-v120 .vrh-ar-design-surface *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
