/* Shared presentation for the existing reports, case studies and legal pages. */
.x-document,
.x-wizard,
.x-legal {
  font-family: var(--x-font-ui);
  font-size: var(--x-fs-body);
  line-height: var(--x-lh-prose);
}

.x-document main,
.x-document .detail-val,
.x-wizard .container {
  min-width: 0;
}

.x-document .layout {
  grid-template-columns: 230px minmax(0, 1fr);
}

.x-document .hero h1 {
  font-size: var(--x-fs-h1);
  line-height: var(--x-lh-head);
}

.x-document main > section > h2 {
  font-size: var(--x-fs-h2);
  line-height: var(--x-lh-head);
}

.x-document main > section > h3 {
  font-size: var(--x-fs-h3);
}

.x-document main > section > p,
.x-document main > section > ul.prose > li {
  font-size: var(--x-fs-body);
  line-height: var(--x-lh-prose);
}

.x-document button,
.x-wizard button,
.x-wizard input,
.x-wizard select,
.x-wizard textarea {
  font-family: var(--x-font-ui);
  font-size: var(--x-fs-ui);
}

.x-wizard input[type="text"],
.x-wizard input[type="email"],
.x-wizard select,
.x-wizard textarea {
  font-size: var(--x-fs-body);
  border-color: var(--x-line-strong);
}

.x-wizard input::placeholder,
.x-wizard textarea::placeholder {
  color: var(--x-ink-soft);
  opacity: 1;
}

.x-wizard input[type="checkbox"],
.x-wizard input[type="range"] {
  accent-color: var(--c-accent);
}

.x-document .copy-btn {
  border-radius: var(--radius-sm);
}

.x-document .site-footer,
.x-wizard .site-footer {
  padding: 24px;
  font-size: var(--x-fs-ui);
  line-height: var(--x-lh-prose);
  color: var(--c-text2);
  border-top: .5px solid var(--c-border);
}

.x-document .site-footer,
.x-wizard .site-footer {
  margin-top: 40px;
  text-align: center;
}

.x-document .site-footer a,
.x-wizard .site-footer a {
  color: var(--x-link);
  text-underline-offset: 3px;
}

.x-legal h1,
.x-legal h2,
.x-legal h3 {
  line-height: var(--x-lh-head);
}

@media (max-width: 720px) {
  .x-document .layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .x-wizard .header {
    padding: 1rem 1.25rem;
    gap: 1rem;
    flex-wrap: wrap;
  }
  .x-wizard .container {
    padding: 1.5rem 1rem;
  }
  .x-wizard .step {
    padding: 1.25rem;
  }
  .x-wizard .btn-group {
    gap: .75rem;
    flex-wrap: wrap;
  }
}

@media (max-width: 600px) {
  .x-document .detail-row {
    flex-direction: column;
    gap: 4px;
  }
  .x-document .hero h1 {
    font-size: 28px;
    overflow-wrap: anywhere;
  }
}

@media print {
  .x-document,
  .x-wizard,
  .x-legal {
    background: #fff !important;
    color: #111 !important;
    font-size: 11pt;
  }
  .x-document *,
  .x-wizard *,
  .x-legal * {
    color: #111 !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border-color: #bbb !important;
  }
  .x-document .site-header,
  .x-document .sidebar,
  .x-document .skip-link,
  .x-document .copy-btn,
  .x-document .site-footer,
  .x-wizard .no-print,
  .x-wizard .site-footer {
    display: none !important;
  }
  .x-document .layout {
    display: block;
  }
  .x-document main,
  .x-wizard .container {
    max-width: none;
    margin: 0;
    padding: 0;
  }
  .x-document h2 {
    page-break-before: auto;
  }
  .x-document h1,
  .x-document h2,
  .x-document h3,
  .x-wizard h2,
  .x-legal h1,
  .x-legal h2,
  .x-legal h3 {
    break-after: avoid;
  }
  .x-document pre,
  .x-document .tbl-wrap,
  .x-wizard .tbl-wrap {
    max-height: none !important;
    overflow: visible !important;
  }
  .x-document table,
  .x-wizard table {
    table-layout: fixed;
    width: 100%;
    overflow-wrap: anywhere;
    font-size: 9pt;
  }
  .x-document img {
    max-width: 100%;
    max-height: 240mm;
    object-fit: contain;
  }
}

.x-document .footer-disclaimer { opacity:1; color:var(--x-ink-muted); font-size:var(--x-fs-meta); }

/* Gemeinsamer Rückweg und kontextbezogener Abschluss der Ressourcen. */
.resource-back { display:inline-flex; align-items:center; min-height:44px; color:var(--x-cyan-doc); font-size:var(--x-fs-ui); text-underline-offset:4px; }
.resource-contact { margin:40px 0 0; padding:28px; border:1px solid var(--x-line); border-left:3px solid var(--x-blue-light); border-radius:10px; background:var(--x-bg-sunken); color:var(--x-ink); }
.resource-contact h2 { margin:0 0 14px; color:var(--x-ink-bright); font-family:var(--x-font-ui); font-size:var(--x-fs-h2); line-height:var(--x-lh-head); }
.resource-contact p { max-width:760px; margin:0 0 18px; font-size:var(--x-fs-body); line-height:var(--x-lh-prose); }
.resource-contact-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; }
.resource-contact-primary { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 16px; margin-right:16px; border:1px solid var(--x-cyan-doc); border-radius:6px; background:var(--x-cyan-doc); color:var(--x-bg-terminal); font-size:var(--x-fs-body-sm); font-weight:600; text-decoration:none; }
.resource-contact-primary:hover { background:var(--x-cyan-doc-hover); border-color:var(--x-cyan-doc-hover); color:var(--x-bg-terminal); }
.resource-contact-secondary { display:inline-flex; align-items:center; min-height:44px; color:var(--x-cyan-doc); font-size:var(--x-fs-body-sm); text-underline-offset:4px; }
@media(max-width:600px) { .resource-contact { padding:22px; } }
@media print { .resource-contact,.resource-back { display:none !important; } }
