/* ============================================================
   VEH – Druckausgabe
   Wird nur beim Drucken und in der Druckvorschau angewandt.
   ============================================================ */

@media print {

  /* ---------- Grundlage ------------------------------------ */

  /* Der Bildschirmentwurf lebt von dunklen Flächen mit weißer
     Schrift. Browser drucken Hintergründe standardmäßig nicht –
     übrig bliebe weiß auf weiß. Statt den Druck von der Option
     "Hintergrundgrafiken" abhängig zu machen, wird für Papier
     durchgängig auf dunkle Schrift und weißen Grund gestellt. */

  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
  }

  html, body {
    background: #fff !important;
    font-size: 11pt;
    line-height: 1.45;
  }

  @page {
    margin: 18mm 16mm;
  }

  /* ---------- Einblendungen aufheben ------------------------ */

  /* Entscheidend: Beim Drucken wird nicht gescrollt, der
     IntersectionObserver setzt also für alles unterhalb des
     sichtbaren Bereichs nie die Klasse "visible". Diese
     Abschnitte stünden weiter auf opacity:0 und kämen als leere
     Fläche aufs Papier. Hier wird das bedingungslos aufgehoben –
     auch die html.js-Variante. */

  .reveal,
  html.js .reveal,
  html.js .reveal:not(.visible) {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  /* ---------- Was auf Papier nichts verloren hat ------------ */

  .nav,
  .nav-mobile,
  .nav-menu-btn,
  .hero-scroll,
  .skip-link,
  .cta-banner,
  .map-section,
  .contact-form,
  .btn,
  .job-arrow,
  #vorschau-hinweis {
    display: none !important;
  }

  /* Der Abstand für die feste Navigation entfällt mit ihr. */
  .page-offset,
  main {
    padding-top: 0 !important;
  }

  /* ---------- Kopf der ersten Seite ------------------------- */

  /* Ohne Navigation fehlt der Absender. Firmenname und Anschrift
     werden deshalb einmalig vorangestellt. */
  main::before {
    content: "VEH Antriebstechnik — Wilhelm Veh GmbH & Co. KG · Agendorfer Straße 9 · 94327 Bogen";
    display: block;
    font-family: 'Titillium Web', sans-serif;
    font-size: 8.5pt;
    letter-spacing: 0.04em;
    padding-bottom: 6pt;
    margin-bottom: 14pt;
    border-bottom: 1.5pt solid #20325c;
  }

  /* ---------- Hero ----------------------------------------- */

  .hero {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 0 16pt !important;
    display: block !important;
  }

  .hero-bg-pattern,
  .hero-scroll-line,
  .hero-actions {
    display: none !important;
  }

  .hero-content {
    position: static !important;
    max-width: 100% !important;
  }

  h1 {
    font-size: 22pt !important;
    line-height: 1.15 !important;
  }

  .hero-text {
    font-size: 11pt !important;
  }

  /* Die farbig hervorgehobenen Wortteile im Titel dürfen auf
     Papier nicht verschwinden. */
  h1 span,
  h2 span {
    color: #000 !important;
  }

  /* Rahmen um die Auszeichnung "Antrieb verbindet" erhalten,
     sonst steht sie beziehungslos im Raum. */
  .hero-claim,
  .section-label {
    display: inline-block !important;
    border: 0.8pt solid #666 !important;
    padding: 2pt 7pt !important;
    font-size: 8pt !important;
    letter-spacing: 0.12em !important;
    margin-bottom: 8pt !important;
  }

  /* ---------- Abschnitte ----------------------------------- */

  section {
    padding: 14pt 0 !important;
    page-break-inside: auto;
  }

  .container {
    max-width: 100% !important;
    padding: 0 !important;
  }

  h2 {
    font-size: 15pt !important;
    margin-bottom: 8pt !important;
    page-break-after: avoid;
  }

  h3 {
    font-size: 12pt !important;
    page-break-after: avoid;
  }

  p, li {
    orphans: 3;   /* keine einzelne Zeile am Seitenende  */
    widows: 3;    /* keine einzelne Zeile am Seitenanfang */
  }

  /* ---------- Raster auf Papier ---------------------------- */

  /* Mehrspaltige Raster brechen im Druck unschön um. Zwei
     Spalten sind auf A4 die verlässliche Obergrenze. */

  .stats-bar .container,
  .services-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10pt !important;
  }

  .about-grid,
  .career-grid,
  .contact-grid,
  .footer-grid {
    display: block !important;
  }

  .about-image {
    display: none !important;
  }

  .service-card,
  .stat-item,
  .stellen-karte,
  .job-item {
    border: 0.8pt solid #bbb !important;
    padding: 8pt 10pt !important;
    page-break-inside: avoid;
  }

  .service-icon {
    display: none !important;
  }

  /* ---------- Verweise sichtbar machen --------------------- */

  /* Auf Papier ist ein Link ohne Adresse wertlos. */
  main a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 8.5pt;
    color: #555 !important;
    word-break: break-all;
  }

  main a[href^="mailto:"]::after,
  main a[href^="tel:"]::after {
    content: "";   /* Adresse steht bereits im Text */
  }

  /* Interne Sprungmarken laufen ins Leere. */
  main a[href^="#"]::after,
  main a[href^="/"]::after {
    content: "";
  }

  a {
    text-decoration: none !important;
  }

  /* ---------- Kontaktangaben hervorheben ------------------- */

  .contact-details {
    border: 1pt solid #20325c !important;
    padding: 10pt 12pt !important;
    page-break-inside: avoid;
  }

  .contact-detail {
    margin-bottom: 5pt !important;
  }

  .contact-detail-icon {
    display: none !important;
  }

  .contact-detail-label {
    font-size: 8pt !important;
    letter-spacing: 0.08em !important;
  }

  /* ---------- Stellenanzeigen ------------------------------ */

  /* Eine Anzeige wird oft einzeln ausgedruckt und weitergereicht.
     Sie soll geschlossen auf möglichst wenig Seiten passen. */

  .job-detail-grid {
    display: block !important;
  }

  .job-aside {
    border: 1pt solid #20325c !important;
    padding: 10pt 12pt !important;
    margin-bottom: 14pt !important;
    position: static !important;
    page-break-inside: avoid;
  }

  .job-body ul {
    page-break-inside: auto;
  }

  .job-body li {
    page-break-inside: avoid;
  }

  .job-body li::before {
    background: #000 !important;
  }

  .breadcrumb {
    display: none !important;
  }

  .page-head {
    padding: 0 0 12pt !important;
    border-bottom: 0.8pt solid #ccc !important;
    margin-bottom: 14pt !important;
  }

  /* ---------- Rechtstexte ---------------------------------- */

  /* Impressum und Datenschutzerklärung werden zu Prüfzwecken
     ausgedruckt – hier zählt Lesbarkeit, nicht Kompaktheit. */

  .legal {
    padding: 0 !important;
  }

  .legal-inner {
    max-width: 100% !important;
  }

  .legal h2 {
    margin-top: 14pt !important;
    page-break-after: avoid;
  }

  /* Die offenen Stellen im Impressum müssen auch auf Papier
     als solche erkennbar bleiben. */
  .todo {
    border: 0.8pt dashed #999 !important;
    padding: 1pt 4pt !important;
  }

  .todo::after {
    content: " [noch zu ergänzen]";
    font-size: 8pt;
  }

  /* ---------- Fußzeile ------------------------------------- */

  .footer {
    padding: 12pt 0 0 !important;
    border-top: 1pt solid #20325c !important;
    page-break-before: avoid;
  }

  .footer-brand p,
  .footer-col ul li a {
    font-size: 9pt !important;
  }

  /* Navigationslisten der Fußzeile bringen auf Papier nichts. */
  .footer-col {
    display: none !important;
  }

  .footer-logo img {
    filter: grayscale(1) contrast(2) !important;
    max-height: 24pt !important;
  }

  .footer-bottom {
    border-top: 0.5pt solid #ccc !important;
    padding-top: 6pt !important;
    font-size: 8.5pt !important;
  }

  /* ---------- Bilder --------------------------------------- */

  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }
}
