
/* Einzige Layout-Ausnahme: kein linker Hero-Streifen. */
.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}
.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:60px}.nsc2-claim em{white-space:normal}.nsc2-line{overflow-wrap:break-word}}

/* ==========================================================
   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:not(.customer *), 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:not(.customer *), 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;
  }
}

/* Leaflet-Karte: Saubere Hoehe und Kapselung wie bei Google Maps in index.php */
.location-map {
  overflow: hidden;
  filter: grayscale(1);
}
#nsLeafletMap {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  max-height: 100% !important;
}
/* Karten-Sektion: gleiche Hoehe wie die Referenzseite eventsicherheit-bremerhaven.php (dort 521 px) */
@media (min-width: 601px) {
  .location-section .location-map {
    min-height: 521px;
  }
}
/* 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;
  }
}

/* ==========================================================
   CUSTOMER / ABOUT-LOWER TYPOGRAPHY & ALIGNMENT
   Schriftgroesse und Textausrichtung strikt linksbuendig
   (17.5px auf Mobile / <=700px & <=480px, 19px auf Desktop)
   ========================================================== */
.about-lower .customer,
.customer {
  text-align: left !important;
}
.customer h3,
.customer p,
.customer .customer-quote,
.customer .customer-lead {
  font-size: 19px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  color: #000 !important;
  margin: 0 !important;
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}
@media (max-width: 700px) {
  .customer h3,
  .customer p,
  .customer .customer-quote,
  .customer .customer-lead {
    font-size: 17.5px !important;
    line-height: 1.6 !important;
    font-weight: 500 !important;
    color: #000 !important;
    margin: 0 !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
}
@media (max-width: 480px) {
  .customer h3,
  .customer p,
  .customer .customer-quote,
  .customer .customer-lead {
    font-size: 17.5px !important;
    line-height: 1.6 !important;
    font-weight: 500 !important;
    color: #000 !important;
    margin: 0 !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
}


/* Ü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;
}
