/* Laprozen: shared styles for the product pages and the homepage product sections,
   both generated by scripts/build-pages.mjs. Theme tokens: primary #F26E2F, text #111,
   headings "dinbk", body "din-liga" (the fonts arrive with the theme stylesheets). */
:root {
  --lz-primary: #F26E2F;
  --lz-primary-dark: #d95c1f;
  --lz-text: #111;
  --lz-muted: #555;
  --lz-border: #e6e6e6;
  --lz-bg: #fafafa;
  --lz-head: "dinbk", Jost, sans-serif;
  --lz-med: "dinmd", Jost, sans-serif;
  --lz-body: "din-liga", Jost, sans-serif;
}
.lz-wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.lz-section { padding: 64px 0; }
.lz-section--alt { background: var(--lz-bg); }
.lz-title { font-family: var(--lz-head); font-weight: 500; color: var(--lz-primary); font-size: 48px; line-height: 1.1; text-transform: uppercase; text-align: center; margin: 0 0 8px; }
.lz-h2 { font-family: var(--lz-head); font-weight: 500; color: var(--lz-text); font-size: 34px; line-height: 1.15; margin: 0 0 10px; }
.lz-h3 { font-family: var(--lz-head); font-weight: 500; color: var(--lz-text); font-size: 24px; line-height: 1.2; text-transform: uppercase; margin: 0 0 6px; padding-left: 14px; border-left: 4px solid var(--lz-primary); }
.lz-h4 { font-family: var(--lz-head); font-weight: 500; font-size: 22px; color: var(--lz-text); margin: 0 0 12px; }
.lz-lead { font-family: var(--lz-body); font-size: 18px; line-height: 1.5; color: var(--lz-muted); margin: 0 0 28px; max-width: 760px; }
.lz-center { text-align: center; }
.lz-center .lz-lead { margin-left: auto; margin-right: auto; }
.lz-btn { display: inline-block; background: var(--lz-primary); color: #fff !important; font-family: var(--lz-med); font-size: 15px; line-height: 1; padding: 14px 28px; border-radius: 3px; text-decoration: none !important; letter-spacing: .2px; transition: background .2s, transform .2s; }
.lz-btn:hover { background: var(--lz-primary-dark); }
.lz-btn--sm { font-size: 14px; padding: 12px 22px; }
.lz-btn--dark { background: #111; }
.lz-btn--dark:hover { background: #333; }

/* ---------- product page: hero ---------- */
.lz-hero { position: relative; min-height: 82vh; display: flex; align-items: center; background: #0d0d0d var(--lz-hero-bg) center / cover no-repeat; overflow: hidden; }
.lz-hero { --lz-hero-fade: .62; --lz-hero-fade-end: 62%; }
.lz-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,var(--lz-hero-fade)) 0%, rgba(0,0,0,calc(var(--lz-hero-fade) * .45)) 42%, rgba(0,0,0,0) var(--lz-hero-fade-end)); }
.lz-hero--light { --lz-hero-fade: .78; }
.lz-hero--light::before { background: linear-gradient(90deg, rgba(255,255,255,var(--lz-hero-fade)) 0%, rgba(255,255,255,calc(var(--lz-hero-fade) * .45)) 42%, rgba(255,255,255,0) var(--lz-hero-fade-end)); }
.lz-hero--right::before { transform: scaleX(-1); }
.lz-hero__inner { position: relative; width: 100%; display: flex; }
.lz-hero--right .lz-hero__inner { justify-content: flex-end; }
.lz-hero__text { max-width: 560px; padding: 48px 0; }
.lz-hero__kicker { font-family: var(--lz-med); font-size: 14px; letter-spacing: 2px; text-transform: uppercase; color: var(--lz-primary); margin: 0 0 10px; }
.lz-hero__title { font-family: var(--lz-head); font-weight: 500; color: var(--lz-primary); font-size: 58px; line-height: 1.05; text-transform: uppercase; margin: 0 0 14px; }
.lz-hero__tagline { font-family: var(--lz-body); font-size: 24px; line-height: 1.3; color: #fff; margin: 0 0 22px; }
.lz-hero--light .lz-hero__tagline { color: #111; }
.lz-checks { list-style: none; margin: 0 0 28px; padding: 0; }
.lz-checks li { display: flex; gap: 12px; align-items: flex-start; font-family: var(--lz-body); font-size: 17px; line-height: 1.45; color: #fff; margin: 0 0 10px; }
.lz-hero--light .lz-checks li { color: #111; }
.lz-checks i { color: var(--lz-primary); font-size: 15px; margin-top: 4px; flex: none; }
.lz-hero__mobile { display: none; }

/* ---------- product page: intro (image + copy + badges) ---------- */
.lz-split { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.lz-split__media { background: #fff; border: 1px solid var(--lz-border); border-radius: 8px; padding: 24px; display: flex; align-items: center; justify-content: center; min-height: 320px; }
.lz-split__media img { max-width: 100%; height: auto; display: block; }
.lz-split__body p { font-family: var(--lz-body); font-size: 17px; line-height: 1.6; color: #333; margin: 0 0 16px; }
.lz-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.lz-badge { margin: 0; width: 120px; text-align: center; }
.lz-badge img { width: 110px; height: 110px; object-fit: contain; display: block; margin: 0 auto; }
.lz-block { margin: 0 0 44px; }
.lz-block:last-child { margin-bottom: 0; }
.lz-badge figcaption { font-family: var(--lz-med); font-size: 13px; color: #333; margin-top: 6px; line-height: 1.3; }

/* ---------- product page: icon / photo tiles ---------- */
.lz-tiles { display: grid; grid-template-columns: repeat(var(--lz-cols, 4), 1fr); gap: 18px; }
.lz-tile { margin: 0; background: #fff; border: 1px solid var(--lz-border); border-radius: 8px; padding: 22px 14px; text-align: center; transition: box-shadow .2s, transform .2s; }
.lz-tile:hover { box-shadow: 0 10px 30px rgba(0,0,0,.08); transform: translateY(-2px); }
.lz-tile img { width: 100%; max-width: 150px; aspect-ratio: 1; object-fit: contain; display: block; margin: 0 auto; }
.lz-tile--photo img { max-width: none; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.lz-tile figcaption { font-family: var(--lz-med); font-size: 15px; color: #111; margin-top: 12px; line-height: 1.3; }

/* ---------- product page: numbered steps ---------- */
.lz-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.lz-step { margin: 0; background: #fff; border: 1px solid var(--lz-border); border-radius: 8px; padding: 18px 14px 20px; text-align: center; }
.lz-step img { width: 100%; max-width: 170px; display: block; margin: 0 auto 12px; }
.lz-step figcaption { font-family: var(--lz-body); font-size: 15px; line-height: 1.45; color: #333; }

/* ---------- product page: galleries ---------- */
.lz-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.lz-gallery--2 { grid-template-columns: repeat(2, 1fr); }
.lz-gallery figure { margin: 0; background: #fff; border: 1px solid var(--lz-border); border-radius: 8px; padding: 18px; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; overflow: hidden; }
.lz-gallery img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ---------- product page: specifications ---------- */
.lz-specs { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: start; }
.lz-spec { width: 100%; border-collapse: collapse; font-family: var(--lz-body); font-size: 15px; margin: 0 0 28px; }
.lz-spec th, .lz-spec td { border: 1px solid var(--lz-border); padding: 11px 14px; text-align: left; vertical-align: top; line-height: 1.4; }
.lz-spec th { width: 40%; font-family: var(--lz-med); font-weight: 500; color: #111; background: var(--lz-bg); }
.lz-spec td { color: #333; }
.lz-list { margin: 0 0 22px; padding: 0 0 0 20px; font-family: var(--lz-body); font-size: 15px; line-height: 1.55; color: #333; }
.lz-list li { margin-bottom: 6px; }
.lz-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.lz-chip { font-family: var(--lz-med); font-size: 14px; background: #fff; border: 1px solid var(--lz-border); border-radius: 999px; padding: 7px 14px; color: #222; }
.lz-cta { margin-top: 12px; padding: 26px 28px; background: #111; border-radius: 8px; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.lz-cta h3 { font-family: var(--lz-head); font-weight: 500; font-size: 24px; margin: 0; color: #fff; }
.lz-cta p { font-family: var(--lz-body); color: #cfcfcf; margin: 4px 0 0; font-size: 15px; }

/* ---------- homepage: product sections ---------- */
.lz-home { padding: 56px 0 8px; }
.lz-group { margin: 0 0 56px; }
.lz-group__head { margin: 0 0 24px; }
.lz-launch { background: var(--lz-bg); padding: 56px 0 16px; margin: 0 0 24px; }
.lz-launch .lz-lead { text-align: center; margin: 0 auto 40px; }
.lz-sub { margin: 0 0 44px; }
.lz-sub__head { margin: 0 0 18px; }
.lz-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lz-cards--2 { grid-template-columns: repeat(2, 1fr); }
.lz-card { background: #fff; border: 1px solid var(--lz-border); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s; }
.lz-card:hover { box-shadow: 0 14px 40px rgba(0,0,0,.10); transform: translateY(-3px); }
.lz-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #111; }
.lz-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.lz-card:hover .lz-card__media img { transform: scale(1.04); }
.lz-card--shot .lz-card__media { background: #fff; padding: 22px; aspect-ratio: 4 / 3; box-sizing: border-box; border-bottom: 1px solid var(--lz-border); }
.lz-card--shot .lz-card__media img { object-fit: contain; }
.lz-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.lz-card__tag { font-family: var(--lz-med); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--lz-primary); margin: 0 0 6px; }
.lz-card__title { font-family: var(--lz-head); font-weight: 500; font-size: 24px; line-height: 1.15; color: #111; margin: 0 0 8px; }
.lz-card__body p { font-family: var(--lz-body); font-size: 15px; line-height: 1.55; color: #444; margin: 0 0 18px; }
.lz-card__body .lz-btn { margin-top: auto; align-self: flex-start; }

/* footer product menu grew from 4 links to the full range: keep each label on one line */
ul.lz-footer-products a { white-space: nowrap; }
ul.lz-footer-products li { margin-bottom: 0 !important; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .lz-tiles { grid-template-columns: repeat(3, 1fr); }
  .lz-steps { grid-template-columns: repeat(3, 1fr); }
  .lz-cards { grid-template-columns: repeat(2, 1fr); }
  .lz-hero__title { font-size: 46px; }
}
@media (max-width: 900px) {
  .lz-split { grid-template-columns: 1fr; gap: 28px; }
  .lz-specs { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 767px) {
  .lz-hero { min-height: 0; display: block; background-image: none !important; background-color: #0d0d0d; }
  .lz-hero--light { background-color: #f4f4f4; }
  .lz-hero::before { display: none; }
  /* the portrait banner is a CSS background so desktops never download it */
  .lz-hero__mobile { display: block; width: 100%; aspect-ratio: 900 / 973; background: #0d0d0d var(--lz-hero-bg-m) center / cover no-repeat; }
  .lz-hero__inner { padding: 0; }
  .lz-hero__text { max-width: none; padding: 26px 20px 32px; text-align: center; }
  .lz-hero__title { font-size: 34px; }
  .lz-hero__tagline { font-size: 18px; }
  .lz-checks { display: inline-block; text-align: left; }
  .lz-checks li { font-size: 15px; }
  .lz-title { font-size: 32px; }
  .lz-h2 { font-size: 26px; }
  .lz-h3 { font-size: 20px; }
  .lz-lead { font-size: 16px; }
  .lz-section { padding: 44px 0; }
  .lz-home { padding-top: 40px; }
  .lz-launch { padding-top: 40px; }
  .lz-group { margin-bottom: 40px; }
}
@media (max-width: 640px) {
  .lz-cards, .lz-cards--2 { grid-template-columns: 1fr; gap: 18px; }
  .lz-card__title { font-size: 22px; }
}
@media (max-width: 600px) {
  .lz-tiles { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .lz-tile { padding: 14px 8px; }
  .lz-tile figcaption { font-size: 13px; }
  .lz-steps { grid-template-columns: 1fr 1fr; gap: 12px; }
  .lz-gallery, .lz-gallery--2 { grid-template-columns: 1fr 1fr; gap: 12px; }
  .lz-gallery figure { padding: 10px; }
  .lz-cta { padding: 20px; }
}

/* footer row: the product column is now the tallest, so top-align the columns instead of centring */
.elementor .elementor-element.elementor-element-4fd8764.e-con { --align-items: flex-start; }

/* ---------- homepage: hero slider (replaces the Revolution Slider) ---------- */
.lz-hero-slider { position: relative; background: #111; overflow: hidden; }
.lz-hs__track { position: relative; height: clamp(480px, 42.5vw, 816px); }
.lz-hs__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; pointer-events: none; }
.lz-hs__slide.is-active { opacity: 1; pointer-events: auto; z-index: 1; }
.lz-hs__pic { display: block; width: 100%; height: 100%; }
.lz-hs__pic img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lz-hs__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.22) 45%, rgba(0,0,0,0) 65%); }
.lz-hs__slide--light::after { background: linear-gradient(90deg, rgba(255,255,255,.62) 0%, rgba(255,255,255,.22) 45%, rgba(255,255,255,0) 65%); }
.lz-hs__body { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; }
.lz-hs__text { max-width: 560px; }
.lz-hs__title { font-family: var(--lz-head); font-weight: 500; font-size: clamp(40px, 4.6vw, 72px); line-height: 1.05; color: #fff; margin: 0 0 14px; }
.lz-hs__slide--light .lz-hs__title { color: #111; }
.lz-hs__sub { font-family: var(--lz-med); font-size: clamp(17px, 1.5vw, 23px); line-height: 1.35; color: #f3f3f3; margin: 0 0 24px; }
.lz-hs__slide--light .lz-hs__sub { color: #222; }
.lz-hs__arrow { position: absolute; top: 50%; z-index: 3; width: 46px; height: 46px; margin-top: -23px; border: 0; border-radius: 50%; background: rgba(0,0,0,.35); color: #fff; font-size: 30px; line-height: 44px; text-align: center; cursor: pointer; padding: 0; transition: background .2s; }
.lz-hs__arrow:hover { background: var(--lz-primary); }
.lz-hs__arrow--prev { left: 18px; }
.lz-hs__arrow--next { right: 18px; }
.lz-hs__dots { position: absolute; left: 0; right: 0; bottom: 18px; z-index: 3; display: flex; justify-content: center; gap: 8px; }
.lz-hs__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 5px; background: rgba(255,255,255,.55); cursor: pointer; transition: width .25s, background .25s; }
.lz-hs__dot.is-active { width: 26px; background: var(--lz-primary); }
@media (max-width: 767px) {
  .lz-hs__track { height: auto; }
  .lz-hs__slide { display: flex; flex-direction: column; background: #111; }
  .lz-hs__slide--light { background: #f4f4f4; }
  .lz-hs__slide::after { display: none; }
  /* portrait banner on top, copy underneath (the banner itself is 900x973) */
  .lz-hs__pic { height: auto; aspect-ratio: 900 / 973; flex: none; }
  .lz-hs__body { position: static; flex: 1; padding: 20px 20px 40px; text-align: center; justify-content: center; }
  .lz-hs__text { max-width: none; }
  .lz-hs__title { font-size: 28px; margin-bottom: 8px; }
  .lz-hs__sub { font-size: 15px; margin-bottom: 16px; }
  .lz-hs__arrow { display: none; }
  .lz-hs__dots { bottom: 12px; }
}
