/* Central design scale. Intentional !important only where saved block sizes
   would defeat the shared scale. Add nl-design-original to opt a block out. */
body.nl-design {
  --nld-width:1240px; --nld-body:1.0625rem;
  --nld-home-space-desktop:40px; --nld-home-space-mobile:28px;
  --nld-gutter:clamp(20px,3.2vw,48px); --nld-gap:clamp(24px,3vw,40px);
  --nld-h1:clamp(2rem,1.5rem + 2vw,3rem);
  --nld-h2:clamp(1.625rem,1.25rem + 1.2vw,2.25rem);
  --nld-h3:clamp(1.2rem,1.1rem + .4vw,1.5rem);
  --wp--style--global--content-size:var(--nld-width);
  --wp--style--global--wide-size:var(--nld-width);
  font-family:var(--wp--preset--font-family--inter,system-ui,sans-serif);
  font-size:var(--nld-body); line-height:1.7; color:#263746;
}
.nl-design :where(main,header,footer) *, .nl-design :where(main,header,footer) *::before,
.nl-design :where(main,header,footer) *::after { box-sizing:border-box; }
.nl-design :where(main,header,footer) :is(p,li,h1,h2,h3,h4,h5,h6,a,label,legend) { overflow-wrap:break-word; }
.nl-design :where(main,header,footer) :is(.wp-block-column,.wp-block-group,.wp-block-cover__inner-container) { min-width:0; }
.nl-design :is(main h1,main h2,main h3,main h4,main h5,main h6):not(:where(.nl-design-original,.nl-design-original *)) {
  font-family:inherit!important; font-weight:600!important; line-height:1.22!important;
  letter-spacing:-.025em!important; text-wrap:pretty; margin-bottom:1rem;
}
.nl-design main h1:not(:where(.nl-design-original,.nl-design-original *)) { font-size:var(--nld-h1)!important; }
.nl-design main h2:not(:where(.nl-design-original,.nl-design-original *)) { font-size:var(--nld-h2)!important; }
.nl-design main h3:not(:where(.nl-design-original,.nl-design-original *)) { font-size:var(--nld-h3)!important; }
.nl-design main :is(h4,h5,h6):not(:where(.nl-design-original,.nl-design-original *)) { font-size:1.125rem!important; }
.nl-design main :is(h1,h2,h3) :is(strong,b) { font-weight:inherit; }
.nl-design main :is(p,li):not(:where(.nl-design-original,.nl-design-original *,.screen-reader-text,.wc-block-components-product-badge)) {
  font-size:var(--nld-body)!important; line-height:1.7!important;
}
.nl-design main :is(p,ul,ol) { margin-block:0 1.25rem; }
.nl-design main :is(p,ul,ol):last-child { margin-bottom:0; }
.nl-design main :is(.nl-eyebrow,.nl-product-manufacturer,.nl-product-sku,.nl-hero-note,.nl-fineprint,.nl-visual-caption,.wp-block-post-terms):not(:where(.nl-design-original,.nl-design-original *)) {
  font-size:.8125rem!important; line-height:1.55!important;
}
.nl-design main .nl-eyebrow { letter-spacing:.1em; }
.nl-design .nl-shell,.nl-design .nl-slider {
  width:min(var(--nld-width),calc(100% - var(--nld-gutter) * 2)); max-width:none;
  margin-inline:auto;
}
/* Avoid the double inset currently present on Shop and Katalog. */
.nl-design main.nl-shell :is(.nl-shell,.nl-slider) { width:100%; max-width:none; margin-inline:0; }
.nl-design :is(.nl-page-content,.nl-page .wp-block-post-content) { max-width:none; width:100%; }
.nl-design .wp-site-blocks>main:not(.nl-home) { padding-block:clamp(32px,4vw,60px) clamp(48px,6vw,80px); }
.nl-design main.nl-page .nl-catalog { padding-block:0; }
.nl-design main>.wp-block-post-title { margin-block:0 clamp(24px,3vw,40px); }
.nl-design main.nl-page .wp-block-post-content :is(h2,h3):not(:first-child) { margin-top:2rem; }
.nl-design main.nl-page :is(.wp-block-column,.nl-product-card) :is(h2,h3):first-child { margin-top:0; }
.nl-design-catalog .nl-catalog>h2:first-child { display:none; }
.nl-design main .nl-intro { max-width:72ch; }
.nl-design .nl-section { padding-block:clamp(44px,5.5vw,80px); }
.nl-design .nl-home>.nl-section:not(.nl-hero) { padding-block:var(--nld-home-space-desktop)!important; margin-block:0!important; }
.nl-design .nl-hero { padding-block:clamp(36px,5vw,72px); }
.nl-design .nl-hero-grid { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:var(--nld-gap); }
.nl-design .nl-hero-copy { max-width:none; }
.nl-design .nl-hero h1 { margin-bottom:1.5rem; }
.nl-design .nl-heading { max-width:28ch; }
.nl-design .nl-section-heading { margin-bottom:32px; }
.nl-design .nl-heading-row { gap:24px; }
.nl-design .nl-heading-row .nl-text-link { white-space:normal; }
.nl-design :is(.nl-expertise-grid,.nl-category-grid,.nl-benefits-grid,.nl-contact-grid,.nl-product-layout) { gap:var(--nld-gap); }
.nl-design .nl-optimization-copy { padding:clamp(24px,3.5vw,48px); }
.nl-design .nl-optimization-visual { padding:32px 32px 32px 0; }
.nl-design .nl-optimization-panel { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.nl-design :is(.nl-card-body,.nl-contact-options) { padding:24px; }
.nl-design main :is(.nl-product-card,.nl-card-body,.nl-benefit) p:not(:where(.nl-design-original,.nl-design-original *)) { font-size:1rem!important; line-height:1.6!important; }
.nl-design main :is(.nl-product-card,.nl-card-body,.nl-benefit) h3:not(:where(.nl-design-original,.nl-design-original *)) { font-size:1.25rem!important; line-height:1.35!important; }
.nl-design .nl-product-card { display:flex; flex-direction:column; gap:14px; min-width:0; height:100%; border-radius:12px; }
.nl-design .nl-product-card h3 a { color:inherit; text-decoration:none; }
.nl-design .nl-product-card :is(.wp-block-read-more,.wp-block-notfalllabor-product-purchase) { margin-top:auto; }
.nl-design .nl-product-card .wp-block-woocommerce-product-summary { margin-bottom:1rem; }
.nl-design :is(.nl-overview-grid,.nl-product-grid .wc-block-product-template) { display:grid; gap:24px; align-items:stretch; }
.nl-design .nl-overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.nl-design .nl-product-grid .wc-block-product-template { grid-template-columns:repeat(4,minmax(0,1fr)); }
.nl-design .nl-overview-grid .nl-product-card { padding:22px; border:1px solid #dce5eb; background:#fff; }
.nl-design .nl-overview-grid .nl-product-card :is(h3,p) { margin-top:0; }
.nl-design .nl-overview-grid img { aspect-ratio:4/3; object-fit:contain; }
.nl-design .nl-product-grid .wc-block-components-product-image img { aspect-ratio:4/3; object-fit:contain; }
.nl-design main :is(img,video) { max-width:100%; }
.nl-design main .wp-block-image:not(:where(.nl-product-gallery *,.nl-card-image,.nl-hero-image,.nl-optimization-image,.nl-design-original,.nl-design-original *)) img {
  display:block; width:100%; max-width:100%; height:auto!important; border-radius:12px;
}
.nl-design main .wp-block-image { margin-inline:0; }
.nl-design main .wp-block-cover { border-radius:12px; overflow:clip; }
.nl-design .nl-product-section { grid-template-columns:minmax(160px,.7fr) minmax(0,1.8fr); gap:32px; }
.nl-design .nl-product-section--without-heading { grid-template-columns:minmax(0,1fr); }
.nl-design main .nl-product-section h2:not(:where(.nl-design-original,.nl-design-original *)) { font-size:1.5rem!important; }
/* Buttons: shared metrics, accessible dark teal; preserve outline and dark panels. */
.nl-design :is(main,.nl-site-header) :where(.wp-block-button__link,.nl-contact-button,.nl-request-form button[type=submit],.nl-overview-filters button,.single_add_to_cart_button):not(:where(.nl-design-original,.nl-design-original *)) {
  min-height:48px; max-width:100%; display:inline-flex; align-items:center; justify-content:center;
  padding:12px 20px; border-radius:8px!important; font-family:inherit;
  font-size:1rem!important; font-weight:600; line-height:1.4!important;
  text-align:center; white-space:normal; text-decoration:none; overflow-wrap:anywhere;
}
.nl-design :is(main,.nl-site-header) :is(.has-teal-background-color,.wp-block-button__link[style*="background-color:#0da4a6"],.nl-request-form button[type=submit]) {
  background-color:#087b7b!important; color:#fff!important; border-color:#087b7b;
}
.nl-design :is(main,.nl-site-header) :is(.has-teal-background-color,.wp-block-button__link[style*="background-color:#0da4a6"],.nl-request-form button[type=submit]):hover { background-color:#065f60!important; }
.nl-design .wp-block-buttons { gap:12px; }
.nl-design :is(a,button,input,textarea,select,summary):focus-visible { outline:3px solid #1675b9; outline-offset:4px; }
.nl-design .nl-overview-filters { display:flex; flex-wrap:wrap; align-items:end; padding:24px; background:#f4f7fa; border:1px solid #dce5eb; border-radius:12px; gap:16px; margin-block:28px; }
.nl-design .nl-overview-filters p { flex-basis:190px; margin:0; }
.nl-design .nl-overview-filters label { display:block; margin-bottom:8px; }
.nl-design .nl-overview-filters select { width:100%; }
.nl-design :is(.nl-request-form,.nl-overview-filters) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) {
  font:inherit; font-size:1rem; min-height:48px; max-width:100%; border:1px solid #8a9dac; border-radius:8px; padding:12px; background:#fff; color:#263746;
}
.nl-design .nl-request-form textarea { min-height:160px; }
.nl-design .nl-request-form p { display:grid; gap:8px; }
.nl-design .nl-request-form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea) { width:100%; }
.nl-design .nl-request-form fieldset { min-width:0; }
.nl-design .nl-request-form :is(input[type=checkbox],input[type=radio]) { width:20px; height:20px; flex:0 0 20px; accent-color:#087b7b; }
.nl-design .nl-contact-topics label { display:flex; gap:10px; min-height:36px; align-items:flex-start; margin-block:8px; }
.nl-design .nl-contact-page>.wp-block-columns { gap:clamp(32px,5vw,64px); align-items:flex-start; }
.nl-design .nl-request-form { padding:clamp(20px,2.5vw,32px); border:1px solid #dce5eb; border-radius:12px; background:#f8fafb; }
.nl-design .wp-block-table { overflow-x:auto; max-width:100%; }
.nl-design .wp-block-table table { min-width:100%; }
.nl-design .nl-product-section-content { min-width:0; }
/* Existing saved header uses plain groups; support both it and theme patterns. */
.nl-design .nl-header { background:#fff; }
.nl-design .nl-header p { font-size:.8125rem!important; line-height:1.45!important; }
.nl-design .nl-header .wp-block-navigation,.nl-design .nl-header .wp-block-navigation__container {
  font-size:.9375rem!important; line-height:1.4; gap:clamp(12px,1.5vw,22px);
}
.nl-design .nl-header .wp-block-navigation-item__content { padding-block:12px; }
.nl-design .nl-header .wp-block-navigation__submenu-container { max-width:min(360px,90vw); }
.nl-design .nl-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space:normal; }
.nl-design .nl-header .wp-block-button__link { font-size:.875rem!important; padding:12px 18px; }
.nl-design .nl-header figure { margin:0; }
.nl-design .nl-header figure img { display:block; width:230px!important; max-width:100%; height:auto; }
.nl-design .nl-utility p { font-size:.75rem!important; line-height:1.4; margin:0; }
.nl-design .nl-site-footer p,.nl-design .nl-site-footer .nl-contact-links a { font-size:.9375rem!important; line-height:1.65; }
.nl-design .nl-site-footer .nl-footer-label { font-size:1rem!important; }
.nl-design .nl-site-footer .nl-footer-bottom p { font-size:.8125rem!important; }
.nl-design .nl-site-footer a { overflow-wrap:anywhere; }
.nl-design .nl-footer-grid { gap:32px; }
@media(min-width:1101px) {
  .nl-design .nl-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display:none; }
  .nl-design .nl-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display:flex; }
}
@media(max-width:1100px) {
  .nl-design .nl-header .wp-block-navigation__responsive-container-open { display:flex; padding:10px; min-width:44px; min-height:44px; }
  .nl-design .nl-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
  .nl-design .nl-header .wp-block-navigation__responsive-container.is-menu-open { display:flex; padding:24px; overflow-y:auto; }
  .nl-design .nl-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top:56px; align-items:flex-start; }
  .nl-design .nl-header .is-menu-open .wp-block-navigation__container { align-items:flex-start; gap:12px; font-size:1.125rem!important; }
  .nl-design .nl-header .is-menu-open .wp-block-navigation__submenu-container { font-size:1rem!important; padding-inline:12px; }
  .nl-design .nl-site-header { position:relative; top:auto; }
  .nl-design .nl-product-grid .wc-block-product-template { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nl-design .nl-expertise-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) {
  .nl-design .nl-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nl-design .nl-product-layout { grid-template-columns:minmax(0,1fr); }
  .nl-design .nl-hero-grid,.nl-design .nl-optimization-panel { grid-template-columns:minmax(0,1fr); }
  .nl-design .nl-optimization-visual { padding:0 24px 24px; }
  .nl-design .nl-hero-visual { width:100%; }
}
@media(max-width:781px) {
  .nl-design .nl-home>.nl-section:not(.nl-hero) { padding-block:var(--nld-home-space-mobile)!important; }
  .nl-design { --nld-body:1rem!important; }
  .nl-design .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction:column; gap:24px; }
  .nl-design .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column { flex-basis:auto!important; width:100%; }
  .nl-design .nl-product-section { grid-template-columns:minmax(0,1fr); gap:20px; padding-block:28px; }
  .nl-design .nl-benefits-grid,.nl-design .nl-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .nl-design { --nld-gutter:20px; }
  .nl-design main .nl-intro { max-width:100%; }
  .nl-design .nl-header>.nl-shell { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; }
  .nl-design .nl-header>.nl-shell>.is-layout-flex:first-child {
    grid-column:1/-1; grid-row:1; display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding-block:12px!important;
  }
  .nl-design .nl-header>.nl-shell>.is-layout-flex:first-child>div:first-child { padding-right:52px; }
  .nl-design .nl-header>.nl-shell>.is-layout-flex:first-child>div:last-child { justify-content:space-between; gap:12px; }
  .nl-design .nl-header>.nl-shell>.wp-block-group:has(>.wp-block-navigation) {
    grid-column:2; grid-row:1; align-self:start; margin-top:12px!important; padding:0!important;
  }
  .nl-design .nl-header figure img { width:190px!important; }
  .nl-design .nl-header p { max-width:32ch; }
  .nl-design .nl-header .nl-actions { width:auto; margin:0; order:0; }
  .nl-design .nl-header .nl-actions .wp-block-button { width:auto; }
  .nl-design .nl-header .wp-block-button__link { font-size:.8125rem!important; padding:10px 12px; min-height:44px; }
  .nl-design .nl-utility { display:none; }
  .nl-design :is(.nl-overview-grid,.nl-product-grid .wc-block-product-template,.nl-expertise-grid,.nl-category-grid,.nl-benefits-grid,.nl-footer-grid,.nl-contact-grid) {
    grid-template-columns:minmax(0,1fr); gap:24px;
  }
  .nl-design .nl-heading-row { flex-direction:column; align-items:flex-start; }
  .nl-design .nl-hero-image { aspect-ratio:3/2; }
  .nl-design .nl-hero-image img { object-fit:cover; }
  .nl-design .nl-overview-filters { padding:20px; flex-direction:column; align-items:stretch; gap:16px; }
  .nl-design .nl-overview-filters p { flex:0 0 auto; width:100%; }
  .nl-design main .wp-block-buttons:not(.nl-slider-controls) { align-items:stretch; }
  .nl-design main .wp-block-buttons:not(.nl-slider-controls)>.wp-block-button { width:100%; }
  .nl-design main .wp-block-buttons:not(.nl-slider-controls) .wp-block-button__link { width:100%; }
  .nl-design main .wp-block-group.has-background:not(:where(.nl-home *,.nl-design-original,.nl-design-original *)) { padding:24px!important; }
  .nl-design main .wp-block-cover { min-height:300px!important; padding:24px; }
  .nl-design main .wp-block-cover .wp-block-cover__inner-container { width:100%; }
  .nl-design .nl-footer-bottom { flex-direction:column; gap:12px; }
  .nl-design .nl-footer-brand { grid-column:auto; }
  .nl-design .nl-related-products { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
  .nl-design { scroll-behavior:auto; }
  .nl-design :is(.nl-expertise-card,.wp-block-button__link) { transition:none; }
  .nl-design :is(.nl-expertise-card,.wp-block-button__link):hover { transform:none; }
}
