
/* Einzige Layout-Ausnahme: kein linker Hero-Streifen, kein Rundsiegel. */
.nsc2-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.ns4-stage .nsc2-layout .nsc2-claim{margin:0;color:var(--c2-ink);font-family:"Archivo",Arial,Helvetica,sans-serif;font-size:clamp(30px,4vw,66px)!important;font-weight:700!important;line-height:1.13!important;letter-spacing:-.045em;text-transform:none;display:block}
.ns-object-hero-lead{color:#fff;font-size:clamp(16px,2vw,22px);font-weight:500;text-shadow:0 2px 4px rgba(0,0,0,.5);margin:15px 0 0;max-width:700px;line-height:1.4}
/* Leistungsbilder: feste Bildhoehe, damit alle vier Kacheln gleich hoch bleiben. */
.services .service-card .serviceImage{height:260px!important;min-height:260px!important;max-height:260px!important;flex:0 0 260px!important}
@media(max-width:900px){.services .service-card .serviceImage{height:235px!important;min-height:235px!important;max-height:235px!important;flex:0 0 235px!important}}
@media(max-width:820px){.nsc2-layout{grid-template-rows:minmax(0,1fr)}.nsc2-photo{top:0;height:100%;inset:0}.nsc2-content{padding-top:24px}.nsc2-claim em{white-space:normal}.nsc2-line{overflow-wrap:break-word}/* Nur mobil: Bildausschnitt so, dass Gesicht und Schulter ueber dem Text liegen. */.nsc2-photo{object-position:85% 30%}}
/* Alle vier Leistungskacheln auf gleicher Hoehe, auch bei kuerzerem Text. */
.services .cards{align-items:stretch;grid-auto-rows:1fr}
.services .service-card{height:100%}
/* Textblock waechst, das Bild sitzt am Kachelfuss – wie in der Vorlage. */
.services .service-card .serviceBody{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}
.services .service-card .serviceImage{margin-top:auto}
.services .service-card .corner{display:grid;place-items:center;width:68px;min-width:68px;height:68px;min-height:68px}
@media(max-width:700px){.services .service-card .corner{width:56px;min-width:56px;height:56px;min-height:56px}}

/* ==========================================================
   PREMIUM-TYPOGRAFIE (Auftrag 2026-10-10)
   Kontrollierte Zeilenumbrueche + kompakte Textbreiten.
   Desktop: jede .ns-hl wird zur eigenen Zeile.
   Mobil: .ns-hl fliesst normal, kein Overflow, keine Nowrap-Falle.
   ========================================================== */
.ns-hl{display:block}
@media (max-width:820px){ .ns-hl{display:inline} }

/* Maximale Textbreiten, damit Ueberschriften kompakt bleiben
   (Referenz: .servicesHead .h2 = 650px, .about-copy .h2 = 520px) */
.team .h2{max-width:720px}
.testimonialText .h2{max-width:700px}
.why .h2{max-width:640px}
.location-header .h2{max-width:700px}
.faq-intro .h2{max-width:640px}
.contact-form-header .h2{max-width:780px}
.partnerText .h2{max-width:560px}

/* ==========================================================
   KEINE WORTTRENNUNG IN UEBERSCHRIFTEN (Auftrag 2026-10-10)
   Lange deutsche Komposita (Baustellenbewachung, Sicherheitsdienste)
   duerfen nicht mitten im Wort umbrechen. Umbruch nur an Leerzeichen.
   !important ist hier noetig, weil spezifischere Sektionsregeln
   (z.B. .about-copy .h2, .why .h2) overflow-wrap:break-word setzen.
   ========================================================== */
main h1, main h2, main h3, main h4,
.about-copy .h2, .why .h2, .partnerText .h2, .consultation-cta h2,
.testimonialText .h2, .team .h2, .location-header .h2,
.contact-form-header .h2, .reference-heading-row h1{
  -webkit-hyphens:none !important;
  hyphens:none !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

/* Schmale Displays: Schrift so begrenzen, dass lange Komposita
   (Baustellenbewachung, Sicherheitsloesungen) ohne Worttrennung
   in den Container passen - kein Ueberlauf, kein Abschneiden. */

/* FAQ-Layout & Intro-Überschrift: 
   Schriftgröße passend zur Spaltenbreite (0.9fr/1.05fr) skalieren,
   damit lange deutsche Komposita (Veranstaltungsschutz etc.)
   vollständig als ganzes Wort ohne Überlapp in die FAQ-Fragen passen. */
.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.25fr) !important;
  gap: clamp(36px, 5vw, 68px) !important;
  align-items: start;
}
.faq-intro {
  min-width: 0 !important;
}
.faq-intro .h2 {
  font-size: clamp(30px, 2.4vw, 40px) !important;
  line-height: 1.15 !important;
  max-width: 540px !important;
  overflow-wrap: break-word !important;
  -webkit-hyphens: manual !important;
  hyphens: manual !important;
}
@media (max-width: 1024px) {
  .faq-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 36px !important;
  }
  .faq-intro .h2 {
    font-size: clamp(28px, 5vw, 38px) !important;
    max-width: 100% !important;
  }
}

@media (max-width:480px){
  main h1,
  main h2:not(.ns4-hero-title),
  main h3, main h4,
  .about-copy .h2, .why .h2, .partnerText .h2,
  .testimonialText .h2, .team .h2, .location-header .h2,
   .contact-form-header .h2, .consultation-cta h2{
    font-size:clamp(22px, 6.6vw, 30px) !important;
    line-height:1.18 !important;
  }
}
/* Hero-Claim mobil responsive adaptation */
@media (max-width: 820px) {
  .ns4-stage .nsc2-layout .nsc2-claim {
    display: block !important;
    margin: 8px 0 12px;
    font-size: clamp(17px, 5.2vw, 30px) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.04em;
  }
  .nsc2-line {
    display: table;
    max-width: 100%;
    margin-bottom: 4px;
    padding: 2px 8px;
    background: #fff;
    box-sizing: border-box;
  }
  .nsc2-line:last-child {
    margin-bottom: 0;
  }
  .nsc2-line em {
    color: var(--c2-red, #ec1b3b);
    font-style: normal;
  }
}

/* Überschriften & Unterüberschriften über komplette Grid-Fläche (Ausnahme: .why .h2; Hero unberührt) */
.servicesHead > div {
  width: 100% !important;
  max-width: 100% !important;
}

.servicesHead .h2,
.servicesHead .copy,
.servicesHead .servicesLead,
.about-copy .h2,
.about-copy .copy,
.partnerText .h2,
.partnerText .copy,
.testimonialText .h2,
.testimonialText .copy,
.team .h2,
.team .copy,
.location-header .h2,
.location-header .copy,
.location-section .h2,
.location-section .copy,

.faq-intro .copy,
.faq-section .h2,
.faq-section .copy,
.consultation-cta h2,
.consultation-cta p,
.contact-form-header .h2,
.contact-form-header .copy,
.contact-form-card h3,
.contact-form-card .form-advice,
.contact-service h3,
.contact-service > p {
  max-width: 100% !important;
}

/* Fließende Überschriften über die volle Grid-Breite ohne künstliche Zeilenumbrüche */
.servicesHead .h2 .ns-hl,
.team .h2 .ns-hl,
.about-copy .h2 .ns-hl,
.testimonialText .h2 .ns-hl,
.partnerText .h2 .ns-hl,
.location-header .h2 .ns-hl,
.location-section .h2 .ns-hl,
.location-section .h3 .ns-hl,
.faq-intro .h2 .ns-hl,
.faq-section .h2 .ns-hl,
.consultation-cta h2 .ns-hl,
.contact-form-header .h2 .ns-hl,
.contact-form-card h3 .ns-hl,
.contact-service h3 .ns-hl {
  display: inline !important;
  max-width: 100% !important;
}

.servicesHead .h2 br,
.team .h2 br,
.about-copy .h2 br,
.testimonialText .h2 br,
.partnerText .h2 br,
.location-header .h2 br,
.location-section .h2 br,
.location-section .h3 br,
.faq-intro .h2 br,
.faq-section .h2 br,
.consultation-cta h2 br,
.contact-form-header .h2 br,
.contact-form-card h3 br,
.contact-service h3 br {
  display: none !important;
}

.why .h2 {
  max-width: 640px !important;
}
