:root {
  --pp-red: #be0016;
  --pp-dark: #343434;
  --pp-ink: #151515;
  --pp-border: #ebebeb;
  --pp-width: 1100px;
  --pp-gutter: clamp(20px, 4.4vw, 52px);
}
html { scroll-behavior: smooth; }
body { margin: 0; background: white; color: var(--pp-ink); -webkit-font-smoothing: antialiased; }
body, button, input { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; }
*, *::before, *::after { box-sizing: border-box; }
img { height: auto; }
a { text-underline-offset: .19em; }
.pp-container { width: min(calc(100% - var(--pp-gutter) * 2), var(--pp-width)); margin-inline: auto; max-width: var(--pp-width); }
.pp-main { overflow: clip; }
.pp-main > .pp-section { margin-block-start: 0 !important; }
.pp-section { padding: 56px 0; }
.pp-section > .pp-container > :last-child { margin-bottom: 0; }
:where(.pp-section) h2 { font-size: clamp(2rem, 3.7vw, 3rem); letter-spacing: -.045em; line-height: 1.09; font-weight: 820; margin: 0 0 23px; }
:where(.pp-section) h3 { font-size: clamp(1.15rem, 2vw, 1.42rem); line-height: 1.2; font-weight: 780; letter-spacing: -.022em; margin: 0 0 13px; }
:where(.pp-section) h4 { font-size: 1rem; margin: 0; font-weight: 700; }
:where(.pp-section) :where(p) { font-size: 16px; line-height: 1.64; margin: 0 0 18px; }
:where(.pp-section-lead) { font-size: 18px; line-height: 1.62; max-width: 790px; margin-bottom: 30px !important; }
:where(.pp-section) :where(ul) { padding-left: 21px; font-size: 16px; line-height: 1.7; }
.pp-section ul li { margin-bottom: 5px; }
.pp-screen-reader { position: absolute!important; width: 1px!important; height: 1px!important; margin: -1px!important; padding: 0!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
/* Header: dark compact nav and red/black brand motif, as in the original. */
.pp-site-header { position: relative; z-index: 30; margin: 0!important; padding: 14px 0; background: #fff; box-shadow: 0 1px 0 #f1f1f1; }
.pp-site-header .pp-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pp-brand { display: flex; align-items: center; gap: 13px; margin: 0; }
.pp-brand .wp-block-site-title { position: relative; margin: 0; padding-left: 53px; font-size: 19px; font-weight: 850; letter-spacing: -.065em; line-height: 1.05; max-width: 230px; }
.pp-brand .wp-block-site-title::before, .pp-brand .wp-block-site-title::after { content: ''; position: absolute; display: block; transform: skew(-15deg); }
.pp-brand .wp-block-site-title::before { left: 10px; top: -5px; width: 35px; height: 34px; border: 4px solid #161616; }
.pp-brand .wp-block-site-title::after { left: 2px; top: 3px; width: 36px; height: 32px; background: var(--pp-red); }
.pp-brand .wp-block-site-title a { color: var(--pp-ink); text-decoration: none; }
.pp-brand .wp-block-site-logo:not(:has(img)) { display: none; }
.pp-brand:has(.wp-block-site-logo img) .wp-block-site-title { padding-left: 0; }
.pp-brand:has(.wp-block-site-logo img) .wp-block-site-title::before, .pp-brand:has(.wp-block-site-logo img) .wp-block-site-title::after { display: none; }
.pp-main-nav { border-radius: 1px; background: var(--pp-dark); padding: 10px 17px; font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .03em; }
.pp-main-nav .wp-block-navigation-item__content { color: #fff!important; text-decoration: none; }
.pp-main-nav .wp-block-navigation-item__content:hover { color: #fff!important; opacity: .65; }
.pp-site-header .wp-block-navigation__responsive-container-open { color: var(--pp-dark); }
/* Slider uses actual core/image blocks. Its active states are controlled by a small local script. */
.pp-hero { padding-top: 29px; padding-bottom: 44px; }
.pp-slider { position: relative; width: 100%; }
.pp-slider__track { width: 100%; }
.pp-slider--initialized .pp-slide[hidden] { display: none!important; }
.pp-slide { margin: 0; width: 100%; }
.pp-slide > .wp-block-image, .pp-slide-image { margin: 0!important; width: 100%; }
.pp-slide img { display: block; width: 100%; object-fit: contain; }
.pp-hero-slider .pp-slide { min-height: clamp(310px, 40vw, 530px); display: grid; place-items: center; }
.pp-hero-slider .pp-slide img { max-height: 565px; object-fit: contain; }
.pp-slider__controls { margin-top: 12px; display: flex; justify-content: space-between; align-items: center; }
.pp-slider__arrow { width: 38px; height: 38px; padding: 0; border: 1px solid var(--pp-border); background: white; color: #444; font-size: 31px; line-height: .7; cursor: pointer; }
.pp-slider__arrow:hover { background: #f5f5f5; }
.pp-slider__dots { display: flex; align-items: center; justify-content: center; gap: 9px; }
.pp-slider__dot { width: 30px; height: 4px; border: 0; border-radius: 0; padding: 0; background: #555; cursor: pointer; }
.pp-slider__dot.is-active { background: var(--pp-red); }
/* Company */
.pp-intro-grid { display: grid!important; grid-template-columns: 1fr .9fr; gap: clamp(38px,6vw,92px); align-items: start; }
.pp-intro-grid > .wp-block-column { min-width: 0; }
.pp-about-photo { max-width: 100%; }
.pp-about-photo img { display: block; width: 100%; height: auto; }
.pp-about-copy p { max-width: 560px; }
.pp-about .pp-quote { margin-top: 56px; padding: 21px 32px; color: #fff; background: linear-gradient(153deg, #343434 0%, #343434 81%, var(--pp-red) 81.2%); }
:where(.pp-quote-copy) { margin: 0; color: #fff; font-size: clamp(17px, 2vw, 21px); font-weight: 540; line-height: 1.45!important; }
/* Services */
.pp-services h2 { margin-bottom: 19px; }
.pp-service-row { display: grid!important; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 42px 100px; margin: 0 0 22px; }
.pp-service-row > .wp-block-column { min-width: 0; }
.pp-service-card { margin: 0 0 12px; }
.pp-service-icon { width: 65px!important; max-width: 65px; height: 65px; margin: 0 0 14px!important; }
.pp-service-icon img { width: 65px; height: 65px; display: block; object-fit: contain; }
.pp-service-card p { max-width: 460px; }
/* Product listing and technologies */
.pp-product-categories { padding-top: 20px; padding-bottom: 35px; }
.pp-product-lists { display: grid!important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px 55px; }
.pp-product-lists ul { margin: 0; }
.pp-technologies { padding-top: 42px; padding-bottom: 38px; }
:where(.pp-technologies) h2 { text-align: center; font-size: clamp(1.55rem,3vw,2.25rem); margin-bottom: 35px; }
.pp-tech-row { display: grid!important; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; text-align: center; margin: 0 auto 25px; }
.pp-tech-item { margin: 0; }
.pp-tech-icon { width: 86px; max-width: 86px; margin: 0 auto 12px!important; }
.pp-tech-icon img { display: block; width: 86px; height: 86px; object-fit: contain; }
.pp-extras { padding-top: 20px; padding-bottom: 60px; }
.pp-extras ul { columns: 2; column-gap: 50px; }
/* Production, three editable photos */
.pp-production { padding-top: 58px; }
.pp-production-grid { display: grid!important; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 27px; margin-top: 33px; }
.pp-production-grid > .wp-block-column { min-width: 0; }
.pp-production-grid img { width: 100%; height: 225px; object-fit: cover; display: block; }
.pp-production-card h3 { margin-top: 15px; }
.pp-production-after { margin-top: 24px!important; }
.pp-displays { padding-top: 34px; }
.pp-displays h2 { text-align: center; }
.pp-product-slider { max-width: 1050px; margin-inline: auto; }
.pp-product-slider .pp-slide img { width: 100%; max-height: 570px; height: auto; object-fit: contain; }
.pp-product-slider + .pp-section-lead { max-width: 850px; margin: 22px auto 0!important; text-align: center; }
/* References and contact */
.pp-references { padding-top: 74px; padding-bottom: 38px; }
.pp-reference-row { display: grid!important; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.pp-references-logos img { width: 100%; max-width: 640px; object-fit: contain; }
.pp-red-lead { color: var(--pp-red); font-weight: 700; }
.pp-contact-button .wp-block-button__link { background: var(--pp-red); clip-path: polygon(11% 0%, 100% 0%, 89% 100%, 0% 100%); padding: 13px 45px; margin-top: 11px; }
.pp-contact { padding-top: 35px; padding-bottom: 105px; }
.pp-contact-grid { display: grid!important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.pp-contact .wp-block-button__link { padding: 12px 26px; }
/* Footer */
.pp-site-footer { margin: 0!important; background: var(--pp-dark); color: #e5e5e5; padding: 57px 0 55px; position: relative; overflow: hidden; }
.pp-site-footer::after { content: ''; position: absolute; right: -35px; bottom: -35px; width: clamp(160px,27vw,350px); height: clamp(150px,24vw,300px); background: var(--pp-red); transform: skew(-37deg); transform-origin: bottom right; pointer-events: none; }
.pp-footer-grid { display: flex; align-items: start; justify-content: space-between; gap: 40px; position: relative; z-index: 1; }
.pp-footer-address p, .pp-footer-links p { color: #e2e2e2; font-size: 13px; line-height: 1.85; }
:where(.pp-site-footer) h3 { color: #fff; font-size: 17px; font-weight: 800; margin: 0 0 15px; }
.pp-site-footer a { color: #fff; }
.pp-site-footer a:hover { color: #ffd5db; }
.pp-footer-links { max-width: 270px; margin-right: 25px; }
.pp-footer-links > p:not(.pp-legal-notice) { font-weight: 700; font-size: 15px; }
.pp-legal-notice { color: #f5cece!important; font-size: 12px!important; max-width: 290px; }
/* Other Gutenberg pages, including legal pages */
.pp-simple-page { min-height: 60vh; padding: 65px 0 85px; }
.pp-simple-page > .wp-block-post-title { font-size: clamp(30px,4vw,52px); }
.pp-simple-page .wp-block-post-content { max-width: 820px; }
:where(.pp-main, .pp-site-header, .pp-site-footer) .wp-block-columns { margin-bottom: 0; }
/* Responsive, accessible controls */
@media (max-width: 900px) {
  .pp-intro-grid { gap: 24px; }
  .pp-service-row { gap: 30px; }
  .pp-reference-row { gap: 28px; }
  .pp-main-nav { padding: 9px 11px; font-size: 11px; }
  .pp-production-grid img { height: 170px; }
}
@media (max-width: 680px) {
  .pp-site-header { padding: 12px 0; }
  .pp-brand .wp-block-site-title { font-size: 17px; }
  .pp-main-nav { background: transparent; padding: 0; }
  .pp-main-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--pp-dark); color: white; padding: 28px; }
  .pp-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff!important; }
  .pp-section { padding: 38px 0; }
  .pp-hero { padding: 10px 0 26px; }
  .pp-hero-slider .pp-slide { min-height: 190px; }
  .pp-intro-grid,.pp-reference-row,.pp-contact-grid { grid-template-columns: 1fr; }
  .pp-about .pp-quote { padding: 19px 22px; margin-top: 35px; }
  .pp-service-row { grid-template-columns: 1fr; margin-bottom: 15px; }
  .pp-product-lists { grid-template-columns: 1fr; gap: 0; }
  .pp-tech-row { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 20px; }
  .pp-extras ul { columns: 1; }
  .pp-production-grid { grid-template-columns: 1fr; gap: 27px; }
  .pp-production-grid img { height: auto; max-height: 330px; }
  .pp-footer-grid { flex-direction: column; }
  .pp-site-footer::after { opacity: .4; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Site editor: display all slide blocks for convenient selection and replacement. */
.editor-styles-wrapper .pp-slider__track { display: block; }
.editor-styles-wrapper .pp-slide { margin-bottom: 15px; }
.editor-styles-wrapper .pp-slide .block-editor-block-list__block { display: block!important; }
.editor-styles-wrapper .pp-screen-reader {
  position: static!important; clip: auto!important; overflow: visible!important;
  width: auto!important; height: auto!important; margin: 0 0 12px!important;
  white-space: normal!important; opacity: .35; font-size: 13px;
}


/* Theme and existing database-overridden header parts: hide the site-title label. */
.pp-site-header .wp-block-site-title { display:none!important; }
body.home .pp-main > .wp-block-post-title { display:none!important; }
/* v1.3: mark-only fallback when no Site Logo has been uploaded. */
.pp-brand { position:relative; min-height:52px; min-width:62px; }
.pp-brand:not(:has(.wp-block-site-logo img))::before,
.pp-brand:not(:has(.wp-block-site-logo img))::after { content:""; display:block; position:absolute; transform:skew(-15deg); pointer-events:none; }
.pp-brand:not(:has(.wp-block-site-logo img))::before { left:14px; top:5px; width:37px; height:36px; border:4px solid var(--pp-ink); }
.pp-brand:not(:has(.wp-block-site-logo img))::after { left:4px; top:12px; width:37px; height:33px; background:var(--pp-red); }
/* WordPress-generated preset classes and custom inline font sizes are authoritative. */
/* Slider sizes controlled independently via the POP-POS backend, no forced image-block px widths. */
.pp-hero-slider { max-width:var(--pp-hero-width,1100px); margin-inline:auto; }
.pp-product-slider { max-width:var(--pp-product-width,1050px); margin-inline:auto; }
.pp-hero-slider .pp-slide, .pp-product-slider .pp-slide { min-height:0; height:var(--pp-slider-height,490px); display:grid; place-items:center; overflow:hidden; }
.pp-hero-slider .pp-slide { --pp-slider-height:var(--pp-hero-height,490px); }
.pp-product-slider .pp-slide { --pp-slider-height:var(--pp-product-height,520px); }
.pp-hero-slider .pp-slide > .wp-block-image, .pp-product-slider .pp-slide > .wp-block-image { width:100%; height:100%; display:grid; place-items:center; }
.pp-hero-slider .pp-slide img, .pp-product-slider .pp-slide img { display:block; max-width:100%; max-height:100%; width:100%; height:100%; object-fit:var(--pp-slider-fit,contain); }
.pp-hero-slider { --pp-slider-fit:var(--pp-hero-fit,contain); }
.pp-product-slider { --pp-slider-fit:var(--pp-product-fit,contain); }
/* Visual overlay removal: the Gutenberg cover retains only its standard editable dim layer. */
.pp-panel::after, .pp-panel--products::after, .pp-panel--extras::after { content:none!important; display:none!important; }
/* These images are block-controlled; no extra red ornaments or additional dark overlay. */
@media (max-width:680px) {
 .pp-hero-slider .pp-slide { height:min(var(--pp-hero-height,490px),65vw); min-height:190px; }
 .pp-product-slider .pp-slide { height:min(var(--pp-product-height,520px),75vw); min-height:190px; }
}
/* In Gutenberg show all slides sequentially, without constraining individual image edits. */
.editor-styles-wrapper .pp-hero-slider .pp-slide,
.editor-styles-wrapper .pp-product-slider .pp-slide { height:auto; min-height:120px; overflow:visible; }
.editor-styles-wrapper .pp-hero-slider .pp-slide > .wp-block-image,
.editor-styles-wrapper .pp-product-slider .pp-slide > .wp-block-image { height:auto; display:block; }
.editor-styles-wrapper .pp-hero-slider .pp-slide img,
.editor-styles-wrapper .pp-product-slider .pp-slide img { width:auto; height:auto; max-width:100%; max-height:420px; object-fit:contain; }

