/*
  German-only content optimization.
  Loaded only by templates/de so long German words are handled without JS.
*/

html{
  hyphens: manual;
  -webkit-hyphens: manual;
  -ms-hyphens: manual;
}

body{
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

main,
main *{
  min-width: 0;
  box-sizing: border-box;
}

main :where(h1,h2,h3,h4,h5,h6,p,li,figcaption,blockquote,label,button,a){
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: manual;
  -webkit-hyphens: manual;
  line-break: auto;
}

main :where(
  h1,h2,h3,
  .info-title,
  .why-title,
  .why-kicker,
  .service-heading,
  .industry-card h3,
  .step-box h2,
  .step-box h3,
  .content-box h2,
  .content-box h3
){
  text-wrap: balance;
  letter-spacing: -0.01em;
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

main :where(
  .btn-chip,
  .eyebrow-link,
  .bc-btn,
  .bc-time,
  .button-bubble,
  .cta-bubble,
  .navigation-buttons button,
  .service-item button
){
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.16;
}

main :where(.info-copy,.why-kicker,.service-text,.service-description,.content-box p,.step-box p,.industry-card p){
  line-height: clamp(1.42, 1.1vw + 1.08, 1.62);
}

.hero.hero--why-sticky .why-left,
.hero.hero--why-sticky .why-left-pin,
.hero.hero--why-sticky .why-right,
.hero.hero--why-sticky .why-panel,
.info-grid,
.info-left,
.info-right,
.content-box,
.industry-card,
.step-box,
.service-item{
  min-width: 0;
  max-width: 100%;
}

.hero.hero--why-sticky .why-title{
  font-size: clamp(30px, 4.85vw, 64px) !important;
  line-height: .98 !important;
}

.hero.hero--why-sticky .why-kicker{
  font-size: clamp(13px, 1.2vw, 16px) !important;
  max-width: min(100%, 42ch);
}

.info-title{
  font-size: clamp(30px, 4.6vw, 60px);
  line-height: .98;
}

.service-heading,
.content-box h2,
.industry-card h3,
.step-box h2,
.step-box h3{
  font-size: clamp(19px, 1.9vw, 30px);
}

.bc-time,
.bc-btn,
.btn-chip,
.eyebrow-link{
  font-size: clamp(12px, .95vw, 15px);
}

.experience-block h2,
.experience-block h3{
  max-width: 100%;
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.experience-block h2{
  font-size: clamp(28px, 3.4vw, 48px) !important;
  line-height: 1.08 !important;
}

.experience-block h3{
  font-size: clamp(19px, 1.9vw, 28px) !important;
  line-height: 1.15 !important;
}

.experience-block p,
.experience-block li{
  font-size: clamp(14px, 1.05vw, 17px) !important;
  line-height: 1.5 !important;
}

.process-flow,
.promise-steps{
  gap: clamp(12px, 1.6vw, 20px);
}

.step-box{
  font-size: clamp(13px, 1.05vw, 16px) !important;
  line-height: 1.45 !important;
}

.bulbs-strip{
  --bulb-min: clamp(138px, 15vw, 190px);
  --bulb-max: clamp(178px, 18vw, 240px);
}

.bulb-btn{
  max-width: 92%;
  padding-inline: 10px;
  font-size: clamp(15px, 1.35vw, 23px) !important;
  line-height: 1.08 !important;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.bulb-btn :where(span,strong){
  word-break: normal;
  overflow-wrap: normal;
  hyphens: manual;
  -webkit-hyphens: manual;
}


.new-text,
.new-text p,
.why-panel .new-text,
.why-panel .new-text p{
  max-width: min(100%, 68ch);
  font-size: clamp(15px, 1.18vw, 18px);
  line-height: 1.55;
  overflow-wrap: break-word;
  hyphens: manual;
  -webkit-hyphens: manual;
}

.new-text strong,
.why-panel .new-text strong{
  display: inline;
  font-size: clamp(16px, 1.35vw, 20px);
  line-height: 1.22;
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

@supports not (text-wrap: balance){
  main :where(h1,h2,h3,.info-title,.why-title,.why-kicker,.service-heading){
    text-wrap: wrap;
  }
}
/* =====================================================
   GERMAN PROMISE — SMALLER / CLEANER TEXT
   Paste after the current #expBlock5 block
===================================================== */

/* Overall promise block slightly tighter */
#expBlock5 {
  padding: clamp(24px, 3.2vw, 42px) !important;
}

/* Intro row: make title smaller and give paragraph room */
#expBlock5 .promise-text {
  gap: clamp(22px, 3vw, 44px) !important;
  margin-bottom: clamp(20px, 3vw, 34px) !important;
  padding-bottom: clamp(18px, 2.4vw, 28px) !important;
}

#expBlock5 .promise-text h3 {
  flex: 0 0 min(30%, 280px) !important;

  font-size: clamp(28px, 3.1vw, 44px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.04em !important;

  hyphens: none !important;
  -webkit-hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

#expBlock5 .promise-text p {
  font-size: clamp(13px, 1.02vw, 16px) !important;
  line-height: 1.55 !important;
  max-width: 76ch !important;
}

/* Promise rows: smaller numbers, titles, and copy */
#expBlock5 .promise-item {
  gap: clamp(16px, 2.4vw, 32px) !important;
  padding: clamp(16px, 2.1vw, 24px) 0 !important;
}

#expBlock5 .promise-number {
  flex: 0 0 clamp(44px, 5vw, 68px) !important;

  font-size: clamp(34px, 4vw, 54px) !important;
  line-height: 0.9 !important;
}

/* German row titles */
#expBlock5 .promise-item h4 {
  flex: 0 0 min(32%, 310px) !important;

  font-size: clamp(15px, 1.35vw, 21px) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.025em !important;

  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* German row body text */
#expBlock5 .promise-item p {
  font-size: clamp(12.5px, 0.95vw, 15px) !important;
  line-height: 1.52 !important;
  max-width: 80ch !important;
}

/* On medium screens, avoid huge German text */
@media (max-width: 980px) {
  #expBlock5 .promise-text h3 {
    font-size: clamp(28px, 5vw, 42px) !important;
    max-width: 100% !important;
  }

  #expBlock5 .promise-item h4 {
    flex-basis: min(36%, 300px) !important;
  }
}

/* Mobile: keep readable but compact */
@media (max-width: 680px) {
  #expBlock5 .promise-text h3 {
    font-size: clamp(28px, 9vw, 38px) !important;
  }

  #expBlock5 .promise-text p,
  #expBlock5 .promise-item p {
    font-size: 14px !important;
  }

  #expBlock5 .promise-item h4 {
    font-size: 18px !important;
  }

  #expBlock5 .promise-number {
    font-size: 40px !important;
  }
}/* =====================================================
   PROMISE SECTION — TEXT SIZE ONLY
   No layout changes
===================================================== */

/* Main title: Unser Versprechen */
#expBlock5 .promise-text h3 {
  font-size: clamp(5px, 3vw, 4px) !important;
  line-height: 1.08 !important;
}

/* Intro paragraph */
#expBlock5 .promise-text p {
  font-size: clamp(13px, 0.95vw, 15px) !important;
  line-height: 1.5 !important;
}

/* Numbers: 1 / 2 / 3 */
#expBlock5 .promise-number {
  font-size: clamp(34px, 3.6vw, 50px) !important;
  line-height: 0.9 !important;
}

/* Promise row titles */
#expBlock5 .promise-item h4 {
  font-size: clamp(14px, 1.15vw, 18px) !important;
  line-height: 1.18 !important;
}

/* Promise row body text */
#expBlock5 .promise-item p {
  font-size: clamp(12px, 0.9vw, 14px) !important;
  line-height: 1.48 !important;
}
/* =====================================================
   FORCE PROMISE TEXT SMALLER — FINAL OVERRIDE
   Must be the LAST block in the CSS file
===================================================== */

/* Main title: "Unser Versprechen" */
html body main #expBlock5 .promise-block .promise-text h3,
html body main #expBlock5 .promise-text h3,
html body main #expBlock5 h3 {
  font-size: 34px !important;
  line-height: 1.06 !important;
  letter-spacing: -0.035em !important;
  font-weight: 900 !important;
}

/* Intro paragraph */
html body main #expBlock5 .promise-block .promise-text p,
html body main #expBlock5 .promise-text p {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

/* Numbers: 1 / 2 / 3 */
html body main #expBlock5 .promise-block .promise-number,
html body main #expBlock5 .promise-number {
  font-size: 42px !important;
  line-height: 0.9 !important;
  letter-spacing: -0.06em !important;
}

/* Row titles: Fundierte Unternehmensbewertung, etc. */
html body main #expBlock5 .promise-block .promise-item h4,
html body main #expBlock5 .promise-item h4 {
  font-size: 16px !important;
  line-height: 1.16 !important;
  letter-spacing: -0.02em !important;
  font-weight: 850 !important;
}

/* Row body text */
html body main #expBlock5 .promise-block .promise-item p,
html body main #expBlock5 .promise-item p {
  font-size: 13px !important;
  line-height: 1.45 !important;
}

/* Smaller again on medium screens */
@media (max-width: 980px) {
  html body main #expBlock5 .promise-text h3,
  html body main #expBlock5 h3 {
    font-size: 30px !important;
  }

  html body main #expBlock5 .promise-item h4 {
    font-size: 15px !important;
  }

  html body main #expBlock5 .promise-item p,
  html body main #expBlock5 .promise-text p {
    font-size: 13px !important;
  }

  html body main #expBlock5 .promise-number {
    font-size: 38px !important;
  }
}