/* Product detail pages. White canvas, black copy, one red signal; the shared
   header, footer and button shape come from site-refresh.css. */
.kw-pd { background: #fff; color: #111; }
.kw-pd__shell { width: min(1240px, calc(100% - 64px)); margin: 0 auto; padding: 56px 0 104px; }
.kw-pd :is(h1, h2, h3, p, ul, ol, dl, figure) { margin: 0; }
.kw-pd :is(h1, h2, h3) { color: #111; font-weight: 650; letter-spacing: -.03em; }
.kw-pd p, .kw-pd li, .kw-pd dd { font-size: 18px; line-height: 1.62; text-wrap: pretty; }
.kw-pd strong { font-weight: 700; }
.kw-pd a:focus-visible { outline: 2px solid var(--kw-red, #c8102e); outline-offset: 3px; }

/* Opening: title and summary beside the media, one primary action. */
.kw-pd-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-areas: "media title" "media summary"; grid-template-rows: auto 1fr; column-gap: clamp(40px, 5vw, 80px); align-items: start; }
.kw-pd-hero__title { grid-area: title; font-size: clamp(38px, 3.5vw, 54px); line-height: 1.06; text-wrap: balance; }
.kw-pd-hero__media { grid-area: media; min-width: 0; }
.kw-pd-hero__summary { grid-area: summary; padding-top: 24px; }
.kw-pd-intro p + p { margin-top: 14px; }
.kw-pd-facts { display: grid; gap: 0; margin-top: 28px; }
.kw-pd-facts > div { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr); gap: 18px; padding: 12px 0; border-top: 1px solid #e3e7eb; }
.kw-pd-facts > div:last-child { border-bottom: 1px solid #e3e7eb; }
.kw-pd-facts dt { font-size: 16px; font-weight: 500; line-height: 1.5; }
.kw-pd-facts dd { margin: 0; font-size: 16px; font-weight: 650; line-height: 1.5; }
.kw-pd-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 32px; }
.kw-pd .kw-button { min-height: 52px; padding: 13px 24px; font-size: 17px; font-weight: 650; text-decoration: none; }
.kw-pd-link { color: #111; font-size: 17px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; }
.kw-pd-link:hover { color: var(--kw-red, #c8102e); }
/* The shared legacy rule strips link underlines; these are ordinary text links. */
body.kowov-oldsite-refresh .kw-pd :is(a.kw-pd-link, .kw-product-reading a) { text-decoration-line: underline !important; }

/* Media: native scroll-snap strip; thumbnails are anchors, so it works without script. */
.kw-pd-gallery__stage { position: relative; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: 12px; }
.kw-pd-gallery__stage::-webkit-scrollbar { display: none; }
.kw-pd-gallery__stage:focus-visible { outline: 2px solid var(--kw-red, #c8102e); outline-offset: 4px; }
.kw-pd-gallery__slide { flex: 0 0 100%; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; scroll-snap-align: start; overflow: hidden; background: #fff; }
.kw-pd-gallery__slide video { display: block; width: 100%; height: 100%; object-fit: contain; background: #0f1114; }
.kw-pd-gallery__zoom { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; cursor: zoom-in; }
.kw-pd-gallery__zoom img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.kw-pd-gallery__thumbs { display: flex; gap: 10px; margin-top: 14px; overflow-x: auto; padding: 3px; scrollbar-width: thin; }
.kw-pd-gallery__thumb { position: relative; flex: 0 0 auto; display: block; width: 88px; height: 66px; border: 1px solid #d8dee4; border-radius: var(--kw-button-radius, 7px); overflow: hidden; background: #fff; }
.kw-pd-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kw-pd-gallery__thumb--video img { object-fit: cover; }
.kw-pd-gallery__thumb--video::after { content: ""; position: absolute; left: 50%; top: 50%; width: 28px; height: 28px; margin: -14px 0 0 -14px; border-radius: 50%; background: rgba(15,17,20,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23fff' d='M4 2.5v7l5.5-3.5z'/%3E%3C/svg%3E") center / 12px no-repeat; }
.kw-pd-gallery__thumb[aria-current="true"] { border-color: var(--kw-red, #c8102e); box-shadow: 0 0 0 1px var(--kw-red, #c8102e); }
.kw-pd-gallery__thumb:hover { border-color: #111; }

/* Content sections keep their supplied copy, tables and photographs. */
.kw-pd__body { margin-top: 24px; }
.kw-pd-section { padding-top: 80px; scroll-margin-top: 96px; }
.kw-pd-section > h2, .kw-product-reading h2, .kw-pd-related > h2 { font-size: clamp(30px, 2.6vw, 38px); line-height: 1.15; }
.kw-pd-section__body { margin-top: 28px; }
.kw-pd-section__body > :is(p, div:not([class])) { max-width: 820px; }
.kw-pd-section__body p + p, .kw-pd-section__body div + p { margin-top: 12px; }
.kw-pd-section__body ul:not([class]), .kw-pd-section__body ol { max-width: 820px; padding-left: 1.2em; }
.kw-pd-section__body h3 { margin-top: 30px; font-size: 22px; line-height: 1.3; letter-spacing: -.015em; }
.kw-pd-section__body h3:first-child { margin-top: 0; }
.kw-pd-section__body .kowov-detail-line { margin-top: 8px; font-size: 17px; }
/* Image and copy keep the authored order (left or right); the photo column stays narrow. */
.kw-pd-section__body .kowov-spec-list--media { display: flex; flex-wrap: wrap; gap: 28px 56px; align-items: flex-start; margin: 0; padding: 0; list-style: none; }
.kw-pd-section__body .kowov-spec-list--media > li.img-item { flex: 0 1 min(40%, 440px); }
.kw-pd-section__body .kowov-spec-list--media > li.text-item { flex: 1 1 420px; min-width: 0; }
.kw-pd-section__body .kowov-spec-list--media + .kowov-spec-list--media { margin-top: 40px; }
.kw-pd-section__body .kowov-spec-list--media > li { margin: 0; padding: 0; border: 0; background: none; }
.kw-pd-section__body .kowov-spec-list--media > li.text-item:only-child { max-width: 820px; }
.kw-pd-section__body .kowov-spec-list--media .text-item div + div { margin-top: 12px; }
.kw-pd-section__body img { display: block; max-width: 100%; height: auto; }
.kw-pd-section__body .img-item img { width: 100%; max-height: 440px; object-fit: contain; }
.kw-pd-section__body .center_img { margin: 32px 0; }
.kw-pd-section__body .center_img img { margin: 0 auto; max-height: 520px; width: auto; }
.kw-pd-section__body .table-wrap { margin: 24px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kw-pd-section__body table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.45; font-variant-numeric: tabular-nums; }
.kw-pd-section__body :is(th, td) { padding: 10px 12px; border: 1px solid #d8dee4; text-align: left; vertical-align: top; }
/* Imported tables carry their header in the first row; authored tables use thead. */
.kw-pd-section__body th, .kw-pd-section__body table:not(:has(thead)) tr:first-child td { font-weight: 650; background: #fff; }
.kw-pd-section__body .table-wrap--compact { max-width: 560px; }
.kw-pd-section__body .table-wrap--compact table { min-width: 0; }
.kw-pd-section__body table p { font-size: 15px; line-height: 1.45; }

/* Application reading and technical resources: plain link lists. */
.kw-pd .kw-product-reading { padding-top: 80px; }
.kw-pd .kw-product-reading .layout { width: auto; padding: 0; }
.kw-pd .kw-product-reading ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 48px; margin-top: 24px; padding: 0; list-style: none; }
.kw-pd .kw-product-reading li { margin: 0; font-size: 17px; line-height: 1.5; }
.kw-pd .kw-product-reading a { color: #111; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.kw-pd .kw-product-reading a:hover { color: var(--kw-red, #c8102e); }
.kw-pd .kw-product-reading details { margin-top: 18px; }
.kw-pd .kw-product-reading summary { width: fit-content; cursor: pointer; padding: 6px 0; font-size: 17px; font-weight: 600; }

/* Closing enquiry: the page's one explicit contact action. */
.kw-pd-enquiry { margin-top: 96px; text-align: center; }
.kw-pd-enquiry h2 { font-size: clamp(34px, 3vw, 44px); line-height: 1.12; }
.kw-pd-enquiry p { max-width: 720px; margin: 18px auto 0; }
.kw-pd-enquiry .kw-button { display: inline-flex; margin-top: 28px; }

.kw-pd-related { margin-top: 104px; }
.kw-pd-related ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: 28px; padding: 0; list-style: none; }
.kw-pd-related__card { display: block; color: #111; text-decoration: none; }
.kw-pd-related__image { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: #fff; }
.kw-pd-related__image img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .35s ease; }
.kw-pd-related__title { display: block; margin-top: 14px; font-size: 18px; font-weight: 600; line-height: 1.35; }
.kw-pd-related__card:hover .kw-pd-related__title { color: var(--kw-red, #c8102e); }
.kw-pd-related__card:hover img { transform: scale(1.03); }

/* Full-image viewer (native dialog). */
.kw-pd-viewer { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; margin: 0; padding: 0; border: 0; background: transparent; }
.kw-pd-viewer::backdrop { background: rgba(10,12,14,.9); }
.kw-pd-viewer[open] { display: flex; align-items: center; justify-content: center; }
.kw-pd-viewer img { max-width: 92vw; max-height: 88vh; object-fit: contain; background: #fff; }
.kw-pd-viewer__close { position: fixed; top: 20px; right: 20px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: #fff; color: #111; font-size: 28px; line-height: 1; cursor: pointer; }
.kw-pd-viewer__close:focus-visible { outline: 3px solid var(--kw-red, #c8102e); outline-offset: 3px; }

@media (max-width: 1100px) {
  .kw-pd-related ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kw-pd-section__body .kowov-spec-list--media { gap: 24px 40px; }
}
@media (max-width: 900px) {
  .kw-pd__shell { width: calc(100% - 40px); padding: 36px 0 80px; }
  .kw-pd-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "media" "summary"; grid-template-rows: auto; }
  .kw-pd-hero__title { margin-bottom: 16px; }
  /* One column: the quotation action follows the opening sentence and the spec lines
     come after it, so the action stays near the first screen. */
  .kw-pd-hero__summary { display: flex; flex-direction: column; padding-top: 20px; }
  .kw-pd-actions { order: 1; margin-top: 20px; }
  .kw-pd-facts { order: 2; margin-top: 28px; }
  .kw-pd-section { padding-top: 64px; }
  .kw-pd-section__body .kowov-spec-list--media { flex-direction: column; }
  .kw-pd-section__body .kowov-spec-list--media > li { flex: none; width: 100%; }
  .kw-pd-section__body .img-item img { max-height: 360px; }
  .kw-pd .kw-product-reading ul { grid-template-columns: minmax(0, 1fr); }
  .kw-pd-related ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
}
@media (max-width: 600px) {
  .kw-pd__shell { width: calc(100% - 28px); padding-top: 28px; }
  .kw-pd p, .kw-pd li, .kw-pd dd { font-size: 17px; }
  .kw-pd-hero__title { font-size: 34px; }
  .kw-pd-gallery__thumb { width: 72px; height: 54px; }
  .kw-pd-actions .kw-button { width: 100%; justify-content: center; }
  .kw-pd-enquiry { margin-top: 72px; }
  .kw-pd-related { margin-top: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  .kw-pd-gallery__stage { scroll-behavior: auto; }
  .kw-pd-related__image img { transition: none; }
}
