/* PASCHER Signature 4.91 — Mobile QA: full-height nav, safe headings, responsive content.
   Appended after the regular/theme/page CSS. Intentionally leaves desktop visual layout intact. */

/* Avoid overflowing flex/grid children pushing the entire page wider than the viewport. */
@media (max-width: 1160px) {
  body.pp-site:not(.pp-campaign-landing) .pp-header {
    background: rgba(7,8,9,.975);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-header.is-scrolled {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-header-inner {
    position: relative;
    min-width: 0;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 7px;
    margin-left: auto;
    cursor: pointer;
    position: relative;
    z-index: 1003;
    color: #fff;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle > span:not(.screen-reader-text) {
    margin: 3px 0;
    width: 25px;
    min-height: 2px;
    background: currentColor;
    transition: transform .18s ease, opacity .18s ease;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(1) {transform: translateY(8px) rotate(45deg)}
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(2) {opacity: 0}
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(3) {transform: translateY(-8px) rotate(-45deg)}

  body.pp-site:not(.pp-campaign-landing) .pp-nav {
    position: fixed;
    display: none;
    top: 78px;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(100vh - 78px);
    height: calc(100dvh - 78px);
    width: 100%;
    max-width: 100%;
    margin: 0;
    z-index: 1002;
    padding: 18px max(22px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    background: #08090b;
    border-top: 1px solid rgba(215,180,106,.25);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav.is-open { display: flex; }
  body.pp-site:not(.pp-campaign-landing) .pp-menu {
    position: static;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
    width: 100%;
    white-space: normal;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-menu > li {min-width:0;width:100%;margin:0;border-bottom:1px solid rgba(255,255,255,.14)}
  body.pp-site:not(.pp-campaign-landing) .pp-menu > li > a {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 14px 0;
    color: #f2efe9;
    font-size: clamp(16px,3.7vw,19px);
    font-weight: 750;
    line-height: 1.35;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-menu > li > a:after {bottom:8px}
  body.pp-site:not(.pp-campaign-landing) .pp-menu .sub-menu {
    position: static;
    transform: none;
    visibility: visible;
    opacity: 1;
    min-width: 0;
    width: 100%;
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 0 0 10px 14px;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-menu .sub-menu li {list-style:none}
  body.pp-site:not(.pp-campaign-landing) .pp-menu .sub-menu a {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 8px 0;
    font-size: 14px;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: break-word;
    color: #ccc6ba;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav .pp-phone-mini {flex:0 0 auto;padding:13px 0;min-width:0;font-size:14px}
  body.pp-site:not(.pp-campaign-landing) .pp-nav .pp-nav-cta {flex:0 0 auto;width:100%;justify-content:center;min-height:48px;margin:0 0 6px}
  body.pp-site:not(.pp-campaign-landing).nav-open {overflow:hidden}
  body.pp-site:not(.pp-campaign-landing) .pp-header .pp-brand {min-width:0;flex:1 1 auto;max-width:calc(100% - 68px)}
  body.pp-site:not(.pp-campaign-landing) .pp-header .pp-brand-link {min-width:0;max-width:100%}
  body.pp-site:not(.pp-campaign-landing) .pp-header .pp-brand-logo {width:auto;height:auto;max-width:min(64vw,240px);max-height:54px;object-fit:contain}
  body.admin-bar.pp-site:not(.pp-campaign-landing) .pp-nav {top:110px;height:calc(100dvh - 110px)}
}
@media (max-width:782px) {
  body.admin-bar.pp-site:not(.pp-campaign-landing) .pp-nav {top:124px;height:calc(100dvh - 124px)}
}
@media (max-width:640px) {
  body.pp-site:not(.pp-campaign-landing) .pp-nav {top:70px;height:calc(100vh - 70px);height:calc(100dvh - 70px)}
  body.admin-bar.pp-site:not(.pp-campaign-landing) .pp-nav {top:116px;height:calc(100dvh - 116px)}
  body.pp-site:not(.pp-campaign-landing) .pp-header .pp-brand-logo {max-width:min(65vw,208px);max-height:46px}
}
/* Typography: no ugly arbitrary intra-word breaks; the companion font fitter
   lowers oversize headings only as needed for each real container width. */
@media (max-width: 900px) {
  main h1, main h2,
  main .v442-about-brand > span {
    max-width: 100%;
    min-width: 0;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }
  main :is(h1,h2) {text-wrap:wrap}
  main :is(h1,h2) em {max-width:100%}
  main :is(.v4-special-grid,.v3-hero-copy,.sig-hero-copy,.sig-section-head,.v44-ind-hero-inner,.v442-about-hero-grid,.v443-ref-hero-grid,.pp-sblast-hero-grid,.pp-sblast-series-grid,.pp-sblast-copy-grid,.pw-head,.pw-bottom-grid) > * {min-width:0}
  main .pp-sblast-techpanel-grid strong,
  main .pp-sblast-hero-badge strong {overflow-wrap:break-word;max-width:100%}
}
@media (max-width: 640px) {
  main :is(h1,h2) {line-height:1.04}
  main .sig-eyebrow,main .sig-kicker {overflow-wrap:break-word;max-width:100%;line-height:1.45}
  main .pw-search-line {min-width:0;flex-wrap:wrap}
  main .pw-search-line input,main .pw-search-line select {min-width:0;max-width:100%;width:100%}
  main .pw-ral-grid {grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}
  main .pw-ral-item strong {white-space:normal;overflow-wrap:break-word}
  main .v4-special-grid {min-width:0}
  main :is(input,select,textarea) {max-width:100%}
  main .pp-sblast-techpanel {padding:18px 14px;border-radius:18px}
  main .pp-sblast-techpanel-grid article {padding:17px 14px}
}
@media (prefers-reduced-motion: reduce) {
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle > span:not(.screen-reader-text) {transition:none}
}

@media(max-width:900px){ main [data-pp-heading-long="1"]{overflow-wrap:anywhere!important} }

/* Pulverbeschichtung landing hero contains separately sized SPAN/EM tags;
   resizing the H1 alone cannot control their independent font sizes. */
@media(max-width:900px) {
  .v3-powder .v481-powder-headline span {
    white-space: normal !important;
    font-size: clamp(19px,5.55vw,48px) !important;
    overflow-wrap:normal;
    word-break:normal;
  }
  .v3-powder .v481-powder-headline em {
    font-size:clamp(34px,9vw,71px) !important;
    white-space:normal;
  }
}

/* V4.92: prohibit scroll-container clipping when the narrow header is scrolled. */
@media (max-width: 1160px) {
  body.pp-site:not(.pp-campaign-landing) .pp-header {
    -webkit-transform: none !important;
    transform: none !important;
    contain: none !important;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav {overscroll-behavior-y:contain;touch-action:pan-y;}
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle:focus-visible {outline:2px solid #d7b46a;outline-offset:4px}
  body.pp-site:not(.pp-campaign-landing) .pp-nav[aria-hidden="true"] {display:none!important}
}
@media (max-width: 900px) {
  /* Overflow can originate in component text, not only H1/H2. */
  main .sig-actions,main .v3-form-row,main .v4-special-grid,main .pw-head {min-width:0;max-width:100%}
  main :is(.sig-btn,.pp-nav-cta,.v3-submit) {max-width:100%;white-space:normal;text-align:center}
  main :is(.v44-ind-hero-value strong,.home28-capacity-stat>b) {white-space:normal;overflow-wrap:normal}
  main :is(.v44-ind-hero-value,.v3-form-row) > * {min-width:0}
}
@media (max-width: 430px) {
  main .sig-eyebrow,main .sig-kicker {letter-spacing:.11em}
  main :is(.v44-ind-hero-value strong,.home28-capacity-stat>b) {font-size:clamp(22px,6.8vw,33px)!important}
}
/* V4.92: a true X icon when open, irrespective of the original bar margins. */
@media (max-width: 1160px) {
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(1),
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(3) {
    position:absolute;
    top:calc(50% - 1px);
    left:calc(50% - 12.5px);
    margin:0;
  }
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(1) {transform:rotate(45deg)}
  body.pp-site:not(.pp-campaign-landing) .pp-nav-toggle[aria-expanded="true"] > span:nth-child(3) {transform:rotate(-45deg)}
}
