/* Z10 Safety site styles, loaded after the Elementor/GeneratePress CSS on every page.
   Brand colours from the Elementor kit: navy #00354d, teal #009ba4, green #009640
   (#007a33 where white text needs 4.5:1 contrast). */

:root {
  --z10-navy: #00354d;
  --z10-navy-dark: #00283a;
  --z10-teal: #009ba4;
  --z10-teal-text: #00737a;
  --z10-green: #009640;
  --z10-green-dark: #007a33;
  --z10-ink: #1d1d1b;
  --z10-muted: #4f5b60;
  --z10-line: #dbe3e6;
  --z10-soft: #f4f7f8;
  --z10-radius: 8px;
  --z10-font: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

/* ---- basics ---------------------------------------------------------------------------- */
html { scroll-padding-top: 120px; }                     /* anchors land below the sticky header (compact once you scroll) */
@media (max-width: 767px) { html { scroll-padding-top: 16px; } }   /* the header does not stick on phones */
body { -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; }
.z10-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.z10-icon { width: 1.1em; height: 1.1em; fill: currentColor; flex: none; vertical-align: -0.15em; }
:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

.z10-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 10px 22px; border-radius: 6px; border: 2px solid transparent;
  font-family: var(--z10-font); font-size: 16px; font-weight: 800; line-height: 1.2; text-decoration: none !important;
  cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.z10-button--primary { background: var(--z10-green-dark); border-color: var(--z10-green-dark); color: #fff !important; }
.z10-button--primary:hover { background: #00662b; border-color: #00662b; }
.z10-button--light { background: #fff; border-color: var(--z10-navy); color: var(--z10-navy) !important; }
.z10-button--light:hover { background: var(--z10-soft); }
.z10-button--ghost { background: transparent; border-color: #fff; color: #fff !important; }
.z10-button--ghost:hover { background: rgba(255, 255, 255, .14); }
.z10-button[disabled] { opacity: .6; cursor: wait; }

/* ---- header: contact bar, and no see-through when it sticks ------------------------------ */
[data-elementor-type="header"] .elementor-element-4590308,
[data-elementor-type="header"] .elementor-sticky--active { background-color: #f7f6f6 !important; }
.z10-topbar { background: var(--z10-navy); color: #fff; font-family: var(--z10-font); width: 100%; }
.z10-topbar__inner {
  max-width: 1200px; margin: 0 auto; padding: 6px 20px; min-height: 40px;
  display: flex; align-items: center; justify-content: flex-end; gap: 6px 22px; flex-wrap: wrap;
}
.z10-topbar__text { margin-right: auto; font-size: 14px; color: #cfe6ea; }
.z10-topbar__link { display: inline-flex; align-items: center; gap: 7px; color: #fff !important; font-size: 15px; font-weight: 700; text-decoration: none; }
.z10-topbar__link:hover span { text-decoration: underline; }
.z10-topbar__cta {
  display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border-radius: 5px;
  background: var(--z10-green-dark); color: #fff !important; font-size: 14px; font-weight: 800; text-decoration: none;
}
.z10-topbar__cta:hover { background: #00662b; }
@media (max-width: 1024px) { .z10-topbar__text { display: none; } .z10-topbar__inner { justify-content: space-between; } }
@media (max-width: 600px) {
  .z10-topbar__inner { padding: 6px 14px; gap: 10px; }
  .z10-topbar__email span { display: none; }               /* icon only */
  .z10-topbar__email { padding: 4px; }
  .z10-topbar__link { font-size: 14px; }
  .z10-topbar__cta { padding: 4px 10px; font-size: 13px; }
}

/* ---- page banners: short, so the text is on screen ---------------------------------------- */
.z10-banner > .elementor-container { min-height: clamp(150px, 18vw, 250px) !important; }
.z10-banner { min-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.z10-banner:not(.z10-x) { background-attachment: scroll !important; background-position: center 45% !important; }
.z10-banner .elementor-spacer, .z10-banner .elementor-spacer-inner { height: clamp(130px, 16vw, 230px) !important; --spacer-size: clamp(130px, 16vw, 230px) !important; }
.z10-banner .swiper-slide, .z10-banner .elementor-slides-wrapper { height: clamp(180px, 22vw, 300px) !important; }
.z10-banner .swiper-slide-bg { background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; }

/* ---- readable text -------------------------------------------------------------------------- */
.entry-content .elementor-widget-text-editor p { font-size: max(15px, 1em); }
.z10-prose > .elementor-widget-container { max-width: 46rem; margin-left: auto; margin-right: auto; text-align: left !important; }
.z10-prose p, .z10-prose li { text-align: left !important; line-height: 1.65; }
.z10-prose p + p { margin-top: .9em; }
.elementor-image-box-description, .elementor-icon-box-description { font-size: 15px !important; line-height: 1.55 !important; color: #3d474b !important; }
.z10-legal .entry-content, .z10-legal .entry-content p, .z10-legal .entry-content li { font-size: 16px !important; line-height: 1.65 !important; color: #222 !important; }
.z10-legal .entry-content { max-width: 52rem; margin-left: auto; margin-right: auto; }
.z10-legal .entry-content h2, .z10-legal .entry-content h3 { margin-top: 1.6em; }
.z10-legal .inside-article { padding-left: 20px; padding-right: 20px; }

/* ---- home page ---------------------------------------------------------------------------- */
.z10-hero { position: relative; overflow: hidden; background: var(--z10-navy); color: #fff; font-family: var(--z10-font); margin-top: -35px; }
.z10-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.z10-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 40, 58, .88) 0%, rgba(0, 40, 58, .62) 45%, rgba(0, 40, 58, .12) 100%); }
.z10-hero__inner { position: relative; z-index: 1; max-width: 1140px; margin: 0 auto; padding: 72px 20px 28px; display: grid; gap: 44px; }
.z10-hero__panel { max-width: 36rem; }
.z10-hero__title { margin: 0 0 14px; color: #fff; font-size: clamp(34px, 4.4vw, 52px); font-weight: 900; line-height: 1.05; }
.z10-hero__title span { display: block; margin-top: 6px; color: #7fd6db; font-size: .62em; font-weight: 700; }
.z10-hero__lead { margin: 0 0 22px; font-size: 18px; line-height: 1.55; color: #e6f2f4; }
.z10-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.z10-hero__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.z10-hero-link {
  display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 14px;
  padding: 10px 14px 10px 10px; border-radius: var(--z10-radius); background: rgba(255, 255, 255, .95);
  color: var(--z10-navy) !important; text-decoration: none !important; box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
  transition: transform .15s, box-shadow .15s;
}
.z10-hero-link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, .24); }
.z10-hero-link img { width: 64px; height: 52px; object-fit: cover; border-radius: 5px; }
.z10-hero-link__title { display: block; font-size: 17px; font-weight: 800; }
.z10-hero-link__desc { display: block; font-size: 14px; line-height: 1.35; color: var(--z10-muted); }
.z10-hero-link .z10-icon { color: var(--z10-green); }
@media (max-width: 900px) {
  .z10-hero__inner { padding: 44px 16px 20px; gap: 28px; }
  .z10-hero__links { grid-template-columns: 1fr; gap: 10px; }
  .z10-hero::after { background: linear-gradient(180deg, rgba(0, 40, 58, .82) 0%, rgba(0, 40, 58, .7) 100%); }
}
@media (max-width: 767px) { .z10-hero { margin-top: 0; } .z10-hero__lead { font-size: 16px; } }
.z10-intro { margin-top: 36px !important; margin-bottom: 8px !important; }
.z10-hero-section { padding: 0 !important; }
.z10-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 22px; padding: 10px 0 30px; }

.z10-card-widget { height: 100%; }
.z10-card {
  display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--z10-line);
  border-radius: var(--z10-radius); overflow: hidden; color: var(--z10-ink) !important; text-decoration: none !important;
  font-family: var(--z10-font); transition: box-shadow .15s, transform .15s, border-color .15s;
}
.z10-card:hover { border-color: #b9cdd2; box-shadow: 0 8px 22px rgba(0, 53, 77, .12); transform: translateY(-2px); }
.z10-card__media { display: block; aspect-ratio: 16 / 10; background: #fff; border-bottom: 1px solid #eef2f3; }
.z10-card__media img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.z10-card__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; flex: 1; }
.z10-card__title { margin: 0; color: var(--z10-green) !important; font-size: 20px !important; line-height: 1.2 !important; font-weight: 800 !important; }
.z10-card__text { font-size: 15px; line-height: 1.5; color: #3d474b; }
.z10-card__more { margin-top: auto; padding-top: 4px; display: inline-flex; align-items: center; gap: 6px; color: var(--z10-navy); font-weight: 800; font-size: 15px; }
.elementor-column:has(> .elementor-widget-wrap > .z10-card-widget) > .elementor-widget-wrap { height: 100%; }

/* ---- call to action above the footer -------------------------------------------------------- */
.z10-cta { background: #e8f3f5; border-top: 1px solid #d0e4e8; font-family: var(--z10-font); }
.z10-cta__inner { max-width: 1140px; margin: 0 auto; padding: 30px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 40px; }
.z10-cta__title { margin: 0 0 4px; color: var(--z10-navy) !important; font-size: 24px !important; line-height: 1.25 !important; font-weight: 800 !important; }
.z10-cta__text p { margin: 0; font-size: 16px; color: #33454c; }
.z10-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.z10-cta__more { display: inline-flex; align-items: center; gap: 6px; color: var(--z10-navy) !important; font-weight: 800; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) { .z10-cta__actions .z10-button { flex: 1 1 100%; } }

/* ---- footer --------------------------------------------------------------------------------- */
.z10-footer-heading { margin-top: 26px; }
.elementor-element-19a9ee4 .elementor-widget-container { color: #fff; }
.z10-lia-badge iframe { display: block; width: 160px; height: 73px; border: 0; background: transparent; }
[data-elementor-type="footer"] a[href^="tel:"], [data-elementor-type="footer"] a[href^="mailto:"] { color: #fff !important; }

/* ---- spec tables (rendered by tools/build.js from data/specs.json) -------------------------------- */
.z10-specs { max-width: 1180px; margin: 0 auto 28px; padding: 0 20px; font-family: var(--z10-font); }
.z10-specs .z10-specs__table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 0; background: #fff; border: 1px solid var(--z10-line); border-radius: var(--z10-radius); font-size: 15px; }   /* no overflow: hidden, it would clip the caption (see "spec table corners" at the end) */
.z10-specs caption { caption-side: top; text-align: left; padding: 0 0 10px; color: var(--z10-navy); font-size: 18px; font-weight: 800; }
.z10-specs .z10-specs__table th, .z10-specs .z10-specs__table td { padding: 12px 14px; border: 0; border-bottom: 1px solid #e6ecee; text-align: left; vertical-align: middle; line-height: 1.4; }
.z10-specs .z10-specs__table thead th { background: var(--z10-navy); color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; }
.z10-specs .z10-specs__table tbody tr:nth-child(even) > * { background: #f7f9fa; }
.z10-specs .z10-specs__table tbody tr:last-child > * { border-bottom: 0; }
.z10-specs .z10-specs__part { color: var(--z10-navy); font-weight: 800; white-space: nowrap; }
.z10-specs .z10-specs__downloads { width: 40%; }
.z10-specs--simple .z10-specs__part { width: 30%; }
.z10-specs td a { color: var(--z10-navy); text-decoration: underline; text-underline-offset: 2px; }
.z10-specs__none { color: #8a979c; }
.z10-dl-list { display: flex; flex-wrap: wrap; gap: 6px 10px; }
.z10-specs a.z10-dl, .z10-dl {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; min-height: 34px;
  border: 1px solid #b7ccd2; border-radius: 6px; background: #fff; color: var(--z10-navy); font-size: 13px; font-weight: 800; line-height: 1.15; text-decoration: none;
}
.z10-dl small { font-size: 12px; font-weight: 400; color: #55666d; }
.z10-specs a.z10-dl:hover { border-color: var(--z10-navy); background: var(--z10-soft); }
.z10-specs a.z10-dl--primary { background: var(--z10-green-dark); border-color: var(--z10-green-dark); color: #fff; }
.z10-specs a.z10-dl--primary small { color: #dff1e6; }
.z10-specs a.z10-dl--primary:hover { background: #00662b; border-color: #00662b; }
.z10-dl--missing { color: #77858a; border-style: dashed; }
@media (max-width: 900px) {
  .z10-specs { padding: 0 14px; }
  .z10-specs .z10-specs__table, .z10-specs .z10-specs__table tbody, .z10-specs .z10-specs__table tr, .z10-specs .z10-specs__table th, .z10-specs .z10-specs__table td { display: block; width: 100%; }
  .z10-specs .z10-specs__table { border: 0; background: transparent; overflow: visible; }
  .z10-specs .z10-specs__table thead { display: none; }
  .z10-specs .z10-specs__table tr { margin: 0 0 14px; background: #fff; border: 1px solid var(--z10-line); border-radius: var(--z10-radius); overflow: hidden; }
  .z10-specs .z10-specs__table tbody tr:nth-child(even) > * { background: #fff; }
  .z10-specs .z10-specs__table th, .z10-specs .z10-specs__table td { display: grid; grid-template-columns: 9.5em 1fr; gap: 10px; padding: 9px 14px; border-bottom: 1px solid #edf1f2; }
  .z10-specs .z10-specs__table td::before, .z10-specs .z10-specs__table th::before { content: attr(data-label); font-size: 13px; font-weight: 800; color: #55666d; }
  .z10-specs .z10-specs__part { background: var(--z10-navy) !important; color: #fff; font-size: 17px; }
  .z10-specs .z10-specs__part::before { color: #bfe2e6 !important; }
  .z10-specs .z10-specs__downloads { grid-template-columns: 1fr !important; }
}

/* ---- brochures (Product Family) ------------------------------------------------------------- */
.z10-brochures { font-family: var(--z10-font); text-align: center; padding: 10px 0 20px; }
.z10-brochures__title { margin: 0 0 6px; color: var(--z10-green); font-size: 32px; font-weight: 800; }
.z10-brochures__intro { margin: 0 0 20px; font-size: 16px; color: #33454c; }
.z10-guides { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 48px; margin: 0; padding: 0; list-style: none; }
.z10-guide { width: 260px; display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; }
.z10-guide__cover { display: block; width: 196px; margin-bottom: 6px; }
.z10-guide__cover img { display: block; width: 100%; height: auto; border: 1px solid var(--z10-line); border-radius: 6px; box-shadow: 0 6px 18px rgba(0, 53, 77, .14); transition: transform .15s, box-shadow .15s; }
.z10-guide__cover:hover img { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(0, 53, 77, .2); }
.z10-brochures .z10-guide .z10-guide__name { margin: 4px 0 0 !important; padding: 0; font-family: var(--z10-font); font-size: 18px; font-weight: 800; line-height: 1.25; color: var(--z10-navy); }
.z10-guide__meta { margin: 0 0 6px !important; font-size: 14px; color: var(--z10-muted); }

/* ---- forms ---------------------------------------------------------------------------------- */
.z10-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.z10-form-block { font-family: var(--z10-font); }
.z10-form-block__title { margin: 0 0 6px; color: var(--z10-green); font-size: 30px; font-weight: 800; line-height: 1.2; }
.z10-form-block__intro { margin: 0 0 18px; font-size: 15px; color: #33454c; }
.z10-form { display: grid; gap: 14px; }
.z10-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 640px) { .z10-form__row { grid-template-columns: 1fr; } }
.z10-field { display: grid; gap: 5px; }
.z10-field label { font-size: 15px; font-weight: 800; color: var(--z10-ink); }
.z10-optional { font-weight: 400; color: #5b686d; font-size: 14px; }
.z10-req { color: #b3261e; }
.z10-form input[type=text], .z10-form input[type=email], .z10-form input[type=tel], .z10-form input[type=number], .z10-form input[type=date], .z10-form select, .z10-form textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #93a6ad; border-radius: 6px; background: #fff;
  font-family: var(--z10-font); font-size: 16px; color: var(--z10-ink); box-shadow: none;
}
.z10-form textarea { min-height: 140px; resize: vertical; }
.z10-form input:focus, .z10-form select:focus, .z10-form textarea:focus { border-color: var(--z10-navy); outline: 3px solid rgba(0, 155, 164, .35); outline-offset: 0; }
.z10-form__privacy { margin: 0; font-size: 14px; color: #33454c; }
.z10-form .z10-button { justify-self: start; }
.z10-form__status { margin: 0; font-size: 15px; font-weight: 700; white-space: pre-line; }   /* a message may have a second line */
.z10-form__status:empty { display: none; }
.z10-form__status.is-ok { padding: 12px 14px; border-radius: 6px; background: #e6f4ea; color: #1d5f32; }
.z10-form__status.is-error { padding: 12px 14px; border-radius: 6px; background: #fdecea; color: #8c1d18; }
.elementor-form .z10-form__status, .elementor-form .z10-form__privacy { flex: 1 1 100%; width: 100%; padding-left: calc(var(--column-gap, 10px) / 2); padding-right: calc(var(--column-gap, 10px) / 2); margin-top: 10px; }
.elementor-form .z10-form__privacy { font-size: 14px; }
.z10-accept label { font-size: 15px !important; }
.z10-accept a { text-decoration: underline; font-weight: 700; }
.elementor-form input, .elementor-form select, .elementor-form textarea { font-size: 16px !important; }   /* no zoom on iPhone */

/* contact page: form on the left, address on the right; on phones the form comes first */
.z10-form-block { container-type: inline-size; width: 100%; }
@container (max-width: 520px) { .z10-form__row { grid-template-columns: 1fr; } }
@media (min-width: 1025px) { .z10-contact-form-col { width: 56% !important; } .z10-contact-address-col { width: 44% !important; } }
.z10-contact-form-col > .elementor-widget-wrap { padding-right: 28px !important; }
@media (max-width: 767px) { .z10-contact-form-col > .elementor-widget-wrap { padding-right: 10px !important; } .z10-contact-address-col { margin-top: 26px; } }

/* ---- generated pages (search, 404) and replaced page bodies --------------------------------------- */
.z10-page { padding: 34px 0 50px; }
.z10-page .elementor-widget-container { max-width: 52rem; margin: 0 auto; font-size: 16px; line-height: 1.65; color: var(--z10-ink); font-family: var(--z10-font); }
.z10-page-title { margin: 0 0 14px; color: var(--z10-green); font-size: 38px; font-weight: 800; line-height: 1.15; }
.z10-links { display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 0; list-style: none; font-weight: 800; }
.z10-links a { color: var(--z10-navy); text-decoration: underline; }
.z10-search { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 10px; }
.z10-search input { flex: 1 1 220px; min-width: 0; min-height: 48px; padding: 10px 14px; border: 1px solid #93a6ad; border-radius: 6px; font-size: 17px; font-family: var(--z10-font); }
.z10-search input:focus { border-color: var(--z10-navy); outline: 3px solid rgba(0, 155, 164, .35); outline-offset: 0; }
.z10-search__count { margin: 6px 0 14px; color: #33454c; font-size: 15px; }
.z10-search__results { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.z10-search__results li { padding: 14px 16px; border: 1px solid var(--z10-line); border-radius: var(--z10-radius); background: #fff; }
.z10-search__results a { color: var(--z10-navy); font-size: 18px; font-weight: 800; text-decoration: none; }
.z10-search__results a:hover { text-decoration: underline; }
.z10-search__results .z10-search__url { display: block; font-size: 13px; color: #5b686d; margin: 2px 0 6px; }
.z10-search__results p { margin: 0; font-size: 15px; line-height: 1.55; color: #33454c; }
.z10-search__results mark { background: #fff0b3; color: inherit; padding: 0 1px; }
.z10-search__parts { margin-top: 6px !important; font-size: 14px !important; }

/* ---- cookie banner --------------------------------------------------------------------------- */
.z10-consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100000; background: var(--z10-navy); color: #fff; box-shadow: 0 -4px 16px rgba(0, 0, 0, .25); font-family: var(--z10-font); }
.z10-consent[hidden] { display: none; }
.z10-consent__inner { max-width: 1140px; margin: 0 auto; padding: 18px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 32px; }
.z10-consent__text { flex: 1 1 460px; }
.z10-consent__text p { margin: 0; font-size: 15px; line-height: 1.5; color: #fff; }
.z10-consent__text p + p { margin-top: 4px; }
.z10-consent__title { font-weight: 800; font-size: 17px !important; }
.z10-consent a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.z10-consent a:hover { color: #9fe3e7; }
.z10-consent__buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.z10-btn { font: inherit; font-weight: 700; font-size: 15px; line-height: 1.2; min-height: 44px; padding: 10px 20px; border-radius: 4px; border: 2px solid transparent; cursor: pointer; }
.z10-btn--accept { background: var(--z10-green-dark); border-color: var(--z10-green-dark); color: #fff; }
.z10-btn--accept:hover { background: #00662b; border-color: #00662b; }
.z10-btn--reject { background: #fff; border-color: #fff; color: var(--z10-navy); }
.z10-btn--reject:hover { background: #e6f4f5; border-color: #e6f4f5; }
@media (max-width: 640px) { .z10-consent__inner { padding: 16px; } .z10-consent__buttons { width: 100%; } .z10-btn { flex: 1 1 100%; } }
html.z10-consent-open body { padding-bottom: 150px; }
@media (max-width: 640px) { html.z10-consent-open body { padding-bottom: 260px; } }

/* ---- click-to-load Google Maps -------------------------------------------------------------- */
.z10-embed { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; min-height: 300px; padding: 24px; text-align: center; line-height: 1.45; background: #f7f6f6; border: 1px solid #e2e2e2; color: var(--z10-ink); }
.z10-embed p { margin: 0; font-size: 15px; line-height: 1.45; max-width: 34em; }
.z10-embed p:last-child { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 16px; }
.z10-embed a { color: var(--z10-navy); font-weight: 700; text-decoration: underline; }

/* ---- share link -------------------------------------------------------------------------------- */
.z10-share { margin: 10px 0; }
.z10-share__link { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border-radius: 6px; background: #0a66c2; color: #fff !important; font-weight: 800; font-size: 15px; text-decoration: none !important; font-family: var(--z10-font); }
.z10-share__link:hover { background: #084d93; }

/* ---- click-to-load YouTube ------------------------------------------------------------------- */
.z10-video { position: relative; aspect-ratio: 16 / 9; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 20px; background: var(--z10-navy); color: #fff; border-radius: var(--z10-radius); text-align: center; font-family: var(--z10-font); }
.z10-video p { margin: 0; font-size: 14px; color: #d6e9ec; max-width: 30em; }
.z10-video a { color: #fff; text-decoration: underline; }
.z10-video__play { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 22px; border: 0; border-radius: 6px; background: #fff; color: var(--z10-navy); font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; }
.z10-video__icon { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent var(--z10-green-dark); }
.z10-video.is-playing { padding: 0; background: #000; }
.z10-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--z10-radius); }

/* ---- Cookie Policy ---------------------------------------------------------------------------- */
.z10-policy h2 { color: var(--z10-green); font-size: 26px; margin: 34px 0 10px; }
.z10-policy h2:first-child { margin-top: 0; }
.z10-policy ul { list-style: disc; padding-left: 1.4em; margin: 0 0 16px; }
.z10-policy li { margin-bottom: 6px; }
.z10-policy table { width: 100%; border-collapse: collapse; margin: 14px 0 22px; font-size: 15px; }
.z10-policy th, .z10-policy td { text-align: left; vertical-align: top; padding: 10px 12px; border: 1px solid #dcdcdc; }
.z10-policy th { background: var(--z10-navy); color: #fff; font-weight: 700; }
.z10-policy tr:nth-child(even) td { background: #f7f6f6; }
.z10-policy code { font-size: 14px; background: #eef3f5; padding: 1px 5px; border-radius: 3px; }
.z10-policy .z10-btn { margin-top: 6px; }
@media (max-width: 767px) {
  .z10-policy table, .z10-policy thead, .z10-policy tbody, .z10-policy tr, .z10-policy th, .z10-policy td { display: block; }
  .z10-policy thead { display: none; }
  .z10-policy tr { margin-bottom: 14px; border: 1px solid #dcdcdc; }
  .z10-policy td { border: 0; border-bottom: 1px solid #ececec; }
  .z10-policy td::before { content: attr(data-label); display: block; font-weight: 700; color: var(--z10-navy); font-size: 13px; }
  .z10-policy tr:nth-child(even) td { background: transparent; }
}

/* ---- phones ------------------------------------------------------------------------------------ */
@media (max-width: 767px) {
  /* body text never below 16px */
  .elementor-widget-text-editor p, .elementor-widget-text-editor li, .z10-prose p, .z10-prose li { font-size: 16px !important; line-height: 1.6 !important; }
  /* product cards: photo beside the text, so nine ranges don't take nine screens */
  .z10-card { flex-direction: row; align-items: stretch; }
  .z10-card__media { flex: 0 0 112px; aspect-ratio: auto; border-bottom: 0; border-right: 1px solid #eef2f3; display: flex; align-items: center; }
  .z10-card__media img { height: auto; padding: 8px; }
  .z10-card__body { padding: 12px 14px; gap: 4px; }
  .z10-card__title { font-size: 17px !important; }
  .z10-card__text { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .z10-card__more { font-size: 14px; }
  .z10-card-grid { grid-template-columns: 1fr; gap: 12px; }
  /* footer: text away from the screen edge */
  [data-elementor-type="footer"] .elementor-column > .elementor-widget-wrap { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ---- 20 Oct 2026 ----------------------------------------------------------------------------- */
/* LinkedIn in the top bar */

/* ICEL and LIAQA logos the same height in the header */
[data-elementor-type="header"] .elementor-element-10591cc img { height: 50px !important; width: auto !important; max-width: none !important; transition: height .2s; }
[data-elementor-type="header"] .elementor-element-fd99d72 img { height: 66px !important; width: auto !important; max-width: none !important; transition: height .2s; }   /* tall logo: same visual weight as ICEL */
[data-elementor-type="header"] .elementor-element-10591cc > .elementor-widget-wrap,
[data-elementor-type="header"] .elementor-element-fd99d72 > .elementor-widget-wrap { align-content: center !important; align-items: center !important; }
[data-elementor-type="header"] .elementor-element-10591cc, [data-elementor-type="header"] .elementor-element-fd99d72 { width: auto !important; }

/* the last menu item's dropdown opens to the left, so it stays on screen */
.elementor-nav-menu--main .elementor-nav-menu > li:last-child > ul.sub-menu { left: auto !important; right: 0 !important; margin-left: 0 !important; }

/* footer bar (every page): the Z and the logos on the left; the address, then the small print, on the right */
.elementor-element-d4481ef > .elementor-container { flex-wrap: wrap; }
.elementor-element-d4481ef .elementor-element-203cdcf { width: 100% !important; }
[data-elementor-type="footer"] .elementor-element-b179712 { padding-top: 12px !important; padding-bottom: 12px !important; }
[data-elementor-type="footer"] .elementor-element-b179712 .elementor-widget-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
.z10-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 40px; max-width: 1240px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; font-family: var(--z10-font); }
.z10-footer-bottom__brand { display: flex; align-items: center; gap: 18px; }
.z10-footer-z { display: block; flex: none; line-height: 0; border: 0 !important; }
.z10-footer-z img { display: block; width: auto !important; height: 56px !important; max-width: none !important; }
.z10-footer-logos { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin: 0; padding: 0; list-style: none; }
.z10-footer-logos li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; height: 56px; padding: 5px 10px; background: #fff; border-radius: 6px; box-sizing: border-box; }
.z10-footer-logos img { height: 34px; width: auto; max-width: 96px; object-fit: contain; }
.z10-footer-logos li:has(span) img { height: 28px; }
.z10-footer-logos li span { font-size: 9px; line-height: 1; color: #33454c; white-space: nowrap; }
/* the LIA badge is a 200 x 91 page from Yoshki: shown at 62% so it matches the other tiles. It sits at the
   tile's top left at full size (not squeezed by the theme's iframe max-width: 100%), then scales down into it */
.z10-footer-logos .z10-lia-badge { width: 123px; padding: 0; overflow: hidden; justify-content: flex-start; align-items: flex-start; }
.z10-footer-logos .z10-lia-badge iframe { display: block; flex: none; width: 200px; height: 91px; max-width: none; border: 0; transform: scale(.615); transform-origin: 0 0; }
.z10-footer-bottom__info { display: grid; gap: 6px; text-align: right; }
.z10-footer-address { margin: 0 !important; font-size: 13.5px; line-height: 1.45; color: #d6e6ea; }
.z10-footer-address strong { color: #fff; }
.z10-footer-bottom__links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 18px; margin: 0; padding: 0; list-style: none; font-size: 13.5px; color: #fff; }
.z10-footer-bottom__links a { color: #fff !important; text-decoration: none; }
.z10-footer-bottom__links a:hover { text-decoration: underline; }
.z10-footer-copy { color: #9fb9c1; }
/* when the two halves don't fit side by side, centre them */
@media (max-width: 1199px) {
  .z10-footer-bottom { justify-content: center; }
  .z10-footer-bottom__info { text-align: center; }
  .z10-footer-bottom__links { justify-content: center; }
}

/* static map on Contact Us */
.z10-map { margin: 0 0 16px; font-family: var(--z10-font); }
.z10-map__link { position: relative; display: block; overflow: hidden; border: 1px solid var(--z10-line); border-radius: var(--z10-radius); }
.z10-map img { display: block; width: 100%; height: auto; transition: filter .15s; }
.z10-map__link:hover img { filter: saturate(1.15) brightness(1.02); }
.z10-map__pin { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -40px 0 0 -17px; background: var(--z10-green-dark); border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 3px 8px rgba(0, 0, 0, .35); box-sizing: border-box; }
.z10-map__pin::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; background: #fff; border-radius: 50%; }
.z10-map figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin-top: 8px; font-size: 14px; color: #4f5b60; }
.z10-map figcaption > a { font-weight: 800; color: var(--z10-navy); text-decoration: underline; }
.z10-map figcaption span a { color: inherit; text-decoration: underline; }

/* product guides */
.z10-guides-link { width: 100%; text-align: center; margin: 6px 0 34px; }
.z10-guides-more { text-align: center; margin-top: 26px !important; font-size: 15px; }
.z10-social-photo img { max-width: min(520px, 100%) !important; margin: 0 auto; display: block; border-radius: var(--z10-radius); }

/* ---- home page: headline, product tiles, links ------------------------------------------------- */
.z10-home-section { padding: 0 !important; margin-top: 0 !important; background: linear-gradient(180deg, #eef4f6 0%, #ffffff 70%); }
.z10-home { max-width: 1180px; margin: 0 auto; padding: 34px 20px 44px; font-family: var(--z10-font); }
.z10-home__intro { text-align: center; margin: 0 0 22px; }
.z10-home__title { margin: 0 0 10px; color: var(--z10-navy); font-size: clamp(24px, 3.05vw, 38px); font-weight: 900; line-height: 1.08; text-transform: uppercase; letter-spacing: .01em; }
.z10-home__lum { color: var(--z10-green); }
.z10-home__comp { color: var(--z10-teal-text); }
.z10-home__lead { margin: 0 auto; max-width: none; font-size: 18px; line-height: 1.5; color: #33454c; }
.z10-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin: 0 0 36px; padding: 0; list-style: none; }
.z10-tile { display: flex; flex-direction: column; gap: 9px; height: 100%; color: var(--z10-navy) !important; text-decoration: none !important; }
.z10-tile__img { display: block; aspect-ratio: 4 / 3; background: #fff; border: 2px solid var(--z10-green); border-radius: 10px; overflow: hidden; transition: box-shadow .15s, transform .15s; }
.z10-tile--comp .z10-tile__img { border-color: var(--z10-teal); }
.z10-tile__img img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.z10-tile:hover .z10-tile__img, .z10-tile:focus-visible .z10-tile__img { box-shadow: 0 8px 20px rgba(0, 53, 77, .14); transform: translateY(-2px); }
.z10-tile__name { font-size: 14px; font-weight: 800; line-height: 1.25; text-transform: uppercase; letter-spacing: .02em; }
.z10-home__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.z10-home__links .z10-hero-link { border: 1px solid var(--z10-line); box-shadow: none; background: #fff; }
.z10-home__links .z10-hero-link:hover { box-shadow: 0 8px 20px rgba(0, 53, 77, .12); }
.z10-home__links .z10-hero-link img[src$=".svg"] { object-fit: contain; background: #fff; }
@media (max-width: 1024px) { .z10-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } .z10-home__links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .z10-home { padding: 26px 14px 30px; }
  .z10-home__lead { font-size: 16px; }
  .z10-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .z10-home__links { grid-template-columns: 1fr; }
}

/* products intro, contact LinkedIn button */
.z10-products-intro { width: 100%; margin: 8px auto 0; }
.z10-linkedin-widget { width: 100%; margin: 4px 0 18px; }
.z10-linkedin-button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 16px; border-radius: 6px; background: #0a66c2; color: #fff !important; font-family: var(--z10-font); font-size: 15px; font-weight: 800; text-decoration: none !important; }
.z10-linkedin-button:hover { background: #084d93; }

/* the theme's top padding left a gap above the home page */
body.home .site-content { padding-top: 0 !important; }
body.home .entry-content { margin-top: 0 !important; }
/* Elementor pulled the first section of each page up under the old (shorter) header; with the contact bar
   the header is taller, so start every page below it */
.entry-content > [data-elementor-type="wp-post"] > .elementor-section:first-child,
.entry-content > [data-elementor-type="wp-page"] > .elementor-section:first-child { margin-top: 0 !important; }
.z10-products-intro p { color: #1d1d1b !important; }
.z10-products-intro a { color: var(--z10-navy) !important; text-decoration: underline; }
.z10-nowrap { white-space: nowrap; }

/* ---- footer link columns: Product Range, Technology Hub, Customer Information - on the home page only --- */
body:not(.home) [data-elementor-type="footer"] .elementor-element-729d277 { display: none !important; }
[data-elementor-type="footer"] .elementor-element-729d277 { padding-top: 26px !important; padding-bottom: 20px !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 { margin-top: 6px !important; margin-bottom: 0 !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 > .elementor-container { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.15fr); gap: 0 32px; max-width: 1240px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 > .elementor-container > .elementor-column { width: auto !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 .elementor-column > .elementor-widget-wrap { padding: 0 !important; margin: 0 !important; align-content: flex-start; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 .elementor-widget:not(:last-child) { margin-bottom: 0 !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 .elementor-heading-title { font-size: 19px !important; line-height: 1.2 !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 .elementor-widget-heading > .elementor-widget-container { margin: 0 0 10px !important; padding: 0 !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 .elementor-widget-wp-widget-nav_menu > .elementor-widget-container { margin: 0 !important; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 ul.menu { margin: 0; padding: 0; list-style: none; }
[data-elementor-type="footer"] .elementor-element-cb0b0e0 ul.menu li { margin: 0; padding: 2px 0; font-size: 14px; line-height: 1.45; color: #fff; }
@media (max-width: 1024px) {
  [data-elementor-type="footer"] .elementor-element-cb0b0e0 > .elementor-container { gap: 0 24px; }
}
@media (max-width: 860px) {
  [data-elementor-type="footer"] .elementor-element-cb0b0e0 > .elementor-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 24px; }
}

/* ---- products page: intro beside the product guides button ------------------------------------- */
.z10-products-top { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 40px; align-items: start; }
.z10-products-top > .elementor-widget { width: auto; margin: 0 !important; }
.z10-products-top .z10-products-intro { margin: 0; }
.z10-products-top__actions { padding-top: 2px; }
.elementor-element-38e14843 { margin-top: 0 !important; }
.elementor-element-1d596b89 { margin-top: 0 !important; margin-bottom: 0 !important; }
.elementor-element-1d596b89 > .elementor-container { max-width: 1120px !important; }
.elementor-element-39f54ab0 { padding: 20px 0 8px !important; }
.elementor-element-56bbe0b9 { padding-top: 22px !important; }
.z10-products-intro .z10-products-intro__lead { margin: 0 0 10px !important; font-size: 21px !important; font-weight: 800; line-height: 1.35 !important; color: var(--z10-navy) !important; }
.z10-points { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 6px; }
.z10-points li { position: relative; padding-left: 28px; color: #1d1d1b; }
.z10-points li::before { content: ""; position: absolute; left: 3px; top: .42em; width: 12px; height: 6px; border-left: 3px solid var(--z10-green); border-bottom: 3px solid var(--z10-green); transform: rotate(-45deg); }
@media (max-width: 767px) {
  .z10-products-top { grid-template-columns: 1fr; }
  .z10-products-intro .z10-products-intro__lead { font-size: 19px !important; }
}
/* contact bar on the narrowest phones: keep it on one line */
@media (max-width: 389px) {
  .z10-topbar__inner { padding: 6px 10px; gap: 8px; }
  .z10-topbar__link:not(.z10-topbar__email) .z10-icon { display: none; }
}
@media (max-width: 345px) {
  .z10-topbar__link { font-size: 13px; }
  .z10-topbar__cta { padding: 4px 8px; font-size: 12px; }
}
/* home lead: one line wherever it fits (it wraps naturally on phones) */
@media (min-width: 800px) { .z10-home__lead { white-space: nowrap; font-size: clamp(15px, 1.55vw, 19px); } }

/* ---- warranty registration: three-step form beside a "how it works" panel -------------------------- */
.z10-warranty-lead { width: 100%; }
.z10-warranty-lead p { max-width: 46rem; margin: 0 auto !important; text-align: center !important; font-size: 18px !important; line-height: 1.5 !important; color: #33454c !important; }
.z10-warranty-section { padding: 0 !important; }
.z10-warranty { display: grid; grid-template-columns: minmax(0, 1fr) 368px; gap: 26px; align-items: start; max-width: 1140px; margin: 0 auto; padding: 8px 20px 56px; font-family: var(--z10-font); box-sizing: border-box; }
.z10-form--steps { gap: 18px; }
.z10-form--steps .z10-form-block__intro { margin: 0; }
.z10-fieldset { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 16px 20px 20px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-fieldset > legend { display: flex; align-items: center; gap: 10px; padding: 0 8px; margin: 0 0 0 -8px !important; font-size: 19px; font-weight: 900; color: var(--z10-navy); }
.z10-step { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--z10-green-dark); color: #fff; font-size: 15px; font-weight: 900; }
.z10-field__hint { margin: -2px 0 2px; font-size: 14px; color: var(--z10-muted); }
.z10-field__note { margin: -4px 0 0; padding: 10px 12px; border-radius: 6px; background: #fff6e0; color: #6b4a00; font-size: 14px; }
.z10-form textarea[name=product] { min-height: 84px; }
.z10-choice { min-width: 0; margin: 0; padding: 0; border: 0; }
.z10-choice > legend { padding: 0; margin: 0 0 6px !important; font-size: 15px; font-weight: 800; color: var(--z10-ink); }
.z10-choice__options { display: flex; flex-wrap: wrap; gap: 8px; }
.z10-choice__options label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid #93a6ad; border-radius: 6px; background: #fff; font-size: 15px; font-weight: 700; color: var(--z10-ink); cursor: pointer; }
.z10-choice__options input { width: 18px; height: 18px; margin: 0; accent-color: var(--z10-green-dark); }
.z10-choice__options label:has(input:checked) { border-color: var(--z10-green-dark); background: #eaf6ee; box-shadow: inset 0 0 0 1px var(--z10-green-dark); }
.z10-choice__options label:has(input:focus-visible) { outline: 3px solid rgba(0, 155, 164, .35); }
.z10-checks { display: grid; gap: 10px; }
.z10-check { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.45; color: var(--z10-ink); cursor: pointer; }
.z10-check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--z10-green-dark); }
.z10-check a { color: var(--z10-navy) !important; font-weight: 700; text-decoration: underline; }
.z10-warranty__info { position: sticky; top: 120px; display: grid; gap: 12px; padding: 20px 22px; border-radius: 10px; background: var(--z10-soft); border: 1px solid var(--z10-line); color: var(--z10-ink); font-size: 15px; line-height: 1.5; }
.z10-warranty__head { display: flex; align-items: center; gap: 14px; }
.z10-warranty__badge { width: 72px; height: 72px; flex: none; }
.z10-warranty__info h2 { margin: 0; font-size: 21px; font-weight: 900; line-height: 1.2; color: var(--z10-navy); }
.z10-warranty__info h3 { margin: 4px 0 0; font-size: 16px; font-weight: 900; color: var(--z10-navy); }
.z10-warranty__steps { margin: 0; padding: 0 0 0 22px; display: grid; gap: 8px; }
.z10-warranty__steps li::marker { font-weight: 900; color: var(--z10-green-dark); }
.z10-warranty__info .z10-points { gap: 4px; }
.z10-warranty__info p { margin: 0; }
.z10-warranty__note { padding-top: 10px; border-top: 1px solid var(--z10-line); color: #33454c; }
.z10-warranty__links { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.z10-warranty__links a, .z10-warranty__help a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
@media (max-width: 960px) {
  .z10-warranty { grid-template-columns: 1fr; gap: 20px; }
  .z10-warranty__info { position: static; }
}
@media (max-width: 767px) {
  .z10-warranty { padding: 4px 14px 40px; }
  .z10-fieldset { padding: 14px 14px 16px; }
  .z10-warranty-lead p { font-size: 16px !important; }
  .z10-form--steps .z10-button { width: 100%; justify-self: stretch; }
}

/* ---- applications: premises types as cards -------------------------------------------------------- */
.z10-apps-intro p { max-width: 46rem; margin-left: auto !important; margin-right: auto !important; text-align: center !important; font-size: 18px !important; color: #33454c !important; }
.z10-apps-intro a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
.z10-apps { width: 100%; margin: 10px 0 40px; font-family: var(--z10-font); }
.z10-apps__title { margin: 0; text-align: center; color: var(--z10-navy); font-size: 26px; font-weight: 900; }
.z10-apps__sub { max-width: 44rem; margin: 6px auto 20px !important; text-align: center; color: #33454c; font-size: 16px; line-height: 1.5; }
.z10-apps__sub a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
.z10-apps__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.z10-app { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 14px; align-content: start; padding: 18px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-app__icon { grid-row: span 2; width: 44px; height: 44px; padding: 9px; box-sizing: border-box; border-radius: 50%; background: #eaf6ee; fill: none; stroke: var(--z10-green-dark); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.z10-app__name { margin: 0 0 4px !important; font-size: 17px !important; font-weight: 900 !important; line-height: 1.25 !important; color: var(--z10-navy) !important; }
.z10-app__eg { margin: 0 !important; font-size: 15px !important; line-height: 1.5 !important; color: #33454c !important; }
.z10-apps__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 26px 0 0 !important; }
@media (max-width: 1024px) { .z10-apps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .z10-apps__grid { grid-template-columns: 1fr; } .z10-apps-intro p { font-size: 16px !important; } }

/* ---- testing facilities: test levels graphic and comparison table --------------------------------- */
.z10-tests-section { padding: 0 !important; }
.z10-tests { max-width: 1140px; margin: 0 auto; padding: 0 20px 48px; font-family: var(--z10-font); box-sizing: border-box; }
.z10-tests__lead { max-width: 48rem; margin: 0 auto 26px; text-align: center; font-size: 18px; line-height: 1.5; color: #33454c; }
.z10-tests__lead a { color: var(--z10-green-dark) !important; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.z10-levels { margin: 0 0 30px; }
.z10-levels__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.z10-level { position: relative; display: grid; justify-items: center; align-content: start; gap: 4px; padding: 18px 12px 16px; border-radius: 10px; background: #fff; border: 1px solid var(--z10-line); text-align: center; }
.z10-level:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: -12px; width: 10px; height: 10px; border-top: 2px solid #93a6ad; border-right: 2px solid #93a6ad; transform: translateY(-50%) rotate(45deg); }
.z10-level__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 4px; border-radius: 50%; }
.z10-level__icon svg { width: 30px; height: 30px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.z10-level--sd .z10-level__icon { background: #00354d; }
.z10-level--mt .z10-level__icon { background: #00606f; }
.z10-level--ast .z10-level__icon { background: #00807a; }
.z10-level--pst .z10-level__icon { background: var(--z10-green-dark); }
/* three versions: MT, ST and AT, with AT (connected, automated) the one we point people to */
.z10-level--at .z10-level__icon { width: 64px; height: 64px; background: var(--z10-green-dark); box-shadow: 0 0 0 6px rgba(0, 122, 51, .14); }
.z10-level--at { border: 2px solid var(--z10-green-dark); box-shadow: 0 10px 26px rgba(0, 90, 40, .16); background: linear-gradient(180deg, #f1faf4, #fff 70%); }
.z10-level--at .z10-level__code { color: var(--z10-green-dark); font-size: 28px; }
.z10-level__badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); padding: 3px 12px; border-radius: 999px; background: var(--z10-green-dark); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.z10-at { margin: 0 0 30px; padding: 26px 28px 28px; border-radius: 14px; background: linear-gradient(135deg, #00354d 0%, #00606f 55%, #00703a 100%); color: #fff; box-shadow: 0 12px 30px rgba(0, 53, 77, .18); }
.z10-at__head { max-width: 46rem; margin: 0 auto 20px; text-align: center; }
.z10-at__kicker { margin: 0 0 4px; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #9fe3b8; }
.z10-at h2 { margin: 0 0 8px; color: #fff !important; font-size: 26px; font-weight: 900; }
.z10-at__head p:last-child { margin: 0; font-size: 16.5px; line-height: 1.5; color: #e2eef1; }
.z10-at__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 22px !important; padding: 0 !important; list-style: none; }
.z10-at__list li { margin: 0; padding: 16px 16px 14px; border-radius: 10px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); }
.z10-at__list li::before { content: none !important; }
.z10-at__icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 8px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.z10-at__icon svg { width: 24px; height: 24px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.z10-at__list h3 { margin: 0 0 4px; color: #fff !important; font-size: 17px; font-weight: 800; }
.z10-at__list p { margin: 0; font-size: 15px; line-height: 1.45; color: #e2eef1; }
.z10-at__small { margin: 0 auto 16px; max-width: 46rem; text-align: center; font-size: 14px; color: #c9dde2; }
.z10-at .z10-at__cta { display: flex; width: fit-content; margin: 0 auto; background: #fff !important; border-color: #fff !important; color: var(--z10-navy) !important; }
.z10-at .z10-at__cta:hover { background: #e6f4ec !important; }
.z10-tests__row--at > * { background: #f1faf4 !important; }
.z10-tests__row--at th { color: var(--z10-green-dark) !important; box-shadow: inset 4px 0 0 var(--z10-green-dark); }
@media (max-width: 760px) { .z10-at { padding: 20px 16px 22px; } .z10-at__list { grid-template-columns: 1fr; } .z10-at h2 { font-size: 22px; } }
.z10-level__code { font-size: 24px; font-weight: 900; line-height: 1; color: var(--z10-navy); }
.z10-level__name { font-size: 15px; font-weight: 800; color: var(--z10-ink); }
.z10-level__text { font-size: 14px; line-height: 1.4; color: var(--z10-muted); }
.z10-levels__scale { display: flex; justify-content: space-between; margin-top: 12px; padding: 7px 14px; border-radius: 999px; background: linear-gradient(90deg, #00354d, #00807a 60%, var(--z10-green-dark)); color: #fff; font-size: 14px; font-weight: 800; }
.z10-levels__scale span:last-child::after { content: " \2192"; }
.z10-levels__scale span:first-child::before { content: "\2190 "; }
.z10-tests__table-wrap { margin: 0 0 22px; }
.z10-tests__table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--z10-line); border-radius: 10px; overflow: hidden; font-size: 15px; line-height: 1.5; table-layout: fixed; }
.z10-tests__table th, .z10-tests__table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--z10-line); text-align: left; vertical-align: top; color: var(--z10-ink); background: #fff; }
.z10-tests__table tbody tr:last-child > * { border-bottom: 0; }
.z10-tests__table thead th { background: var(--z10-navy); color: #fff; font-weight: 800; }
.z10-tests__table thead th:first-child { width: 17%; }
.z10-tests__table thead th:nth-child(2) { width: 30%; }
.z10-tests__table thead th:nth-child(3) { width: 24%; }
.z10-tests__code { display: block; font-size: 20px; font-weight: 900; line-height: 1.1; }
.z10-tests__table tbody th { background: var(--z10-soft); font-weight: 800; color: var(--z10-navy); }
.z10-tests__table a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
.z10-tests__note { padding: 14px 16px; border-left: 4px solid var(--z10-green-dark); border-radius: 0 8px 8px 0; background: #eaf6ee; font-size: 15px; line-height: 1.5; }
.z10-tests__note p { margin: 0; }
.z10-tests__note a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
@media (max-width: 900px) {
  .z10-levels__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  /* the table becomes one card per version */
  .z10-tests__table, .z10-tests__table tbody, .z10-tests__table tr, .z10-tests__table th, .z10-tests__table td { display: block; width: auto !important; }
  .z10-tests__table { border: 0; border-radius: 0; overflow: visible; }
  .z10-tests__table thead { display: none; }
  .z10-tests__table tbody { display: grid; gap: 14px; }
  .z10-tests__table tbody tr { border: 1px solid var(--z10-line); border-radius: 10px; overflow: hidden; }
  .z10-tests__table tbody th { background: var(--z10-navy); color: #fff; border-bottom: 0; }
  .z10-tests__table td { padding: 10px 14px; }
  .z10-tests__table td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--z10-muted); }
  .z10-tests__table tbody tr:last-child > * { border-bottom: 1px solid var(--z10-line); }
  .z10-tests__table tbody tr > td:last-child { border-bottom: 0 !important; }
}
@media (max-width: 767px) {
  .z10-tests { padding: 0 14px 40px; }
  .z10-tests__lead { font-size: 16px; }
  .z10-level { padding: 14px 10px; }
}
/* technology hub overview: no visible heading or intro, so the tabs start near the top */
.elementor-element-3454773f { display: none; }
.elementor-element-3454773f:has(h1) { display: block; height: 0; overflow: hidden; }
.elementor-element-2a20c76 { margin-top: 28px !important; margin-bottom: 28px !important; }
.elementor-element-3fcc1a7d:empty, .elementor-element-3fcc1a7d { min-height: 0; }

/* ---- case studies: project cards and a static gallery ---------------------------------------------- */
.z10-cases-section { padding: 0 !important; }
.z10-cases { max-width: 1140px; margin: 0 auto; padding: 0 20px 48px; font-family: var(--z10-font); box-sizing: border-box; }
.z10-cases__lead { max-width: 46rem; margin: 0 auto 26px; text-align: center; font-size: 18px; line-height: 1.5; color: #33454c; }
.z10-cases__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.z10-case { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-case__img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.z10-case__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px 18px 18px; }
.z10-case__meta { margin: 0 !important; font-size: 13px !important; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--z10-teal-text) !important; }
.z10-case__name { margin: 0 !important; font-size: 21px !important; font-weight: 900 !important; line-height: 1.2 !important; color: var(--z10-navy) !important; }
.z10-case__text { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; color: #33454c !important; }
.z10-case__products { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: auto 0 0 !important; padding-top: 10px; font-size: 13px; }
.z10-case__products > span { width: 100%; font-weight: 800; color: var(--z10-muted); }
.z10-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px; border-radius: 999px; background: #eaf6ee; color: var(--z10-green-dark) !important; font-size: 14px; font-weight: 800; text-decoration: none !important; }
.z10-chip:hover { background: #d5eedd; }
@media (max-width: 1024px) { .z10-cases__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .z10-cases { padding: 0 14px 40px; }
  .z10-cases__lead { font-size: 16px; }
  .z10-cases__grid { grid-template-columns: 1fr; }
}
/* ---- warranty form: three steps as tabs, product lines from the picker ------------------------------ */
.z10-warranty-section .z10-warranty { padding-top: 0; }
.z10-wizard { gap: 0; }
.z10-wizard__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0; margin: 0 0 14px; border-bottom: 2px solid var(--z10-line); }
.z10-wizard__tab { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin: 0 0 -2px; padding: 8px 10px; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--z10-muted); font-family: var(--z10-font); font-size: 16px; font-weight: 800; cursor: pointer; }
.z10-wizard__tab .z10-step { background: #93a6ad; }
.z10-wizard__tab[aria-selected="true"] { color: var(--z10-navy); border-bottom-color: var(--z10-green-dark); }
.z10-wizard__tab[aria-selected="true"] .z10-step, .z10-wizard__tab.is-done .z10-step { background: var(--z10-green-dark); }
.z10-wizard__tab:hover { color: var(--z10-navy); }
.z10-wizard__tab:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: -3px; }
.z10-wizard__step { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 18px 20px 20px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-wizard__step[hidden] { display: none; }
.z10-wizard .z10-form__status { margin: 0 0 12px; }
.z10-wizard__nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 4px; }
.z10-wizard__nav > :only-child { margin-left: auto; }
.z10-wizard__nav .z10-button { justify-self: auto; }
.z10-form__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@container (max-width: 520px) { .z10-form__row--3 { grid-template-columns: 1fr; } }
/* chosen products */
.z10-picked { border: 1px solid var(--z10-line); border-radius: 8px; overflow: hidden; }
.z10-picked__head, .z10-item { display: grid; grid-template-columns: minmax(0, 1fr) 96px 40px; gap: 10px; align-items: center; padding: 4px 6px 4px 12px; }
.z10-picked__head { padding-top: 5px; padding-bottom: 5px; background: var(--z10-soft); font-size: 13px; font-weight: 800; color: var(--z10-muted); }
.z10-picked__head[hidden] { display: none; }
.z10-items { max-height: 112px; overflow-y: auto; overscroll-behavior: contain; }
.z10-item + .z10-item { border-top: 1px solid var(--z10-line); }
.z10-item__product { min-width: 0; }
.z10-item__code { display: block; font-weight: 900; color: var(--z10-navy); }
.z10-item__desc { display: block; font-size: 14px; color: var(--z10-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.z10-form .z10-item__qty { min-height: 40px; height: 40px; padding: 6px 10px; }
.z10-item__remove { width: 40px; height: 40px; padding: 0; border: 1px solid #93a6ad; border-radius: 6px; background: #fff; color: var(--z10-muted); font-size: 22px; line-height: 1; cursor: pointer; }
.z10-item__remove:hover { border-color: #b3261e; color: #b3261e; }
.z10-picked__empty { margin: 0; padding: 14px; text-align: center; color: var(--z10-muted); font-size: 15px; }
.z10-picked__empty[hidden] { display: none; }
.z10-picked__empty.is-error { background: #fdecea; color: #8c1d18; font-weight: 800; }
.z10-picked__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 6px 6px 12px; border-bottom: 1px solid var(--z10-line); }
.z10-picked__title { font-size: 15px; font-weight: 800; color: var(--z10-ink); }
.z10-picked__count { margin-left: 6px; font-weight: 700; color: var(--z10-muted); }
.z10-items__add { justify-self: start; padding: 9px 14px; border: 1px dashed var(--z10-navy); border-radius: 6px; background: #fff; color: var(--z10-navy); font-family: var(--z10-font); font-size: 15px; font-weight: 800; cursor: pointer; }
.z10-items__add:hover { background: var(--z10-soft); }
/* confirm step: what's being sent */
.z10-summary { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 16px; margin: 0; padding: 12px 14px; border-radius: 8px; background: var(--z10-soft); font-size: 15px; }
.z10-summary dt { font-weight: 800; color: var(--z10-muted); }
.z10-summary dd { margin: 0; color: var(--z10-ink); overflow-wrap: anywhere; }
/* the product picker pop-up */
.z10-picker { width: min(640px, calc(100vw - 32px)); max-height: min(720px, calc(100vh - 48px)); padding: 0; border: 0; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); font-family: var(--z10-font); color: var(--z10-ink); }
.z10-picker[open] { display: flex; flex-direction: column; }
.z10-picker::backdrop { background: rgba(0, 40, 58, .55); }
.z10-picker__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px 8px; }
.z10-picker__head h2 { margin: 0; font-size: 21px; font-weight: 900; color: var(--z10-navy); }
.z10-picker__x { display: grid; place-items: center; flex: none; width: 40px; height: 40px; padding: 0 !important; margin: 0; border: 0; border-radius: 6px; background: var(--z10-soft); color: var(--z10-navy); line-height: 1; cursor: pointer; }
.z10-picker__x svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.z10-picker__x:hover { background: #e6eef1; }
.z10-picker__hint { margin: -4px 18px 8px; font-size: 14px; color: var(--z10-muted); }
.z10-picker__search { padding: 0 18px 10px; }
.z10-picker__search input { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #93a6ad; border-radius: 6px; font-family: inherit; font-size: 16px; box-sizing: border-box; }
.z10-picker__search input:focus { border-color: var(--z10-navy); outline: 3px solid rgba(0, 155, 164, .35); }
.z10-picker__list { flex: 1; min-height: 160px; overflow-y: auto; padding: 0 18px 8px; border-top: 1px solid var(--z10-line); border-bottom: 1px solid var(--z10-line); }
.z10-picker__group { margin: 0; padding: 0; border: 0; min-width: 0; }
.z10-picker__group[hidden] { display: none; }
.z10-picker__group > legend { padding: 12px 0 4px; font-size: 14px; font-weight: 900; letter-spacing: .03em; text-transform: uppercase; color: var(--z10-teal-text); }
.z10-picker__item { display: grid; grid-template-columns: minmax(0, 1fr) 76px; align-items: center; gap: 10px; padding: 4px 6px 4px 8px; border-radius: 6px; }
.z10-picker__pick { display: grid; grid-template-columns: 22px minmax(120px, max-content) minmax(0, 1fr); align-items: center; gap: 10px; min-height: 36px; cursor: pointer; }
.z10-picker .z10-picker__qty, .z10-picklist .z10-picker__qty { width: 76px !important; height: 36px !important; min-height: 0 !important; margin: 0 !important; padding: 4px 8px !important; border: 1px solid #93a6ad !important; border-radius: 6px !important; background: #fff !important; color: var(--z10-ink) !important; font-family: inherit; font-size: 15px !important; line-height: 1.2 !important; box-sizing: border-box; }
.z10-picker__item:not(:has(input:checked)) .z10-picker__qty { opacity: .55; }
.z10-picker__item[hidden] { display: none; }
.z10-picker__item:hover { background: var(--z10-soft); }
.z10-picker__item:has(input:checked) { background: #eaf6ee; }
.z10-picker__item input { width: 20px; height: 20px; margin: 0; accent-color: var(--z10-green-dark); }
.z10-picker__code { font-weight: 900; color: var(--z10-navy); }
.z10-picker__desc { font-size: 14px; color: var(--z10-muted); }
.z10-picker__none { margin: 16px 0; color: var(--z10-muted); }
.z10-picker__none[hidden] { display: none; }
.z10-picker__other { padding: 10px 18px; }
.z10-picker__other label { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 800; color: var(--z10-muted); }
.z10-picker__other div { display: flex; gap: 8px; }
.z10-picker__other input { flex: 1; min-width: 0; min-height: 42px; padding: 8px 12px; border: 1px solid #93a6ad; border-radius: 6px; font-family: inherit; font-size: 16px; }
.z10-picker__foot { display: flex; align-items: center; gap: 10px; padding: 12px 18px 16px; }
.z10-picker__count { margin-right: auto; font-weight: 800; color: var(--z10-navy); }
@media (max-width: 640px) {
  .z10-picker { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; margin: 0; }
  .z10-picker__pick { grid-template-columns: 22px minmax(0, 1fr); }
  .z10-picker__desc { grid-column: 2; margin-top: -6px; }
  .z10-wizard__tab { flex-direction: column; gap: 2px; font-size: 13px; min-height: 58px; }
  .z10-wizard__step { padding: 14px; }
}
/* fit the page: a smaller title and a shorter panel */
.z10-warranty-lead p { font-size: 16px !important; }

/* warranty, one column as wide as the account application, the 5 year badge beside the title: step 1 (the
   5 year warranty points, you, and the purchase), step 2 (the product list on the page), step 3 (confirm) */
.z10-warranty--single { grid-template-columns: minmax(0, 1fr); max-width: 900px; gap: 16px; }
.z10-title-badged { display: flex; align-items: center; justify-content: center; gap: 14px; }
.z10-title-badge { flex: none; width: 58px; height: 58px; }
.z10-warranty__intro { display: grid; gap: 6px; padding: 12px 16px; border-radius: 8px; background: var(--z10-soft); color: var(--z10-ink); font-size: 14.5px; line-height: 1.45; }
.z10-warranty__intro h2 { margin: 0; font-size: 17px; font-weight: 900; line-height: 1.2; color: var(--z10-navy); }
/* auto columns: each point takes the width its text needs, so the bold lines stay on one line where there's room */
.z10-warranty__intro .z10-warranty__steps { display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; gap: 4px 26px; margin: 0; padding-left: 18px; }
.z10-warranty__intro .z10-warranty__note { margin: 2px 0 0; padding-top: 8px; font-size: 14px; }
.z10-warranty__ask { margin: 0 !important; text-align: center; }
.z10-warranty__small { font-size: 13px; color: var(--z10-muted); }
.z10-warranty__ask a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
.z10-warranty--single .z10-address + .z10-address { margin-top: 6px; }
.z10-picklist { display: grid; gap: 10px; }
.z10-picklist__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.z10-picklist .z10-picker__search { flex: 1 1 320px; padding: 0; }
.z10-picklist__count { margin: 0; font-weight: 800; color: var(--z10-muted); }
.z10-picklist__count.is-set { color: var(--z10-green-dark); }
.z10-picklist__hint { margin: -4px 0 0; font-size: 14px; color: var(--z10-muted); }
.z10-picklist .z10-picker__list { max-height: min(62vh, 620px); min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 10px 10px; border: 1px solid var(--z10-line); border-radius: 8px; }
.z10-picklist .z10-picker__group { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; }
@media (max-width: 900px) { .z10-picklist .z10-picker__group { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.z10-picklist .z10-picker__group[hidden] { display: none; }   /* other ranges, or no match for the search */
/* a floated legend is laid out like any other child, so it sits in the grid right above its products */
.z10-picklist .z10-picker__group > legend { float: left; width: 100%; grid-column: 1 / -1; margin: 0; padding: 12px 0 4px; }
.z10-picklist .z10-picker__pick { grid-template-columns: 22px minmax(0, 1fr); }
.z10-picklist .z10-picker__desc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.z10-picklist .z10-picker__code { cursor: help; text-decoration: underline dotted rgba(0, 53, 77, .45); text-underline-offset: 3px; }
.z10-picklist .z10-picker__other { padding: 0; }
.z10-picklist .z10-picked__empty { padding: 10px; border-radius: 6px; }
/* warranty: the three steps share one space (the tallest sets the height), so moving between them doesn't
   change the size. The list in step 2 fills what's left and scrolls; Back and Next stay at the bottom. */
form[data-z10-form="warranty"].z10-wizard { grid-template-columns: minmax(0, 1fr); }
form[data-z10-form="warranty"] .z10-wizard__step { grid-row: 3; grid-column: 1; display: flex; flex-direction: column; gap: 10px; }
form[data-z10-form="warranty"] .z10-wizard__step[hidden] { display: flex !important; visibility: hidden; }
form[data-z10-form="warranty"] .z10-wizard__nav { margin-top: auto; padding-top: 4px; }
form[data-z10-form="warranty"] .z10-picklist { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
form[data-z10-form="warranty"] .z10-picklist .z10-picker__list { flex: 1 1 0; min-height: 150px; max-height: none; }
/* step 3: Back on the left, Print and Register together on the right */
form[data-z10-form="warranty"] #w-step-3 .z10-wizard__nav { justify-content: flex-start; }
form[data-z10-form="warranty"] #w-step-3 .z10-print { margin-left: auto; }
/* Register is greyed out until the three policy boxes are ticked */
.z10-button[data-z10-needs-ticks]:disabled, .z10-button[data-z10-needs-ticks]:disabled:hover { opacity: .45; cursor: not-allowed; filter: grayscale(.6); }
/* step 3: the details, then the products as a tidy list */
.z10-sumlist { flex: 1 1 0; min-height: 150px; display: flex; flex-direction: column; gap: 6px; }
.z10-sumlist__head { margin: 0 !important; font-size: 15px; font-weight: 900; color: var(--z10-navy); }
/* one grid for the whole list (each line a subgrid), so the codes, ranges and quantities line up */
.z10-sumlist ul { flex: 1 1 0; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: 46px max-content minmax(0, 1fr) max-content; align-content: start; column-gap: 16px; margin: 0; padding: 0; list-style: none; }
.z10-sumlist li { grid-column: 1 / -1; display: grid; grid-template-columns: 46px minmax(10em, max-content) minmax(0, 1fr) max-content; grid-template-columns: subgrid; align-items: center; padding: 5px 14px 5px 8px; font-size: 14.5px; }
/* the lines carry the borders, so the spare space below them stays plain */
.z10-sumlist li { border: 1px solid var(--z10-line); border-top-width: 0; background: #fff; }
.z10-sumlist li:first-child { border-top-width: 1px; border-radius: 8px 8px 0 0; }
.z10-sumlist li:last-child { border-radius: 0 0 8px 8px; }
.z10-sumlist li:only-child { border-radius: 8px; }
.z10-sumlist li img.z10-sumlist__img { display: block; width: 46px; height: 32px; max-width: none; object-fit: contain; }   /* fixed size, so every line is the same height */
.z10-sumlist__code { font-weight: 900; color: var(--z10-navy); white-space: nowrap; }
.z10-sumlist__range { color: var(--z10-muted); font-size: 13.5px; }
.z10-sumlist__qty { font-weight: 800; color: var(--z10-ink); white-space: nowrap; }
@media (max-width: 520px) {
  .z10-sumlist ul { grid-template-columns: 40px max-content minmax(0, 1fr); column-gap: 10px; }
  .z10-sumlist li { grid-template-columns: 40px max-content minmax(0, 1fr); grid-template-columns: subgrid; }
  .z10-sumlist__range { display: none; }
  .z10-sumlist__qty { justify-self: end; }
  .z10-sumlist li img.z10-sumlist__img { width: 40px; height: 28px; }
}
form[data-z10-form="warranty"] .z10-summary { grid-template-columns: max-content minmax(0, 1fr) max-content minmax(0, 1fr); gap: 4px 16px; font-size: 14.5px; }
@media (max-width: 640px) { form[data-z10-form="warranty"] .z10-summary { grid-template-columns: max-content minmax(0, 1fr); } }

/* the range tiles: the product photo and the range name; the chosen one is outlined, and a badge counts ticks */
.z10-cats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.z10-cat { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 4px 4px 6px; border: 2px solid var(--z10-line); border-radius: 8px; background: #fff; color: var(--z10-navy); font-family: var(--z10-font); text-align: center; cursor: pointer; }
.z10-cat__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.z10-cat__img img { width: 100%; height: 100%; object-fit: contain; }
.z10-cat__name { font-size: 11.5px; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; }
.z10-cat:hover { border-color: #93a6ad; }
.z10-cat[aria-selected="true"] { border-color: var(--z10-green-dark); box-shadow: 0 0 0 1px var(--z10-green-dark); background: #eaf6ee; }
.z10-picklist.is-searching .z10-cat[aria-selected="true"] { border-color: var(--z10-line); box-shadow: none; background: #fff; }
.z10-cat:focus-visible { outline: 3px solid rgba(0, 155, 164, .45); outline-offset: 1px; }
.z10-cat__count { position: absolute; top: -7px; right: -7px; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--z10-green-dark); color: #fff; font-size: 12px; font-weight: 900; box-sizing: border-box; }
.z10-cat__count[hidden] { display: none; }
@media (max-width: 760px) { .z10-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* the theme recolours buttons on hover and focus; keep the tiles as designed */
.z10-cat:hover, .z10-cat:focus { color: var(--z10-navy) !important; background: #fff !important; }
.z10-cat[aria-selected="true"]:hover, .z10-cat[aria-selected="true"]:focus { background: #eaf6ee !important; }

/* a smaller, denser product list */
.z10-picklist .z10-picker__group > legend { padding: 10px 0 2px; font-size: 12.5px; }
.z10-picklist .z10-picker__item { padding: 2px 6px 2px 8px; gap: 8px; }
.z10-picklist .z10-picker__pick { gap: 8px; min-height: 30px; font-size: 14px; }
.z10-picklist .z10-picker__item input[type=checkbox] { width: 18px; height: 18px; }
.z10-picklist .z10-picker__code { font-size: 14px; }
.z10-picklist .z10-picker__desc { font-size: 12.5px; }
.z10-picklist .z10-picker__qty { width: 64px !important; height: 30px !important; padding: 2px 8px !important; font-size: 14px !important; }
.z10-picklist .z10-picker__item { grid-template-columns: minmax(0, 1fr) 64px; }
/* the product description that appears beside a code (site.js) */
.z10-tip { position: fixed; z-index: 1000; max-width: min(380px, calc(100vw - 16px)); padding: 8px 11px; border-radius: 6px; background: var(--z10-navy); color: #fff; font: 600 13.5px/1.4 var(--z10-font); box-shadow: 0 6px 20px rgba(0, 0, 0, .2); pointer-events: none; }
.z10-tip[hidden] { display: none; }
@media (hover: none) { .z10-hover-only { display: none; } }
@media (max-width: 760px) {
  .z10-warranty__intro .z10-warranty__steps { grid-template-columns: 1fr; }
  .z10-title-badge { width: 44px; height: 44px; }
  .z10-picklist .z10-picker__group { grid-template-columns: 1fr; }
}

/* ---- compliance page ------------------------------------------------------------------------------ */
.z10-compliance { width: 100%; max-width: 1000px; margin: 0 auto 48px; font-family: var(--z10-font); }
.z10-compliance__section { margin: 0 0 36px; }
.z10-tabs__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0 0 22px; border-bottom: 2px solid var(--z10-line); }
.z10-tabs .z10-tabs__tab { transition: color .12s, border-color .12s !important; min-height: 50px; margin: 0 0 -2px; padding: 8px 10px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none !important; color: var(--z10-muted) !important; font-family: var(--z10-font); font-size: 17px; font-weight: 800; line-height: 1.2; cursor: pointer; }
.z10-tabs .z10-tabs__tab:hover, .z10-tabs .z10-tabs__tab:focus { color: var(--z10-navy) !important; }
.z10-tabs .z10-tabs__tab[aria-selected="true"] { color: var(--z10-navy) !important; border-bottom-color: var(--z10-green-dark); }
.z10-tabs .z10-tabs__tab:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: -3px; }
.z10-tabs [role="tabpanel"][hidden] { display: none; }
.z10-cert { display: grid; grid-template-columns: 140px minmax(0, 1fr); grid-template-rows: 1fr auto auto 1fr; grid-template-areas: "logo ." "logo head" "logo body" "logo ."; column-gap: 32px; padding: 28px 32px; border: 1px solid var(--z10-line); border-left: 6px solid #1a3f8f; border-radius: 12px; background: linear-gradient(135deg, #fff 55%, var(--z10-soft)); }
.z10-cert__logo { grid-area: logo; align-self: center; display: block; width: 140px; height: auto; }
.z10-cert__head { grid-area: head; }
.z10-cert__body { grid-area: body; }
.z10-cert__kind { margin: 0 0 2px !important; font-size: 13px !important; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: var(--z10-teal-text) !important; }
.z10-cert h3 { margin: 0 0 10px; font-size: 24px; font-weight: 900; line-height: 1.2; color: var(--z10-navy); }
.z10-cert__body > p { margin: 0 0 14px; font-size: 17px; line-height: 1.6; color: var(--z10-ink); }
.z10-cert .z10-points li { font-size: 16px; line-height: 1.5; }
@media (max-width: 600px) {
  .z10-cert { grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: auto auto; grid-template-areas: "logo head" "body body"; column-gap: 16px; row-gap: 14px; padding: 18px 16px; }
  .z10-cert__logo { width: 64px; }
  .z10-cert__head { align-self: center; }
  .z10-cert h3 { margin: 0; font-size: 20px; }
  .z10-cert__body > p { font-size: 16px; }
}
.z10-compliance__section > h2 { margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--z10-line); font-size: 24px; font-weight: 900; color: var(--z10-navy); }
.z10-compliance__section > p { margin: 0 0 10px; font-size: 16px; line-height: 1.6; color: var(--z10-ink); }
.z10-laws { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.z10-law { padding: 16px 18px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-law--law { grid-column: 1 / -1; background: var(--z10-soft); }
.z10-law__kind { margin: 0 0 4px !important; font-size: 13px !important; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--z10-teal-text) !important; }
.z10-law h3 { margin: 0 0 8px; font-size: 17px; font-weight: 900; line-height: 1.3; color: var(--z10-navy); }
.z10-law blockquote { margin: 0; padding: 0 0 0 14px; border-left: 4px solid var(--z10-green-dark); font-size: 16px; font-style: italic; line-height: 1.55; color: var(--z10-ink); }
.z10-law .z10-points li { font-size: 15px; line-height: 1.5; }
.z10-compliance__note { color: var(--z10-muted) !important; font-size: 15px !important; }
.z10-policies { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.z10-policy { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 14px 18px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-policy__text h3 { margin: 0 0 2px; font-size: 17px; font-weight: 900; color: var(--z10-navy); }
.z10-policy__text p { margin: 0; font-size: 15px; color: #33454c; }
.z10-policy__links { display: flex; flex: none; gap: 8px; }
.z10-policy__links a { display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px; border-radius: 6px; border: 1px solid var(--z10-navy); color: var(--z10-navy) !important; font-size: 15px; font-weight: 800; text-decoration: none !important; }
.z10-policy__links a.z10-policy__pdf { background: var(--z10-navy); color: #fff !important; }
.z10-policy__links a:hover { box-shadow: 0 2px 8px rgba(0, 53, 77, .2); }
@media (max-width: 767px) {
  .z10-laws { grid-template-columns: 1fr; }
  .z10-policy { flex-direction: column; align-items: flex-start; }
}
/* each policy page: version and PDF link under the title */
.z10-policy-meta-widget { width: 100%; }
.z10-policy-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 4px 0 18px; padding: 10px 14px; border-radius: 8px; background: var(--z10-soft); border: 1px solid var(--z10-line); font-family: var(--z10-font); font-size: 15px; }
.z10-policy-meta__version { font-weight: 800; color: var(--z10-navy); }
.z10-policy-meta a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
/* test methods: self-test section and remote functions */
.z10-selftest { margin: 0 0 24px; }
.z10-selftest h2 { margin: 0 0 10px; font-size: 24px; font-weight: 900; color: var(--z10-navy); text-align: center; }
.z10-selftest > .z10-points { max-width: 34rem; margin: 0 auto 22px !important; }
.z10-selftest h3 { margin: 0 0 10px; font-size: 19px; font-weight: 900; color: var(--z10-navy); }
.z10-remote-table td { text-align: center !important; }
.z10-remote-table thead th:first-child { width: 52% !important; }
.z10-remote-table thead th:nth-child(n+2) { width: 16% !important; text-align: center; }
.z10-yes { color: var(--z10-green-dark); font-size: 20px; font-weight: 900; }
.z10-no { color: #93a6ad; }
.z10-selftest__remotes { margin: 0; font-size: 15px; color: var(--z10-muted); }
.z10-selftest__remotes a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
@media (max-width: 900px) {
  .z10-remote-table td { text-align: left !important; }
  .z10-remote-table td::before { display: inline !important; margin-right: 8px; }
}
/* case studies intro on one line where it fits */
@media (min-width: 1000px) { .z10-cases__lead { max-width: none; white-space: nowrap; font-size: clamp(15px, 1.45vw, 18px); } }

/* ---- printing (and the policy PDFs): just the content --------------------------------------------- */
@media print {
  .z10-topbar, .site-header, [data-elementor-type="header"], .site-footer, .z10-consent, .z10-share, .z10-policy-meta a,
  .elementor-location-header, .elementor-sticky__spacer, .z10-tabs__list, .button-link, .elementor-widget-button { display: none !important; }
  body, .site, .site-content, .entry-content { background: #fff !important; }
  .site-content, .inside-article { padding: 0 !important; margin: 0 !important; }
  .elementor-section, .elementor-container { max-width: none !important; }
  a { color: #00354d !important; }
  .z10-policy-meta { background: none; border: 0; padding: 0; margin: 0 0 10px; }
  h1, h2, h3 { break-after: avoid; }
  /* banner photos, spacers and button rows don't belong in a printed policy */
  .elementor-section:has(.elementor-widget-spacer):not(:has(.elementor-widget-text-editor, .elementor-widget-heading, p)),
  .elementor-section:has(.button-link), .elementor-background-overlay { display: none !important; }
  .elementor-section { background: none !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; }
  .elementor-widget-text-editor, .z10-prose, .entry-content > p { max-width: none !important; width: 100% !important; }
  .entry-content p, .entry-content li { font-size: 10.5pt !important; line-height: 1.5 !important; }
}
/* news cards: product shots and badges are shown whole; the video fills the card's picture area */
.z10-case__img--contain { object-fit: contain; padding: 14px; box-sizing: border-box; background: var(--z10-soft); }
.z10-case__video { position: relative; display: grid; place-items: center; aspect-ratio: 3 / 2; overflow: hidden; background: var(--z10-navy); text-decoration: none !important; }
.z10-case__video-img { width: 46%; height: auto; opacity: .9; transition: transform .2s ease; }
.z10-case__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 20px; border-radius: 999px; background: rgba(255, 255, 255, .95); color: var(--z10-navy); font-family: var(--z10-font); font-size: 16px; font-weight: 900; box-shadow: 0 6px 20px rgba(0, 0, 0, .3); }
.z10-case__video:hover .z10-case__play, .z10-case__video:focus-visible .z10-case__play { background: #fff; box-shadow: 0 8px 26px rgba(0, 0, 0, .4); }
.z10-case__video:hover .z10-case__video-img { transform: scale(1.04); }
.elementor-element-e703926, .elementor-element-e703926 .elementor-heading-title { text-align: center !important; }
.elementor-element-cbc3cda { margin-bottom: 14px !important; }
/* warranty page: title area tighter so the form fits on one screen */
@media (min-width: 1000px) { .z10-warranty-lead p { white-space: nowrap; max-width: none; } }
.z10-warranty__info { gap: 10px; padding: 18px 20px; }
.z10-warranty__badge { width: 60px; height: 60px; }
.z10-warranty__info h2 { font-size: 19px; }
.z10-case__num { display: inline-grid; place-items: center; min-width: 26px; height: 22px; margin-right: 6px; padding: 0 5px; border-radius: 4px; background: var(--z10-navy); color: #fff; font-size: 12px; letter-spacing: 0; }

/* ---- downloads library ---------------------------------------------------------------------------- */
.z10-dl-section { padding: 0 !important; }
.z10-dlpage { max-width: 1040px; margin: 0 auto; padding: 0 20px 48px; font-family: var(--z10-font); box-sizing: border-box; }
.z10-dlpage__lead { max-width: 46rem; margin: 0 auto 24px; text-align: center; font-size: 17px; line-height: 1.5; color: #33454c; }
.z10-dlpage__help { margin: 22px 0 0; text-align: center; font-size: 15px; color: var(--z10-muted); }
.z10-dlpage__help a, .z10-dl-none a { color: var(--z10-navy) !important; font-weight: 800; text-decoration: underline; }
.z10-dlpage h2 { margin: 0 0 12px; font-size: 22px; font-weight: 900; color: var(--z10-navy); }
.z10-dl-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 12px; }
.z10-dl-tools input[type=search] { flex: 1 1 270px; width: auto; min-width: 0; min-height: 42px; padding: 9px 12px 9px 38px; border: 1px solid #b7c6cc; border-radius: 10px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2363757b' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E") no-repeat 12px 50% / 18px; font-family: inherit; font-size: 16px; box-sizing: border-box; }
.z10-dl-tools input[type=search]:focus { border-color: var(--z10-navy); outline: 3px solid rgba(0, 155, 164, .35); }
.z10-dl-count { margin: 0; font-size: 14px; color: var(--z10-muted); }
.z10-docs { margin: 0; padding: 0; list-style: none; border: 1px solid var(--z10-line); border-radius: 10px; overflow: hidden; }
.z10-doc { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 5px 10px; background: #fff; }
.z10-doc:not([hidden]) ~ .z10-doc { border-top: 1px solid var(--z10-line); }
.z10-doc[hidden] { display: none; }
.z10-doc__icon { display: grid; place-items: center; width: 34px; height: 30px; border-radius: 6px; background: #fdecea; color: #b3261e; font-size: 11px; font-weight: 900; letter-spacing: .03em; }
.z10-doc__icon--zip { background: #fff6e0; color: #6b4a00; }
.z10-doc__icon--ies, .z10-doc__icon--ldt { background: #e6f4f5; color: var(--z10-teal-text); }
.z10-doc__title { display: block; font-size: 16px; font-weight: 800; color: var(--z10-ink); }
.z10-doc__meta { display: block; font-size: 13px; color: var(--z10-muted); }
.z10-doc__actions { display: flex; gap: 6px; }
.z10-doc__actions a { display: inline-flex; align-items: center; min-height: 36px; padding: 5px 12px; border-radius: 6px; border: 1px solid var(--z10-navy); color: var(--z10-navy) !important; font-size: 14px; font-weight: 800; text-decoration: none !important; white-space: nowrap; }
.z10-doc__actions a.z10-doc__dl { background: var(--z10-navy); color: #fff !important; }
.z10-doc__actions a:hover { box-shadow: 0 2px 8px rgba(0, 53, 77, .2); }
.z10-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin: 22px 0 0; }
.z10-pager[hidden] { display: none; }
.z10-pager__nums { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.z10-pager button { min-width: 42px; min-height: 42px; margin: 0; padding: 6px 12px; border: 1px solid var(--z10-line); border-radius: 8px; background: #fff !important; color: var(--z10-navy) !important; font-family: var(--z10-font); font-size: 15px; font-weight: 800; line-height: 1; cursor: pointer; }
.z10-pager button:hover, .z10-pager button:focus { background: #e6eef1 !important; color: var(--z10-navy) !important; }
.z10-pager button:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: 1px; }
.z10-pager button[aria-current="page"], .z10-pager button[aria-current="page"]:hover, .z10-pager button[aria-current="page"]:focus { border-color: var(--z10-navy); background: var(--z10-navy) !important; color: #fff !important; }
.z10-pager button:disabled { opacity: .45; cursor: default; background: #fff !important; }
.z10-pager__gap { display: inline-grid; place-items: end center; min-width: 20px; color: var(--z10-muted); font-weight: 800; }
@media (max-width: 600px) { .z10-pager__step { flex: 1 1 40%; } .z10-pager__nums { order: -1; flex: 1 1 100%; } }
.z10-dl-none { margin: 20px 0; padding: 16px; border-radius: 8px; background: var(--z10-soft); text-align: center; color: var(--z10-muted); }
@media (max-width: 700px) {
  .z10-dlpage { padding: 0 14px 40px; }
  .z10-doc { grid-template-columns: 40px minmax(0, 1fr); }
  .z10-doc__actions { grid-column: 2; }
}
/* news: a share button beside each title */
.z10-case__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.z10-share-btn { flex: none; display: grid; place-items: center; width: 36px; height: 36px; margin-top: -2px; padding: 0; border: 1px solid var(--z10-line); border-radius: 50%; background: #fff; color: var(--z10-navy); cursor: pointer; }
.z10-share-btn:hover { background: var(--z10-soft); border-color: var(--z10-navy); }
.z10-share-btn .z10-icon { width: 18px; height: 18px; fill: currentColor; }
.z10-case { scroll-margin-top: 0; }
/* warranty steps: compact enough for one screen */
.z10-wizard__step { gap: 10px; padding: 12px 18px 12px; }
.z10-wizard__tab { min-height: 42px; }
.z10-wizard__tabs { margin-bottom: 10px; }
/* the theme recolours every button on hover/focus; keep these as designed */
.z10-items__add:hover, .z10-items__add:focus { color: var(--z10-navy) !important; background: var(--z10-soft) !important; }
.z10-wizard__tab:hover, .z10-wizard__tab:focus { background: none !important; color: var(--z10-navy) !important; }
.z10-wizard__tab[aria-selected="false"]:not(:hover):not(:focus) { color: var(--z10-muted) !important; }
.z10-picker__x:hover, .z10-picker__x:focus { color: var(--z10-navy) !important; background: #e6eef1 !important; }
.z10-item__remove:focus { color: var(--z10-muted) !important; background: #fff !important; }
.z10-item__remove:hover { color: #b3261e !important; background: #fff !important; }
.z10-share-btn:hover, .z10-share-btn:focus { color: var(--z10-navy) !important; background: var(--z10-soft) !important; }
.z10-picker__foot .z10-button--light:hover, .z10-picker__foot .z10-button--light:focus, .z10-wizard__nav .z10-button--light:hover, .z10-wizard__nav .z10-button--light:focus { color: var(--z10-navy) !important; background: var(--z10-soft) !important; }

/* ---- PDF preview popup (View on Downloads and Product Guides) ---------------------------------- */
.z10-preview { width: min(1120px, calc(100vw - 32px)); height: calc(100vh - 32px); max-width: none; max-height: none; margin: auto; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .4); font-family: var(--z10-font); }
.z10-preview[open] { display: flex; flex-direction: column; }
.z10-preview::backdrop { background: rgba(0, 30, 44, .72); }
html:has(.z10-preview[open]) { overflow: hidden; }
.z10-preview__bar { display: flex; align-items: center; gap: 8px; padding: 8px 8px 8px 18px; background: var(--z10-navy); }
.z10-preview .z10-preview__title { flex: 1; min-width: 0; margin: 0; padding: 0; overflow: hidden; color: #fff; font-family: var(--z10-font); font-size: 17px; font-weight: 800; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.z10-preview .z10-preview__btn { display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 6px; background: transparent; color: #fff !important; font-size: 14px; font-weight: 800; text-decoration: none !important; white-space: nowrap; }
.z10-preview .z10-preview__btn--dl { border-color: #fff; background: #fff; color: var(--z10-navy) !important; }
.z10-preview .z10-preview__btn:hover, .z10-preview .z10-preview__btn:focus-visible { background: rgba(255, 255, 255, .16); color: #fff !important; }
.z10-preview .z10-preview__btn--dl:hover, .z10-preview .z10-preview__btn--dl:focus-visible { background: #e6eef1; color: var(--z10-navy) !important; }
.z10-preview .z10-preview__close { display: grid; place-items: center; flex: none; width: 40px; height: 40px; min-height: 0; margin: 0 0 0 4px; padding: 0 !important; border: 0; border-radius: 6px; background: transparent !important; color: #fff !important; line-height: 1; cursor: pointer; }
.z10-preview .z10-preview__close:hover, .z10-preview .z10-preview__close:focus-visible { background: rgba(255, 255, 255, .16) !important; }
.z10-preview__close svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.z10-preview .z10-preview__btn:focus-visible, .z10-preview .z10-preview__close:focus-visible { outline: 3px solid #7fd3d8; outline-offset: 1px; }
.z10-preview__frame { display: block; flex: 1; width: 100%; min-height: 0; border: 0; background: #525659; }
@media (max-width: 860px) { .z10-preview__btn--tab { display: none !important; } }
@media print {
  .z10-tabs [role="tabpanel"][hidden] { display: block !important; }
  .z10-tabs [role="tabpanel"] > h2.z10-sr { position: static !important; width: auto; height: auto; margin: 0 0 12px; clip: auto; overflow: visible; white-space: normal; }
}
@media (max-width: 600px) { .z10-tabs .z10-tabs__tab { font-size: 15px; padding: 8px 4px; } }

/* ---- Account Application (the warranty page layout, with four steps) ---------------------------- */
.z10-account { grid-template-columns: minmax(0, 1fr); max-width: 900px; }
.z10-role, .z10-address { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.z10-role > legend, .z10-address > legend { margin: 0 0 6px; padding: 0; font-size: 16px; font-weight: 900; color: var(--z10-navy); }
.z10-role + .z10-role, .z10-address + .z10-check, .z10-check + .z10-address { margin-top: 6px; }
.z10-check--same { width: fit-content; margin: -2px 0 2px; font-size: 14.5px; }
.z10-form .z10-form__row[hidden], .z10-form .z10-address[hidden] { display: none !important; }
.z10-address[hidden] { display: none; }
.z10-postcode-hint { color: var(--z10-green-dark); font-weight: 700; }
.z10-postcode-hint.is-bad { color: #b3261e; }
.z10-postcode-hint[hidden] { display: none; }
.z10-account__lead { margin: -6px 0 10px !important; text-align: center; font-size: 16px; line-height: 1.5; color: #33454c; }
.z10-account__lead a { color: var(--z10-navy) !important; font-weight: 800; white-space: nowrap; }
.z10-form__row--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@container (max-width: 820px) { .z10-form__row--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 520px) { .z10-form__row--4 { grid-template-columns: 1fr; } }
.z10-account textarea { height: 72px; min-height: 72px !important; }
.z10-account .z10-field { align-content: start; }
.z10-contacts { display: grid; gap: 8px; }
.z10-contacts__head, .z10-contact { display: grid; grid-template-columns: 150px repeat(3, minmax(0, 1fr)); gap: 10px; align-items: center; }
.z10-contacts__head { margin-bottom: -4px; }
.z10-contacts__head span { font-size: 13px; font-weight: 800; color: var(--z10-muted); }
.z10-contact__role { font-size: 15px; font-weight: 900; line-height: 1.25; color: var(--z10-navy); }
.z10-contact__role .z10-optional { display: block; font-size: 13px; }
@container (max-width: 520px) {
  .z10-contacts__head { display: none; }
  .z10-contact { grid-template-columns: 1fr; gap: 6px; }
  .z10-contact + .z10-contact { margin-top: 8px; }
  .z10-contact__role .z10-optional { display: inline; }
}
@media (min-width: 900px) { .z10-account .z10-summary { grid-template-columns: max-content minmax(0, 1fr) max-content minmax(0, 1fr); padding: 10px 14px; } }
.z10-account .z10-checks { gap: 6px; }
.z10-money { position: relative; }
.z10-money > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-weight: 800; color: var(--z10-muted); pointer-events: none; }
.z10-form .z10-money input { padding-left: 28px; }
.z10-field__hint { margin: 0; font-size: 14px; color: var(--z10-muted); }
.z10-account__icon { flex: none; width: 52px; height: 52px; padding: 10px; border-radius: 12px; background: var(--z10-navy); fill: #fff; box-sizing: border-box; }
@media (max-width: 640px) { .z10-account .z10-wizard__tab { font-size: 12px; padding: 6px 2px; } }

/* ---- header: compact, and smaller still once you scroll (the contact bar always stays) ------------ */
.z10-topbar { max-height: 80px; overflow: hidden; transition: max-height .2s; }
.z10-topbar__inner { min-height: 34px; padding-top: 3px; padding-bottom: 3px; }
[data-elementor-type="header"] .elementor-element-1ea28c6 img { height: 72px !important; width: auto !important; max-width: none !important; transition: height .2s; }
[data-elementor-type="header"] .elementor-element-e9ca2eb .elementor-nav-menu--main .elementor-item { padding-top: 16px !important; padding-bottom: 16px !important; transition: padding .2s; }
[data-elementor-type="header"] .elementor-element-75adf06 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 6px !important; padding-bottom: 6px !important; transition: padding .2s; }
.header-band { height: 8px !important; transition: height .2s; }
@media (min-width: 768px) {
  html.z10-scrolled [data-elementor-type="header"] .elementor-element-1ea28c6 img { height: 46px !important; }
  html.z10-scrolled [data-elementor-type="header"] .elementor-element-e9ca2eb .elementor-nav-menu--main .elementor-item { padding-top: 10px !important; padding-bottom: 10px !important; }
  html.z10-scrolled [data-elementor-type="header"] .elementor-element-75adf06 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 3px !important; padding-bottom: 3px !important; }
  html.z10-scrolled [data-elementor-type="header"] .elementor-element-10591cc img { height: 34px !important; }
  html.z10-scrolled [data-elementor-type="header"] .elementor-element-fd99d72 img { height: 44px !important; }
  html.z10-scrolled .header-band { height: 4px !important; }
}
@media (max-width: 767px) { [data-elementor-type="header"] .elementor-element-1ea28c6 img { height: 54px !important; } }
@media (prefers-reduced-motion: reduce) { .z10-topbar, [data-elementor-type="header"] img, [data-elementor-type="header"] .elementor-item, .header-band { transition: none !important; } }

/* ---- main menu: the current page shows as highlighted text; the underline is only for the item under the mouse */
.elementor-nav-menu--main .elementor-item.elementor-item-active:not(:hover):not(:focus-visible)::after,
.elementor-nav-menu--main .elementor-item.elementor-item-active:not(:hover):not(:focus-visible)::before { opacity: 0 !important; }

/* ---- Downloads: one list that fits the screen, search and filters on one line ------------------------ */
.page-id-2028 .elementor-element-b6b08ce { margin-bottom: 14px !important; }
.page-id-2028 .elementor-element-7a646cc > .elementor-container { padding-bottom: 0 !important; }
.z10-dlpage { padding-bottom: 28px; }
.z10-docs { min-height: 0; }
.z10-doc__text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; min-width: 0; }
.z10-doc__title { font-size: 15px; }
.z10-doc__meta { font-size: 13px; }
.z10-doc__actions a { min-height: 32px; padding: 3px 11px; font-size: 13px; }
.z10-dl-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 10px 0 0; }
.z10-dl-foot .z10-pager { margin: 0; justify-content: flex-end; }
.z10-dl-foot .z10-pager button { min-width: 36px; min-height: 36px; padding: 4px 10px; font-size: 14px; }
.z10-dl-none { margin: 0; }
.z10-dlpage__help { margin-top: 14px !important; font-size: 14px !important; }
@media (max-width: 700px) {
  .z10-doc__text { display: block; }
  .z10-dl-foot { justify-content: center; }
  .z10-dl-foot .z10-pager { justify-content: center; }
}

/* Downloads filters: a segmented control - one soft track, the chosen filter a raised navy segment */
.z10-dl-filters { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 12px; background: #e9eff1; }
.z10-dl-filters button, .z10-dl-filters button:hover, .z10-dl-filters button:focus {
  min-height: 36px; margin: 0; padding: 6px 11px; border: 0; border-radius: 9px; background: transparent !important; box-shadow: none;
  color: #4a5b61 !important; font-family: var(--z10-font); font-size: 14px; font-weight: 700; line-height: 1.2; cursor: pointer;
  transition: background-color .15s, color .15s, box-shadow .15s !important;
}
.z10-dl-filters button:hover { color: var(--z10-navy) !important; background: rgba(255, 255, 255, .55) !important; }
.z10-dl-filters button[aria-pressed="true"], .z10-dl-filters button[aria-pressed="true"]:hover, .z10-dl-filters button[aria-pressed="true"]:focus {
  background: var(--z10-navy) !important; color: #fff !important; font-weight: 800; box-shadow: 0 1px 3px rgba(0, 40, 58, .25);
}
.z10-dl-filters button:focus-visible { outline: 2px solid var(--z10-teal); outline-offset: 1px; }
/* less space above the title */
.page-id-2028 .site-content { padding-top: 0 !important; }
.page-id-2028 .entry-content { margin-top: 14px !important; }
.page-id-2028 .elementor-element-7a646cc { margin-top: 0 !important; padding-top: 0 !important; }
.page-id-2028 .elementor-element-7a646cc .elementor-widget-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ---- Products page: the same look as Home - pale background from the header down, framed tiles ---------- */
.page-id-423 .site-content { padding-top: 0 !important; background: transparent !important; }


.page-id-423 .hfeed.site { max-width: 1240px; }
@media (min-width: 768px) { .page-id-423 .site-content { padding-left: 20px !important; padding-right: 20px !important; } }

.elementor-423 .elementor-element.elementor-element-39f54ab0, .elementor-423 .elementor-element.elementor-element-56bbe0b9 { background: transparent !important; background-image: none !important; }
.elementor-element-39f54ab0 { padding: 0 !important; }
.elementor-element-39f54ab0 > .elementor-container, .elementor-element-56bbe0b9 > .elementor-container { max-width: 1180px !important; }
.elementor-element-56bbe0b9 { padding-top: 0 !important; }
.elementor-element-1d596b89 > .elementor-container, .elementor-element-38e14843 > .elementor-container { max-width: 1180px !important; }
.z10-products-top { display: block; }
.z10-products-title.z10-home__title { margin: 0 0 16px; text-align: center; font-size: clamp(16px, calc((min(100vw, 1240px) - 110px) / 48), 25px); }
@media (min-width: 900px) { .z10-products-title.z10-home__title { white-space: nowrap; } }
.z10-products-top__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 16px 36px; align-items: center; }
.z10-products-points li { font-size: 16px; line-height: 1.5; }
.z10-products-warranty { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border: 2px solid var(--z10-green); border-radius: 10px; background: #fff; color: #1d1d1b !important; font-size: 15px; line-height: 1.45; text-decoration: none !important; transition: box-shadow .15s, transform .15s; }
.z10-products-warranty img { flex: none; width: 60px; height: 60px; }
.z10-products-warranty strong { color: var(--z10-navy); }
.z10-products-warranty:hover { box-shadow: 0 8px 20px rgba(0, 53, 77, .14); transform: translateY(-2px); }
/* tiles: framed picture, name and text underneath, like the Home tiles */
.page-id-423 .z10-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 18px; padding: 8px 0 34px; }
.page-id-423 .z10-card, .page-id-423 .z10-card:hover { background: transparent; border: 0; border-radius: 0; overflow: visible; box-shadow: none; transform: none; }
.page-id-423 .z10-card__media { aspect-ratio: 4 / 3; border: 2px solid var(--z10-green); border-radius: 10px; background: #fff; overflow: hidden; transition: box-shadow .15s, transform .15s; }
.page-id-423 #conversion-modules .z10-card__media, .page-id-423 #remote-controls .z10-card__media { border-color: var(--z10-teal); }
.page-id-423 .z10-card--guides .z10-card__media { border-color: var(--z10-navy); }
.page-id-423 .z10-card:hover .z10-card__media, .page-id-423 .z10-card:focus-visible .z10-card__media { box-shadow: 0 8px 20px rgba(0, 53, 77, .14); transform: translateY(-2px); }
.page-id-423 .z10-card__body { padding: 10px 2px 0; gap: 5px; }
.page-id-423 .z10-card__title { color: var(--z10-navy) !important; font-size: 15px !important; line-height: 1.25 !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: .02em; }
.page-id-423 .z10-card__text { font-size: 14px; line-height: 1.45; color: #3d474b; }
.page-id-423 .z10-card__more { font-size: 14px; }
.z10-card__media--guides { display: flex !important; align-items: center; justify-content: center; gap: 10px; padding: 12px; box-sizing: border-box; background: linear-gradient(135deg, #fff, var(--z10-soft)) !important; }
.page-id-423 .z10-card__media--guides img { width: auto; height: 100%; max-width: 46%; padding: 0; object-fit: contain; border-radius: 3px; box-shadow: 0 3px 10px rgba(0, 0, 0, .18); }
@media (max-width: 1024px) { .page-id-423 .z10-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .z10-products-top__row { grid-template-columns: 1fr; } }
@media (max-width: 767px) {
  .elementor-element-39f54ab0 { padding-top: 22px !important; }
  .page-id-423 .z10-card-grid { grid-template-columns: 1fr; gap: 14px; }
  .page-id-423 .z10-card { flex-direction: row; gap: 12px; }
  .page-id-423 .z10-card__media { flex: 0 0 116px; aspect-ratio: 4 / 3; align-self: flex-start; border-right-width: 2px; }
  .page-id-423 .z10-card__body { padding: 2px 0 0; }
  .page-id-423 .z10-card__media--guides { padding: 6px; gap: 4px; }
}
@media (min-width: 480px) { .z10-warranty__steps li strong { white-space: nowrap; } }   /* phones: the bold text may wrap */
.z10-warranty__help .z10-warranty__contact { display: inline-flex; justify-content: center; width: 100%; box-sizing: border-box; }
/* side by side: the box runs the full height of the form, so Contact us sits level with the Next button */
@media (min-width: 1025px) {
  .z10-warranty:not(.z10-account) { align-items: stretch; }
  .z10-warranty__info { position: static; align-content: start; grid-template-rows: auto auto auto 1fr; padding-bottom: 12px; }
  .z10-warranty__help { align-self: end; }
}

/* ---- Technology Hub pages (Lithium Ion, Battery Technology, Float Charge): the Test Methods look --------- */
.z10-hub { max-width: 1060px; }
@media (min-width: 760px) { .z10-hub__line { white-space: nowrap; } }
.z10-hub__lead { max-width: 50rem; margin: 0 auto 28px; text-align: center; font-size: 18px; line-height: 1.55; color: #33454c; }
.z10-hub__section { margin: 0 0 34px; }
.z10-hub__section > h2 { margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--z10-line); font-size: 23px; font-weight: 900; color: var(--z10-navy); }
.z10-hub__section > p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; color: var(--z10-ink); }
.z10-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin: 0 0 16px; padding: 0; list-style: none; }
.z10-features--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.z10-features--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.z10-feature { display: flex; gap: 12px; align-items: flex-start; margin: 0; padding: 14px 16px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-feature h3 { margin: 0 0 4px; font-size: 16px; font-weight: 900; line-height: 1.25; color: var(--z10-navy); }
.z10-feature p { margin: 0; font-size: 14.5px; line-height: 1.5; color: #3d474b; }
.z10-feature__icon, .z10-compare__icon, .z10-temp__icon { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #e7f4ec; color: var(--z10-green-dark); }
.z10-feature__icon svg, .z10-compare__icon svg, .z10-temp__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* from NiCad to Li-ion */
.z10-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0 0 18px; padding: 0; list-style: none; counter-reset: step; }
.z10-timeline__step { position: relative; margin: 0; padding: 16px 20px 16px 22px; background: var(--z10-soft); border: 1px solid var(--z10-line); }
.z10-timeline__step:first-child { border-radius: 10px 0 0 10px; }
.z10-timeline__step:last-child { border-radius: 0 10px 10px 0; }
.z10-timeline__step + .z10-timeline__step { border-left: 0; }
.z10-timeline__step:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: 50%; right: -13px; width: 24px; height: 24px; margin-top: -12px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300354d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10 7 5 5-5 5'/%3E%3C/svg%3E") no-repeat center / 16px; box-shadow: 0 0 0 1px var(--z10-line); }
.z10-timeline__step--now { background: #e7f4ec; border-color: #b9dcc6; }
.z10-timeline__tag { display: inline-block; margin-bottom: 4px; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; color: var(--z10-teal-text); }
.z10-timeline__step h3 { margin: 0 0 6px; font-size: 20px; font-weight: 900; color: var(--z10-navy); }
.z10-timeline__step h3 small { display: block; font-size: 13px; font-weight: 700; color: var(--z10-muted); }
.z10-timeline__step p { margin: 0; font-size: 14.5px; line-height: 1.5; color: #3d474b; }
.z10-hub__figure { margin: 0 0 8px; padding: 14px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; text-align: center; }
.z10-hub__figure img { width: 100%; max-width: 620px; height: auto; }
.z10-hub__figure figcaption { margin-top: 8px; font-size: 14px; color: var(--z10-muted); }
/* next page link and warranty */
.z10-hub-next, .z10-hub-warranty { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border: 2px solid var(--z10-navy); border-radius: 12px; background: #fff; color: var(--z10-ink) !important; text-decoration: none !important; transition: box-shadow .15s, transform .15s; }
.z10-hub-next > span { flex: 1; display: grid; gap: 2px; }
.z10-hub-next strong { font-size: 18px; font-weight: 900; color: var(--z10-navy); }
.z10-hub-next > span > span { font-size: 15px; color: #3d474b; }
.z10-hub-next .z10-icon, .z10-hub-warranty .z10-icon { flex: none; width: 22px; height: 22px; fill: var(--z10-navy); }
.z10-hub-warranty { border-color: var(--z10-green); font-size: 16px; line-height: 1.45; }
.z10-hub-warranty img { flex: none; width: 60px; height: 60px; }
.z10-hub-warranty > span { flex: 1; }
.z10-hub-warranty strong { color: var(--z10-navy); }
.z10-hub-next:hover, .z10-hub-warranty:hover { box-shadow: 0 8px 20px rgba(0, 53, 77, .14); transform: translateY(-2px); }
/* float charge: everyday vs standby, temperatures, chart */
.z10-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.z10-compare__col { padding: 16px 18px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-compare__col--standby { border: 2px solid var(--z10-green); background: #f3faf5; }
.z10-compare__col h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 17px; font-weight: 900; color: var(--z10-navy); }
.z10-compare__col p { margin: 0; font-size: 15px; line-height: 1.55; color: #3d474b; }
.z10-compare__col:not(.z10-compare__col--standby) .z10-compare__icon { background: var(--z10-soft); color: var(--z10-muted); }
.z10-temps { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 14px; }
.z10-temp { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-temp .z10-temp__icon { background: #fdecea; color: #b3261e; }
.z10-temp--cool .z10-temp__icon { background: #e6f1fb; color: #1f5f99; }
.z10-temp__room { font-size: 16px; font-weight: 800; color: var(--z10-ink); }
.z10-temp__room small { font-weight: 600; color: var(--z10-muted); }
.z10-temp__v { margin-left: 8px; padding-left: 14px; border-left: 1px solid var(--z10-line); font-size: 22px; font-weight: 900; color: var(--z10-navy); }
.z10-chart svg { display: block; width: 100%; max-width: 680px; height: auto; margin: 0 auto; font-family: var(--z10-font); }
.z10-chart__grid line { stroke: #e3eaed; stroke-width: 1; stroke-dasharray: 4 4; }
.z10-chart__axis line { stroke: #93a6ad; stroke-width: 1.5; }
.z10-chart__labels text { font-size: 13px; fill: var(--z10-muted); }
.z10-chart__full { fill: none; stroke: #b3261e; stroke-width: 2.5; stroke-dasharray: 7 6; }
.z10-chart__z10 { fill: none; stroke: var(--z10-green-dark); stroke-width: 3.5; stroke-linejoin: round; }
.z10-chart__dots circle { fill: #fff; stroke: var(--z10-green-dark); stroke-width: 2.5; }
.z10-chart__note { font-size: 13px; font-weight: 700; fill: #3d474b; }
.z10-chart__note--full { fill: #b3261e; }
.z10-chart__note--z10 { fill: var(--z10-green-dark); font-size: 14px; font-weight: 900; }
@media (max-width: 900px) { .z10-features--3, .z10-features--2, .z10-timeline, .z10-compare { grid-template-columns: 1fr; }
  .z10-timeline__step, .z10-timeline__step:first-child, .z10-timeline__step:last-child { border-radius: 0; }
  .z10-timeline__step:first-child { border-radius: 10px 10px 0 0; } .z10-timeline__step:last-child { border-radius: 0 0 10px 10px; }
  .z10-timeline__step + .z10-timeline__step { border-left: 1px solid var(--z10-line); border-top: 0; }
  .z10-timeline__step:not(:last-child)::after { top: auto; bottom: -13px; right: 50%; margin: 0 -12px 0 0; transform: rotate(90deg); } }
@media (max-width: 600px) { .z10-hub__lead { font-size: 16px; } .z10-hub__section > h2 { font-size: 20px; } }

/* ---- every page: the Home background, and page titles in the Home / Products heading style ---------------- */
body { background: #fff linear-gradient(180deg, #eef4f6 130px, #f4f8f9 640px, #fff 1240px) no-repeat !important; }
#page, .site, .site-content, .content-area, .site-main, .inside-article, .container.grid-container, .one-container .container,
.separate-containers .inside-article { background: transparent !important; background-color: transparent !important; }
.elementor-element-6759c42d .elementor-heading-title,
.elementor-element-9212f2e .elementor-heading-title,
.elementor-element-bd4fa2b .elementor-heading-title,
.elementor-element-fb0828b .elementor-heading-title,
.elementor-element-637bb70f .elementor-heading-title,
.elementor-element-2779f741 .elementor-heading-title,
.elementor-element-21a5209 .elementor-heading-title,
.elementor-element-b326a2a .elementor-heading-title,
.elementor-element-27e8f0e .elementor-heading-title,
.elementor-element-4323b8e5 .elementor-heading-title,
.elementor-element-12c61c61 .elementor-heading-title,
.elementor-element-455a2021 .elementor-heading-title,
.elementor-element-5b4158a6 .elementor-heading-title,
.elementor-element-b92e4cf .elementor-heading-title,
.elementor-element-5e311f04 .elementor-heading-title,
.elementor-element-76d2b435 .elementor-heading-title,
.elementor-element-6e5895e6 .elementor-heading-title,
.elementor-element-173e17a1 .elementor-heading-title,
.elementor-element-4cef2a6 .elementor-heading-title,
.elementor-element-599b58c0 .elementor-heading-title,
.elementor-element-ee35c67 .elementor-heading-title,
.elementor-element-26ae7bf7 .elementor-heading-title,
.elementor-element-e703926 .elementor-heading-title,
.elementor-element-7726043e .elementor-heading-title,
.elementor-element-4a9644fe .elementor-heading-title,
.elementor-element-7bb5de1d .elementor-heading-title,
.elementor-element-746a7cc0 .elementor-heading-title,
.elementor-element-6253ceaa .elementor-heading-title,
.elementor-element-b137c64 .elementor-heading-title,
.elementor-element-1bd398b .elementor-heading-title,
.elementor-element-cbc3cda .elementor-heading-title,
.elementor-element-b6b08ce .elementor-heading-title,
main .z10-page-title {
  margin: 0 !important; font-family: var(--z10-font) !important; font-size: clamp(20px, 1.95vw, 25px) !important; font-weight: 900 !important;
  line-height: 1.2 !important; letter-spacing: .01em !important; text-transform: uppercase; color: var(--z10-navy) !important;
}
@media print { body { background: #fff !important; } }
/* every page: the title starts the same distance below the header (as on Downloads) */
.site-content { padding-top: 0 !important; }
.entry-content { margin-top: 14px !important; }
body.home .entry-content { margin-top: 0 !important; }
.entry-content > .elementor > section.elementor-top-section:first-of-type, .entry-content > section.elementor-top-section:first-of-type { padding-top: 0 !important; margin-top: 0 !important; }
:is(.entry-content > .elementor > section.elementor-top-section:first-of-type, .entry-content > section.elementor-top-section:first-of-type) > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 0 !important; }
:is(.entry-content > .elementor > section.elementor-top-section:first-of-type, .entry-content > section.elementor-top-section:first-of-type) > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-element:first-child { margin-top: 0 !important; }
.elementor-element-1d596b89 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 0 !important; }
body.home .z10-home { padding-top: 14px; }
.z10-brochures { padding-top: 0 !important; }
:is(.entry-content > .elementor > section.elementor-top-section:first-of-type) > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-inner-section:first-child > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 0 !important; }
.z10-hub .z10-tabs { margin: 0 0 30px; }
.z10-hub .z10-tabs .z10-hub__section { margin: 0; }
.z10-hub__lead--one { max-width: none; }
@media (min-width: 1100px) { .z10-hub__lead--one { white-space: nowrap; } }
@media (max-width: 600px) { .z10-hub .z10-tabs__tab { font-size: 13px !important; padding: 8px 2px !important; } }

/* ---- policy reader popup (Compliance > Read online) ---------------------------------------------- */
.z10-reader__body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; background: #fff; }
.z10-reader__doc { max-width: 800px; margin: 0 auto; padding: 22px 28px 44px; font-family: var(--z10-font); font-size: 16px; line-height: 1.6; color: var(--z10-ink); box-sizing: border-box; }
.z10-reader__doc .entry-content { margin: 0 !important; }
.z10-reader__doc .elementor-section, .z10-reader__doc .elementor-container, .z10-reader__doc .elementor-column, .z10-reader__doc .elementor-widget-wrap { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; border: 0 !important; min-height: 0 !important; }
.z10-reader__doc .elementor-container { display: block !important; }
.z10-reader__doc h1 { margin: 18px 0 8px; font-size: 22px !important; font-weight: 900; color: var(--z10-navy) !important; }
.z10-reader__doc h2 { margin: 22px 0 8px; font-size: 20px !important; font-weight: 900; color: var(--z10-navy) !important; }
.z10-reader__doc h3, .z10-reader__doc h4 { margin: 18px 0 6px; font-size: 17px !important; font-weight: 800; color: var(--z10-navy) !important; }
.z10-reader__doc p, .z10-reader__doc li { font-size: 16px !important; line-height: 1.6 !important; }
.z10-reader__doc a { color: var(--z10-navy) !important; text-decoration: underline; }
.z10-reader__doc .z10-policy-meta a { display: none !important; }
.z10-reader__doc img { max-width: 100%; height: auto; }
.z10-reader__doc table { width: 100%; }
.z10-reader__loading { color: var(--z10-muted); }
@media (max-width: 700px) {
  .z10-reader { width: 100vw; height: 100vh; height: 100dvh; max-width: 100vw; max-height: none; margin: 0; border-radius: 0; }
  .z10-reader .z10-preview__bar { padding-left: 14px; }
  .z10-reader__doc { padding: 16px 16px 36px; }
}
.z10-hub-next + .z10-hub-warranty { margin-top: 14px; }
/* Why Z10 */
.z10-features--who { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.z10-features--who > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.z10-hub__figure--wide img { max-width: 860px; }
.z10-about-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 6px; }
.z10-about-links .z10-hub-next { padding: 14px 16px; }
.z10-about-links .z10-hub-next strong { font-size: 17px; }
.z10-about-links .z10-hub-next > span > span { font-size: 14px; }
@media (max-width: 900px) { .z10-features--who, .z10-about-links { grid-template-columns: 1fr; } }
/* Float Charge: temperature */
.z10-hub__key { margin: 0 0 14px !important; font-size: 17px !important; }
.z10-tempfig { margin: 0 0 22px; padding: 16px 18px 18px; border: 1px solid var(--z10-line); border-radius: 12px; background: #fff; }
.z10-tempfig figcaption { margin: 0 0 12px; font-size: 14px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--z10-teal-text); }
.z10-tempfig .z10-temps { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 14px; margin: 0; }
.z10-tempfig .z10-temp { justify-content: space-between; padding: 14px 18px; }
.z10-temp--warm { background: #fff6f5 !important; border-color: #f3c9c5 !important; }
.z10-temp--cool { background: #f2f7fd !important; border-color: #c6dbf1 !important; }
.z10-temp__room { display: grid; flex: 1; font-size: 14px; font-weight: 700; color: var(--z10-muted); }
.z10-temp__room b { font-size: 18px; font-weight: 900; color: var(--z10-ink); }
.z10-tempfig .z10-temp__v { margin: 0; padding: 0 0 0 14px; font-size: 26px; }
.z10-temps__diff { display: grid; justify-items: center; gap: 2px; padding: 0 6px; font-size: 13px; font-weight: 700; color: var(--z10-muted); }
.z10-temps__diff::after { content: ""; width: 56px; height: 14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 14' fill='none' stroke='%2300354d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7h50M46 2l6 5-6 5'/%3E%3C/svg%3E") no-repeat center / contain; order: 1; }
.z10-temps__diff strong { font-size: 17px; font-weight: 900; color: var(--z10-navy); order: 2; }
.z10-hub__sub { margin: 0 0 10px; font-size: 17px; font-weight: 900; color: var(--z10-navy); }
.z10-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.z10-flow li { position: relative; display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 22px 14px 16px; border: 1px solid var(--z10-line); background: #fff; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--z10-ink); }
.z10-flow li:first-child { border-radius: 10px 0 0 10px; }
.z10-flow li:last-child { border-radius: 0 10px 10px 0; }
.z10-flow li + li { border-left: 0; }
.z10-flow li:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: 50%; right: -12px; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300354d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10 7 5 5-5 5'/%3E%3C/svg%3E") no-repeat center / 14px; box-shadow: 0 0 0 1px var(--z10-line); }
.z10-flow__n { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--z10-green-dark); color: #fff; font-size: 15px; font-weight: 900; }
@media (max-width: 760px) {
  .z10-tempfig .z10-temps { grid-template-columns: 1fr; }
  .z10-temps__diff { grid-auto-flow: column; justify-content: center; align-items: center; gap: 8px; }
  .z10-temps__diff::after { width: 14px; height: 30px; transform: rotate(90deg); }
  .z10-flow { grid-template-columns: 1fr; }
  .z10-flow li, .z10-flow li:first-child, .z10-flow li:last-child { border-radius: 0; }
  .z10-flow li:first-child { border-radius: 10px 10px 0 0; } .z10-flow li:last-child { border-radius: 0 0 10px 10px; }
  .z10-flow li + li { border-left: 1px solid var(--z10-line); border-top: 0; }
  .z10-flow li:not(:last-child)::after { top: auto; bottom: -12px; right: 50%; margin: 0 -11px 0 0; transform: rotate(90deg); }
}
/* Why Z10: Our expertise wheel */
.z10-wheel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 380px) minmax(0, 1fr); align-items: center; gap: 22px; padding: 20px 22px; border: 1px solid var(--z10-line); border-radius: 12px; background: #fff; }
.z10-wheel__col { display: grid; gap: 28px; margin: 0; padding: 0; list-style: none; }
.z10-wheel__col--left { text-align: right; }
.z10-wheel__item { margin: 0; }
.z10-wheel__item h3 { margin: 0 0 4px; font-size: 17px; font-weight: 900; color: var(--z10-navy); }
.z10-wheel__item p { margin: 0; font-size: 15px; line-height: 1.5; color: #3d474b; }
.z10-wheel__svg { display: block; width: 100%; height: auto; font-family: var(--z10-font); }
.z10-wheel__segs path { fill: #1f8a3b; stroke: #fff; stroke-width: 6; stroke-linejoin: round; }
.z10-wheel__ring path { fill: none; stroke: #336785; stroke-width: 12; }
.z10-wheel__labels text { fill: #fff; font-size: 16px; font-weight: 800; text-anchor: middle; }
@media (max-width: 900px) {
  .z10-wheel { grid-template-columns: 1fr; padding: 16px; }
  .z10-wheel__fig { order: -1; max-width: 300px; margin: 0 auto; }
  .z10-wheel__col { gap: 14px; }
  .z10-wheel__col--left { text-align: left; }
}

/* ---- product range pages: photos beside the summary, then Overview / Specifications tabs ------------ */
.z10-product-section { padding: 0 !important; }
.z10-product { max-width: 1180px; margin: 0 auto; padding: 4px 20px 44px; font-family: var(--z10-font); box-sizing: border-box; }
.z10-product__top { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 32px; align-items: start; margin: 0 0 26px; }
.z10-gallery__main { position: relative; aspect-ratio: 4 / 3; padding: 0; border: 0; box-shadow: 0 2px 12px rgba(0, 53, 77, .08); border-radius: 12px; background: #fff; box-sizing: border-box; overflow: hidden; }
/* the photo is placed inside the box, so a tall photo (a side profile) shrinks to fit instead of being cropped */
.z10-gallery .z10-gallery__main img { position: absolute; inset: 14px; width: calc(100% - 28px) !important; height: calc(100% - 28px) !important; max-width: none; margin: 0; object-fit: contain; }
.z10-gallery__thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.z10-gallery .z10-gallery__thumb { width: 74px; height: 56px; margin: 0; padding: 4px; border: 2px solid var(--z10-line); border-radius: 8px; background: #fff !important; cursor: pointer; }
.z10-gallery .z10-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.z10-gallery .z10-gallery__thumb[aria-current="true"] { border-color: var(--z10-navy); }
.z10-gallery .z10-gallery__thumb:hover, .z10-gallery .z10-gallery__thumb:focus-visible { border-color: var(--z10-navy); }
.z10-product__lead { margin: 0 0 18px !important; font-size: 16px !important; line-height: 1.6 !important; color: var(--z10-ink); }   /* the same size as the overview text */
.z10-product__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.z10-product__actions .z10-button { flex: 1 1 0; justify-content: center; text-align: center; white-space: nowrap; }
.z10-product__lead { margin-top: -4px !important; }
.z10-product__actions .z10-button { margin: 0; }
.z10-product__tabs { margin: 0; }
.z10-product__panel { padding: 4px 0 0; }
.z10-product__panel .elementor-section { margin: 0 !important; padding: 0 !important; background: none !important; }
.z10-product__panel .elementor-section-stretched { width: auto !important; left: auto !important; }
.z10-product__panel .elementor-section > .elementor-container { max-width: none !important; }
.z10-product__panel .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.z10-product__panel--overview .z10-prose > .elementor-widget-container { max-width: none; margin-left: 0; margin-right: 0; }   /* the full width of the tabs, the same edges as the Specifications & downloads text */
.z10-product__panel--overview p, .z10-product__panel--overview li { font-size: 16px !important; line-height: 1.6 !important; color: var(--z10-ink) !important; text-align: left !important; }
.z10-product__panel--overview h2, .z10-product__panel--overview h3 { margin: 18px 0 8px !important; font-size: 20px !important; font-weight: 900 !important; color: var(--z10-navy) !important; text-align: left !important; }
.z10-product__panel--overview img { max-width: 100%; height: auto; border-radius: 8px; }
.z10-product__panel--specs > .elementor-section:first-child p { font-size: 16px !important; color: #33454c !important; text-align: left !important; }
@media (max-width: 900px) {
  .z10-product { padding: 0 14px 36px; }
  .z10-product__top { grid-template-columns: 1fr; gap: 18px; }
  .z10-product__lead { font-size: 16px !important; }
}

/* ---- spec tables: easier to read; download buttons stay on one line and wrap as whole buttons ---------- */
.z10-specs .z10-specs__table th, .z10-specs .z10-specs__table td { padding: 10px 10px; font-size: 14.5px; }
.z10-specs .z10-specs__table thead th { font-size: 13.5px; letter-spacing: .01em; }
.z10-specs .z10-specs__table tbody tr:nth-child(even) > * { background: #f8fafb; }
.z10-specs .z10-specs__table tbody tr:hover > * { background: #eef5f7; }
.z10-specs .z10-specs__part { font-size: 15px; }
.z10-specs .z10-specs__downloads { width: 1%; min-width: 272px; }
.z10-specs .z10-dl-list { gap: 5px 10px; }   /* a little more room between the buttons side by side */
.z10-specs a.z10-dl, .z10-specs .z10-dl { white-space: nowrap; min-height: 30px; padding: 4px 9px; font-size: 13px; gap: 5px; }
.z10-specs a.z10-dl small { white-space: nowrap; font-size: 11.5px; }
@media (max-width: 1100px) { .z10-specs .z10-specs__downloads { min-width: 230px; } }
/* downloads: Datasheet, a "More files" menu (spec sheet, IES, LDT, spacing table) and All files, on one line */
.z10-specs .z10-dl-list { flex-wrap: nowrap; }
.z10-specs .z10-dl--more { margin: 0; font-family: var(--z10-font); cursor: pointer; }
.z10-specs .z10-dl--more:hover, .z10-specs .z10-dl--more:focus { border-color: var(--z10-navy); background: var(--z10-soft) !important; color: var(--z10-navy) !important; }
.z10-specs .z10-dl--more:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: 1px; }
.z10-dl--more .z10-dl__chev { width: 15px; height: 15px; transition: transform .15s; }
.z10-dl--more.is-open .z10-dl__chev { transform: rotate(180deg); }
.z10-dl-menu { min-width: 210px; margin: auto; padding: 6px; border: 1px solid #c9d8dd; border-radius: 10px; background: #fff; color: var(--z10-navy); box-shadow: 0 10px 28px rgba(0, 35, 51, .2); font-family: var(--z10-font); }
.z10-dl-menu.is-placed { inset: auto; margin: 0; }
.z10-dl-menu__item { display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 7px; color: var(--z10-navy) !important; font-size: 14px; font-weight: 800; line-height: 1.2; text-decoration: none !important; white-space: nowrap; }
.z10-dl-menu__item .z10-icon { width: 16px; height: 16px; flex: none; fill: currentColor; }
.z10-dl-menu__item small { margin-left: auto; padding-left: 14px; font-size: 12px; font-weight: 400; color: #55666d; }
.z10-dl-menu__item:hover, .z10-dl-menu__item:focus { background: var(--z10-soft); }
.z10-dl-menu__item:focus-visible { outline: 2px solid var(--z10-teal); outline-offset: -2px; }
.z10-dl-menu__item--missing { color: #77858a !important; }
/* headings may take two lines ("Power / Output") so the table fits its box instead of being cut off */
.z10-specs .z10-specs__table thead th { white-space: normal; vertical-align: bottom; }
.z10-specs .z10-specs__table thead th.z10-specs__downloads, .z10-specs .z10-specs__table thead th:last-child { white-space: nowrap; }
@media (max-width: 1240px) { .z10-specs .z10-dl-list { flex-wrap: wrap; } .z10-specs .z10-specs__downloads { min-width: 0; } .z10-specs .z10-specs__table th, .z10-specs .z10-specs__table td { padding-left: 7px; padding-right: 7px; } }
/* the script puts the download buttons back on one line wherever the table still fits its box */
.z10-specs.is-roomy .z10-dl-list { flex-wrap: nowrap; }
/* product pages: the table lines up with the text above it */
.z10-product__panel .z10-specs, .z10-product__panel .z10-specs__foot { max-width: none; padding-left: 0; padding-right: 0; }
/* long parts tables show a page of parts at a time */
.z10-specs .z10-specs__table tbody tr.z10-off { display: none !important; }
.z10-specs__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; max-width: 1180px; margin: -16px auto 28px; padding: 0 20px; box-sizing: border-box; font-family: var(--z10-font); }
.z10-specs__count { margin: 0; font-size: 14px; color: var(--z10-muted); }
.z10-specs__foot .z10-pager { margin: 0; justify-content: flex-end; }
.z10-specs__foot .z10-pager button { min-width: 36px; min-height: 36px; padding: 4px 10px; font-size: 14px; }
@media (max-width: 600px) { .z10-specs__foot { justify-content: center; padding: 0 14px; } .z10-specs__foot .z10-pager { justify-content: center; } }
@media (max-width: 767px) { .z10-specs .z10-specs__downloads { min-width: 0; width: 100%; } }

/* product pages: wider, so the spec tables fit */
body:has(.z10-product-section) .hfeed.site { max-width: 1240px; }
@media (min-width: 768px) { body:has(.z10-product-section) .site-content { padding-left: 20px !important; padding-right: 20px !important; } }
/* range switch on family pages (tabs that open the other pages of the family) */
.z10-range-switch { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: -4px 0 22px; border-bottom: 2px solid var(--z10-line); }
.z10-range-switch a { display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 0 0 -2px; padding: 8px 10px; border-bottom: 3px solid transparent; color: var(--z10-muted) !important; font-family: var(--z10-font); font-size: 17px; font-weight: 800; text-decoration: none !important; transition: color .12s, border-color .12s; }
.z10-range-switch a:hover { color: var(--z10-navy) !important; }
.z10-range-switch a[aria-current="page"] { color: var(--z10-navy) !important; border-bottom-color: var(--z10-green-dark); }
.z10-range-switch a:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: -3px; }
.z10-specs { overflow-x: auto; }
@media (min-width: 1200px) { .z10-specs .z10-specs__downloads { min-width: 312px; } }

/* Test Methods on phones: MT, ST, AT one under another, arrows pointing down */
@media (max-width: 640px) {
  .z10-levels .z10-levels__list { grid-template-columns: 1fr; gap: 22px; }
  .z10-levels .z10-level:not(:last-child)::after { top: auto; bottom: -17px; right: 50%; transform: translateX(50%) rotate(135deg); }
}
@media (max-width: 640px) { .z10-levels .z10-level { grid-template-columns: auto 1fr; justify-items: start; column-gap: 14px; text-align: left; padding: 14px 16px; } .z10-levels .z10-level__icon { grid-row: span 3; margin: 0; } .z10-levels .z10-level--at { padding-top: 20px; } }
@media (max-width: 640px) { .z10-levels .z10-levels__scale { flex-direction: column; gap: 2px; border-radius: 12px; padding: 7px 14px; } .z10-levels .z10-levels__scale span:last-child { align-self: flex-end; } }

/* ---- Lighting Design: what we do, and a sample spacing table ---------------------------------------- */
.z10-ld__links { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 22px 0 0; }
.z10-ld__sll { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 2px solid var(--z10-navy); border-radius: 12px; background: #fff; }
.z10-ld__sll img { flex: none; width: 92px; height: auto; }
.z10-ld__sll-text { flex: 1; display: grid; gap: 2px; min-width: 0; }
.z10-ld__sll-text strong { font-size: 18px; font-weight: 900; color: var(--z10-navy); }
.z10-ld__sll-text span { font-size: 15px; line-height: 1.4; color: #3d474b; }
.z10-ld__sll-text small { font-size: 13px; color: var(--z10-muted); }
@media (max-width: 700px) { .z10-ld__sll { flex-wrap: wrap; } .z10-ld__sll .z10-doc__actions { margin-left: 108px; } }
@media (max-width: 480px) { .z10-ld__sll .z10-doc__actions { margin-left: 0; } }
.z10-hub .z10-ld__cta { margin: 28px 0 8px !important; text-align: center; }
.z10-ld__intro { margin: 0 0 12px; text-align: center; font-size: 16.5px; color: #33454c; }
.z10-spacing { position: relative; overflow-x: auto; border: 1px solid var(--z10-line); border-radius: 10px; background: #fff; }
.z10-spacing:focus-visible { outline: 3px solid rgba(0, 155, 164, .35); outline-offset: 2px; }
.z10-spacing__table { width: 100%; min-width: 760px; margin: 0; border-collapse: collapse; font-family: var(--z10-font); font-size: 15px; font-variant-numeric: tabular-nums; }
.z10-spacing__title { margin: 0 0 8px; font-size: 15.5px; font-weight: 800; color: var(--z10-navy); }
.z10-spacing__hint { display: none; margin-top: 2px; font-size: 13px; font-weight: 600; color: var(--z10-muted); }
.z10-spacing__table tbody th, .z10-spacing__table thead tr:first-child th:first-child { position: sticky; left: 0; z-index: 1; }
.z10-spacing__table tbody th { box-shadow: inset -1px 0 0 var(--z10-line); }
@media (max-width: 800px) { .z10-spacing__hint { display: block; } }
.z10-spacing__table th, .z10-spacing__table td { padding: 8px 10px; border: 0; border-bottom: 1px solid var(--z10-line); text-align: center; vertical-align: middle; }
.z10-spacing__table thead th { background: var(--z10-navy); color: #fff; font-size: 13px; font-weight: 800; line-height: 1.25; }
.z10-spacing__table thead tr:first-child th[colspan] { font-size: 14px; border-bottom: 1px solid rgba(255, 255, 255, .25); }
.z10-spacing__table thead .z10-spacing__er { background: #00606f; }
.z10-spacing__table thead tr:first-child th:nth-child(4), .z10-spacing__table thead tr:last-child th:nth-child(5),
.z10-spacing__table tbody td:nth-child(7) { border-left: 2px solid #c9d8dd; }
.z10-spacing__table thead tr:first-child th:nth-child(4), .z10-spacing__table thead tr:last-child th:nth-child(5) { border-left-color: rgba(255, 255, 255, .4); }
.z10-spacing__table tbody th { color: var(--z10-navy); font-weight: 800; white-space: nowrap; background: var(--z10-soft); }
.z10-spacing__table tbody tr:nth-child(even) td { background: #f8fafb; }
.z10-spacing__table tbody tr:last-child > * { border-bottom: 0; }
.z10-spacing__lux { color: var(--z10-muted); }
.z10-spacing__none { color: #9aa8ad; }
.z10-ld__key { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; margin: 16px 0 0 !important; padding: 0 !important; list-style: none; font-size: 15px; line-height: 1.45; color: #33454c; }
.z10-ld__key li { margin: 0; padding: 0; }
.z10-ld__key li::before { content: none !important; }
.z10-ld__key strong { color: var(--z10-navy); margin-right: 4px; }
.z10-ld__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 22px 0 0; }
@media (max-width: 760px) { .z10-ld__links, .z10-ld__key { grid-template-columns: 1fr; } .z10-spacing__table { font-size: 14px; } }

/* notes under a spec table ("For black head versions, add the -BLK suffix…") */
.z10-specs__notes { max-width: 1180px; margin: -12px auto 28px; padding: 0 20px; box-sizing: border-box; font-family: var(--z10-font); }
.z10-product__panel .z10-specs__notes { max-width: none; padding: 0; }
.z10-specs__notes p { margin: 0 0 4px !important; font-size: 14.5px; line-height: 1.45; color: #33454c; }
/* phones: room between AST and Eyeris so the arrow sits above the "Recommended" badge */
@media (max-width: 640px) { .z10-levels .z10-level--at { margin-top: 18px; } .z10-levels .z10-level--ast:not(:last-child)::after { bottom: -21px; } }

/* Downloads on phones: the type filter is a dropdown under the search box */
.z10-dl-select { display: none; }
@media (max-width: 700px) {
  .z10-dl-tools { gap: 8px; }
  .z10-dl-tools input[type=search] { flex: 1 1 100%; }
  .z10-dl-filters { display: none; }
  .z10-dl-select { display: block; flex: 1 1 100%; width: 100%; min-height: 44px; margin: 0; padding: 9px 40px 9px 12px; border: 1px solid #b7c6cc; border-radius: 10px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300354d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 18px; color: var(--z10-navy); font-family: var(--z10-font); font-size: 16px; font-weight: 700; -webkit-appearance: none; appearance: none; box-sizing: border-box; }
  .z10-dl-select:focus { border-color: var(--z10-navy); outline: 3px solid rgba(0, 155, 164, .35); }
}

/* ---- phones: menu button on the left, logo on the right; a short footer (logos and small print) -------- */
@media (max-width: 767px) {
  /* menu button on the left, logo on the right */
  [data-elementor-type="header"] .elementor-element-d4aeced { order: -1; flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
  [data-elementor-type="header"] .elementor-element-d4aeced > .elementor-widget-wrap { justify-content: flex-start !important; padding-left: 10px !important; }
  [data-elementor-type="header"] .elementor-element-d4aeced .elementor-widget-nav-menu { width: auto !important; margin-right: auto !important; }
  [data-elementor-type="header"] .elementor-menu-toggle { margin: 0 auto 0 0 !important; }
  [data-elementor-type="header"] .elementor-element-cd70b0a > .elementor-widget-wrap { justify-content: flex-end !important; padding-right: 10px !important; }

  /* footer on phones: only the bar, on every page (the phone number and email are in the header) - the Z and
     the logos in one row, then the small print. No postal address, and no LIA badge (it doesn't load on phones). */
  [data-elementor-type="footer"] .elementor-element-729d277 { display: none !important; }
  [data-elementor-type="footer"] .elementor-element-b179712 { padding-top: 14px !important; padding-bottom: 14px !important; }
  .z10-footer-bottom { justify-content: center; gap: 10px; padding: 0 12px; }
  .z10-footer-bottom__brand { flex-wrap: nowrap; justify-content: center; gap: 6px; }
  .z10-footer-z img { height: 40px !important; }
  .z10-footer-logos { flex-wrap: nowrap; gap: 6px; }
  .z10-footer-logos li { height: 48px; padding: 4px 8px; }
  .z10-footer-logos img { height: 28px; max-width: 76px; }
  .z10-footer-logos li:has(span) img { height: 24px; }
  .z10-footer-logos .z10-lia-badge { display: none !important; }
  .z10-footer-address { display: none; }
  .z10-footer-bottom__info { text-align: center; }
  .z10-footer-bottom__links { justify-content: center; gap: 4px 14px; font-size: 13px; }
  .z10-footer-copy { flex-basis: 100%; text-align: center; }

  /* Downloads: tighter rows */
  .z10-doc { grid-template-columns: 34px minmax(0, 1fr); gap: 4px 10px; padding: 8px 10px; }
  .z10-doc__icon { width: 34px; height: 26px; font-size: 10px; }
  .z10-doc__title { font-size: 15px; line-height: 1.3; }
  .z10-doc__meta { font-size: 12.5px; line-height: 1.35; }
  .z10-doc__actions { margin-top: 4px; }
  .z10-doc__actions a { min-height: 34px; padding: 4px 12px; font-size: 14px; }
}
/* phones: Downloads page buttons on one line (the arrows stand in for "Previous" and "Next") */
@media (max-width: 700px) {
  .z10-dl-foot { gap: 6px; }
  .z10-dl-foot .z10-pager { flex-wrap: nowrap; gap: 6px; }
  .z10-dl-foot .z10-pager__nums { order: 0; flex: 0 1 auto; flex-wrap: nowrap; }
  .z10-dl-foot .z10-pager__step { flex: 0 0 auto; min-width: 40px; padding: 4px 8px; font-size: 0 !important; }
  .z10-dl-foot .z10-pager__step span { font-size: 22px; line-height: 1; }
}

/* small phones (iPhone SE): the footer logo row a little smaller, so it stays on one line */
@media (max-width: 374px) {
  .z10-footer-bottom { padding: 0 8px; }
  .z10-footer-bottom__brand, .z10-footer-logos { gap: 4px; }
  .z10-footer-z img { height: 34px !important; }
  .z10-footer-logos li { height: 42px; padding: 3px 6px; }
  .z10-footer-logos img { height: 24px; max-width: 64px; }
  .z10-footer-logos li:has(span) img { height: 20px; }
  .z10-footer-logos li span { font-size: 8px; }
}

/* ---- the footer at the bottom of the window on short pages, so it's in the same place on every page ------- */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body > #page { flex: 1 0 auto; width: 100%; box-sizing: border-box; }
body > [data-elementor-type="header"], body > .site-footer { flex: none; width: 100%; }

.z10-topic-products[hidden] { display: none; }
.z10-field__label { margin: 0; font-size: 15px; font-weight: 800; color: var(--z10-ink); }

/* product lists without quantities (the warranty and contact forms): no quantity boxes, a narrower line */
[data-z10-no-qty] .z10-picker__qty { display: none !important; }
[data-z10-no-qty] .z10-picker__item { grid-template-columns: minmax(0, 1fr); }
.z10-sumlist--noqty ul { grid-template-columns: 46px max-content minmax(0, 1fr); }
@media (max-width: 640px) { .z10-sumlist--noqty ul { grid-template-columns: 40px minmax(0, 1fr); } .z10-sumlist--noqty li { grid-template-columns: 40px minmax(0, 1fr); grid-template-columns: subgrid; } }

/* the contact form: a button opens the product list in a pop-up; the chosen products show above it */
.z10-chosen { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.z10-chosen[hidden] { display: none; }
.z10-chosen__item { display: flex; align-items: center; gap: 8px; margin: 0; padding: 3px 4px 3px 6px; border: 1px solid var(--z10-line); border-radius: 8px; background: #fff; }
.z10-chosen__item img.z10-chosen__img { display: block; width: 34px; height: 24px; max-width: none; object-fit: contain; }
.z10-chosen__code { font-size: 14px; font-weight: 900; color: var(--z10-navy); white-space: nowrap; }
.z10-chosen__x { display: grid; place-items: center; width: 28px; height: 28px; padding: 0 !important; margin: 0; border: 0; border-radius: 6px; background: none !important; color: var(--z10-muted) !important; cursor: pointer; }
.z10-chosen__x:hover, .z10-chosen__x:focus-visible { background: var(--z10-soft) !important; color: var(--z10-navy) !important; }
.z10-chosen__x svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
/* Send enquiry, and Choose / Change products beside it on the same line */
.z10-form__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 10px; }
.z10-form__actions .z10-button { margin: 0; }
.z10-picker--pop { width: min(780px, calc(100vw - 24px)); height: min(760px, calc(100dvh - 32px)); }
.z10-picker--pop .z10-picker__head h2 { font-size: 19px; }
.z10-picker--pop .z10-picklist { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 8px; padding: 0 18px; }
.z10-picker--pop .z10-picklist .z10-picker__list { flex: 1 1 0; min-height: 120px; max-height: none; }
.z10-picker--pop .z10-picklist .z10-picker__group { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.z10-picker--pop .z10-picker__foot { justify-content: space-between; border-top: 1px solid var(--z10-line); margin-top: 10px; }
.z10-picker--pop .z10-picklist__count { font-size: 14px; }
@media (max-width: 760px) { .z10-picker--pop .z10-picklist .z10-picker__group { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .z10-picker--pop { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .z10-picker--pop .z10-cats { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
  .z10-picker--pop .z10-cat { padding: 2px 2px 4px; }
  .z10-picker--pop .z10-cat__name { font-size: 8.5px; letter-spacing: 0; }
  .z10-picker--pop .z10-picker__head { padding: 12px 14px 6px; }
  .z10-picker--pop .z10-picker__head h2 { font-size: 17px; }
  .z10-picker--pop .z10-picklist { padding: 0 12px; }
  .z10-picker--pop .z10-picker__foot { padding: 10px 12px 14px; }
}

/* product pages on a computer: when the window is too short for the title, photo, description and buttons,
   site.js productFit shrinks whichever column is too tall so they fit without scrolling, keeping the usual
   width: the photo box gets shorter (--z10-img-h; the photo sits inside it, and the thumbnails follow,
   --z10-t), and the text gets smaller (--z10-s, with the title and range tabs, down to 0.8). At full height
   nothing changes; phones and tablets are unchanged. */
@media (min-width: 901px) {
  body:has(.z10-product.is-fitted) main .elementor-heading-title { font-size: calc(clamp(20px, 1.95vw, 25px) * var(--z10-s, 1)) !important; }
  .z10-product.is-fitted .z10-range-switch { margin-bottom: calc(22px * var(--z10-s, 1)); }
  .z10-product.is-fitted .z10-range-switch a { min-height: calc(48px * var(--z10-s, 1)); font-size: calc(17px * var(--z10-s, 1)) !important; }
  .z10-product.is-fitted .z10-gallery__main { aspect-ratio: auto; height: var(--z10-img-h); }
  .z10-product.is-fitted .z10-gallery .z10-gallery__thumb { width: calc(74px * var(--z10-t, 1)); height: calc(56px * var(--z10-t, 1)); }
  .z10-product.is-fitted .z10-product__lead { font-size: calc(16px * var(--z10-s, 1)) !important; margin-bottom: calc(18px * var(--z10-s, 1)) !important; }
  .z10-product.is-fitted .z10-product__actions .z10-button { font-size: calc(16px * var(--z10-s, 1)); min-height: calc(46px * var(--z10-s, 1)); padding-top: calc(10px * var(--z10-s, 1)); padding-bottom: calc(10px * var(--z10-s, 1)); }
}

/* product pages: "Add to enquiry" under each part code in the spec tables (ticked once it's on the list) */
.z10-specs__code { display: block; }
.z10-specs .z10-add { display: inline-flex; align-items: center; gap: 4px; margin: 6px 0 0; padding: 3px 8px 3px 6px !important; min-height: 28px; border: 1px solid var(--z10-green-dark) !important; border-radius: 6px; background: #fff !important; color: var(--z10-green-dark) !important; font-family: var(--z10-font); font-size: 12.5px; font-weight: 800; line-height: 1.1; white-space: nowrap; cursor: pointer; }
.z10-specs .z10-add:hover, .z10-specs .z10-add:focus-visible { background: #eaf6ee !important; }
.z10-specs .z10-add .z10-icon { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.z10-specs .z10-add__tick { display: none; }
.z10-specs .z10-add.is-added { background: var(--z10-green-dark) !important; color: #fff !important; }
.z10-specs .z10-add.is-added .z10-add__plus { display: none; }
.z10-specs .z10-add.is-added .z10-add__tick { display: block; }
@media (max-width: 767px) { .z10-specs .z10-specs__part .z10-add { grid-column: 2; justify-self: start; margin: 2px 0 0; } }
/* the top bar's button while there are products on the list: "Enquire about 3 products" */
.z10-topbar__cta.has-products { gap: 6px; }
.z10-topbar__cta .z10-icon { width: 17px; height: 17px; }
.z10-topbar__short { display: none; }
@media (max-width: 600px) { .z10-topbar__cta.has-products .z10-topbar__long { display: none; } .z10-topbar__cta.has-products .z10-topbar__short { display: inline; } }
/* the pop-up after "Add to enquiry": the list so far, Add more products or Send enquiry */
.z10-enq { width: min(520px, calc(100vw - 24px)); height: fit-content; }
.z10-enq__body { padding: 0 18px 4px; }
.z10-enq__note { margin: 0 0 10px; font-size: 15px; color: var(--z10-muted); }
.z10-enq__list { max-height: 40vh; overflow-y: auto; }
.z10-enq .z10-chosen__item.is-new { border-color: var(--z10-green-dark); background: #eaf6ee; }
.z10-enq .z10-picker__foot { justify-content: space-between; flex-wrap: wrap; border-top: 1px solid var(--z10-line); margin-top: 12px; }
.z10-enq .z10-picker__head h2 { font-size: 20px; }
.z10-enq .z10-picker__foot .z10-button { flex: 1 1 0; justify-content: center; box-sizing: border-box; height: 48px; min-height: 0; margin: 0; padding: 0 14px !important; line-height: 1.2; white-space: nowrap; }
@media (max-width: 640px) {
  .z10-enq { width: calc(100vw - 24px); max-width: none; height: fit-content; max-height: calc(100dvh - 24px); margin: auto; border-radius: 12px; }
  .z10-enq .z10-picker__foot .z10-button { font-size: 15px; padding: 10px 8px; }
}

/* contact page: Choose products is green like Send enquiry; the theme turns buttons dark grey on hover and
   focus (and focus stays after the pop-up closes), so keep the green */
.z10-form .z10-button--primary:not(:disabled), .z10-form .z10-button--primary:not(:disabled):focus { background: var(--z10-green-dark) !important; border-color: var(--z10-green-dark) !important; color: #fff !important; }
.z10-form .z10-button--primary:not(:disabled):hover, .z10-form .z10-button--primary:not(:disabled):focus-visible { background: #00662b !important; border-color: #00662b !important; }

/* the contact form's chosen products: a one-line ribbon that scrolls sideways, always the same height */
.z10-chosen--ribbon { flex-wrap: nowrap; min-height: 44px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: thin; padding: 0 0 4px; align-items: center; }
.z10-chosen--ribbon .z10-chosen__item { flex: none; }
.z10-chosen__none { margin: 0; padding: 0 2px; font-size: 14.5px; color: var(--z10-muted); list-style: none; }

/* product pages: Add to enquiry under the two buttons, full width, and its "Which model?" pop-up */
.z10-product__actions .z10-button--enquire { flex: 1 1 100%; gap: 8px; background: #fff !important; border: 2px solid var(--z10-green-dark) !important; color: var(--z10-green-dark) !important; }
.z10-product__actions .z10-button--enquire:hover, .z10-product__actions .z10-button--enquire:focus-visible { background: #eaf6ee !important; }
.z10-button--enquire .z10-icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.z10-models { width: min(620px, calc(100vw - 24px)); height: fit-content; }
.z10-models__hint { margin: -2px 18px 10px; font-size: 15px; color: var(--z10-muted); }
.z10-models__list { flex: 1 1 auto; min-height: 0; overflow-y: auto; margin: 0 18px; border: 1px solid var(--z10-line); border-radius: 8px; padding: 4px 6px;
  display: grid; grid-template-columns: 22px max-content minmax(0, 1fr); align-content: start; column-gap: 12px; }   /* one column per part: the descriptions line up after the longest code */
.z10-models__group { grid-column: 1 / -1; margin: 10px 6px 2px; font-size: 12.5px; font-weight: 900; letter-spacing: .03em; text-transform: uppercase; color: var(--z10-teal-text); }
.z10-models__item { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: center; row-gap: 4px; margin: 0; padding: 8px; border-radius: 6px; cursor: pointer; }
.z10-models__item:hover { background: var(--z10-soft); }
.z10-models__item:has(input:checked) { background: #eaf6ee; }
.z10-models__item input { width: 18px; height: 18px; margin: 0; accent-color: var(--z10-green-dark); }
.z10-models__code { font-weight: 900; color: var(--z10-navy); white-space: nowrap; }
.z10-models__desc { font-size: 13.5px; color: var(--z10-muted); }
.z10-models .z10-picker__foot { justify-content: space-between; border-top: 1px solid var(--z10-line); margin-top: 12px; }
.z10-models .z10-picker__foot .z10-button { flex: 1 1 0; justify-content: center; box-sizing: border-box; height: 48px; min-height: 0; margin: 0; padding: 0 14px !important; }
@media (max-width: 640px) {
  .z10-models { width: calc(100vw - 24px); max-width: none; height: fit-content; max-height: calc(100dvh - 24px); margin: auto; border-radius: 12px; }
  .z10-models__list { grid-template-columns: 22px minmax(0, 1fr); }
  .z10-models__desc { grid-column: 2; }
}

/* contact page: a fixed-size message box that scrolls (no resizing), and a map whose foot is level with it
   (height set by site.js contactMap when the columns are side by side) */
form[data-z10-form="contact"] textarea[name=message] { height: 164px; min-height: 0; resize: none; overflow-y: auto; }
.z10-contact-address-col.is-level .z10-map img { object-fit: cover; object-position: center; }

/* the empty ribbon's Select products button: compact, so the ribbon keeps its height */
.z10-chosen--ribbon .z10-choose--first { display: inline-flex; align-items: center; gap: 6px; height: 40px; min-height: 0; margin: 0; padding: 0 16px !important; font-size: 15px; }
.z10-chosen--ribbon .z10-choose--first .z10-icon { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.z10-chosen--ribbon .z10-chosen__none { padding: 0; }
.z10-form__actions .z10-choose[hidden] { display: none; }

/* the enquiry pop-up's Send enquiry, greyed out while the list is empty */
.z10-enq .z10-enq__send.is-disabled { background: #a3b2b8 !important; border-color: #a3b2b8 !important; color: #fff !important; cursor: not-allowed; pointer-events: none; }

/* the contact form's products for "Something else": greyed out and switched off */
.z10-topic-products.is-off .z10-chosen { opacity: .5; }
.z10-topic-products.is-off .z10-field__label { color: var(--z10-muted); }
.z10-form .z10-choose:disabled { background: #a3b2b8 !important; border-color: #a3b2b8 !important; color: #fff !important; opacity: 1; cursor: not-allowed; }

/* "(x clear all)" beside the products question */
.z10-clear-all { display: inline-flex; align-items: center; gap: 0; margin: 0 0 0 4px; padding: 0 !important; border: 0; background: none !important; color: var(--z10-muted) !important; font: 400 14px var(--z10-font); cursor: pointer; vertical-align: baseline; }
.z10-clear-all[hidden] { display: none; }
.z10-clear-all svg { width: 13px; height: 13px; margin: 0 3px 0 1px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.z10-clear-all:hover, .z10-clear-all:focus-visible { color: var(--z10-navy) !important; text-decoration: underline; }
.z10-clear-all:disabled { cursor: not-allowed; opacity: .6; text-decoration: none; }

/* the contact form's reply ("Thank you - your enquiry has been sent." / "We usually reply...") beside Send */
.z10-form__actions .z10-form__status { flex: 1 1 260px; margin: 0; padding: 3px 12px; font-size: 14px; line-height: 1.3; }   /* two lines, no taller than the buttons */
.z10-form__actions .z10-form__status:empty { display: none; }
/* while sending, Add/Change Products steps aside, so "Sending..." and the reply appear in the same place */
.z10-form.is-sending .z10-form__actions .z10-choose { display: none; }
/* narrow screens: Send enquiry and Add/Change Products stay side by side; a reply goes on the line below */
@container (max-width: 520px) {
  .z10-form__actions { flex-wrap: wrap; gap: 8px; }
  .z10-form__actions .z10-button { flex: 0 0 auto; min-width: 0; padding: 12px 16px !important; font-size: 15px; white-space: nowrap; }   /* Send keeps its size with or without the second button */
  .z10-form__actions .z10-choose { flex: 1 1 auto; }   /* Add/Change Products takes the rest of the line */
  .z10-form__actions .z10-form__status { flex-basis: 100%; }
}
@container (max-width: 330px) {
  .z10-form__actions { gap: 6px; }
  .z10-form__actions .z10-button { padding: 11px 6px !important; font-size: 13px; }
}
/* the product list pop-up on a phone: the whole screen, its Done always visible (site.js sets the height
   to what's on screen, for iPhone toolbars). Everything fits without breaking: five range tiles and three
   part codes to a line (the codes sized so the longest, e.g. CK300-AST-6-LP4, fits); on the smallest
   phones (under 375px) four tiles and two codes to a line */
@media (max-width: 560px) {
  .z10-picker--pop { position: fixed; inset: 0; width: auto; height: auto; max-width: none; max-height: none; margin: 0; border-radius: 0; }
  .z10-picker--pop .z10-picker__foot { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  .z10-picker--pop .z10-cat__name { font-size: 8.5px; overflow-wrap: normal; word-break: normal; hyphens: none; white-space: normal; }
  .z10-picker--pop .z10-picklist .z10-picker__list { padding: 0 4px 6px; }
  .z10-picker--pop .z10-picklist .z10-picker__group { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2px; }
  .z10-picker--pop .z10-picklist .z10-picker__group > legend { padding-left: 4px; }
  .z10-picker--pop .z10-picklist .z10-picker__item { padding: 2px 2px; gap: 0; }
  .z10-picker--pop .z10-picklist .z10-picker__pick { grid-template-columns: 15px minmax(0, 1fr); gap: 4px; min-height: 34px; }
  .z10-picker--pop .z10-picklist .z10-picker__item input[type=checkbox] { width: 15px; height: 15px; }
  .z10-picker--pop .z10-picklist .z10-picker__code { font-size: clamp(10px, 2.68vw, 12.5px); line-height: 1.2; letter-spacing: -.015em; white-space: nowrap; }
}
@media (max-width: 374px) {
  .z10-picker--pop .z10-cats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .z10-picker--pop .z10-picklist .z10-picker__group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .z10-picker--pop .z10-picklist .z10-picker__code { font-size: 12.5px; }
}

/* the product search: a hint too long for the box ends in "..." rather than being cut off */
[data-z10-picker-search] { text-overflow: ellipsis; }
[data-z10-picker-search]::placeholder { text-overflow: ellipsis; }

/* home page, two or four tiles to a line (phones, tablets): the two recessed downlights (MAX, Mini MAX) side
   by side, then the two exit signs (SPEEDY BOX, VELOCITY BLADE); Twin Spots and the rest follow */
@media (max-width: 1024px) {
  .z10-tiles > li:nth-child(5), .z10-tiles > li:nth-child(n+8) { order: 1; }   /* Twin Spots (5th) moves after the exit signs */
}

/* product photos in more than one colour: the thumbnails and, beside them, a colour toggle (White | Black) */
.z10-gallery__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: 10px; }
.z10-gallery__bar .z10-gallery__thumbs { margin-top: 0; }
.z10-colours { display: inline-flex; align-items: center; gap: 6px; font-family: var(--z10-font); }
.z10-colours__label { margin-right: 4px; font-size: 14px; font-weight: 800; color: var(--z10-muted); }
.z10-gallery .z10-colour { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; margin: 0; padding: 6px 12px 6px 8px !important; border: 2px solid var(--z10-line) !important; border-radius: 20px; background: #fff !important; color: var(--z10-navy) !important; font: 800 14px var(--z10-font); cursor: pointer; }
.z10-gallery .z10-colour:hover, .z10-gallery .z10-colour:focus-visible { border-color: #93a6ad !important; }
.z10-gallery .z10-colour[aria-pressed="true"] { border-color: var(--z10-navy) !important; box-shadow: 0 0 0 1px var(--z10-navy); }
.z10-colour__dot { width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25); }
.z10-colour__dot--white { background: #f4f4f1; }
.z10-colour__dot--black { background: #1d1d1b; }
/* on phones: no "Colour" label; White / Black sit on the same line as the thumbnails, which scroll sideways
   if there are more than fit */
@media (max-width: 767px) {
  .z10-gallery__bar { flex-wrap: nowrap; gap: 10px; }
  .z10-gallery__bar .z10-gallery__thumbs { flex: 1 1 auto; min-width: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .z10-gallery__bar .z10-gallery__thumbs::-webkit-scrollbar { display: none; }
  .z10-gallery__bar .z10-gallery__thumbs { gap: 6px; }
  .z10-gallery__bar .z10-gallery__thumb { flex: none; width: 48px; height: 36px; padding: 2px; }   /* three fit beside White / Black */
  .z10-colours { flex: none; gap: 5px; }
  .z10-colours__label { display: none; }
  .z10-gallery .z10-colour { gap: 5px; min-height: 34px; padding: 4px 10px 4px 5px !important; font-size: 13px; }
  .z10-colour__dot { width: 17px; height: 17px; }
}
@media (max-width: 900px) { .z10-product__top { grid-template-columns: minmax(0, 1fr); } }   /* the photo column never grows past the page */
@media (max-width: 360px) {
  .z10-gallery .z10-colour { gap: 4px; min-height: 32px; padding: 3px 8px 3px 4px !important; font-size: 12px; }
  .z10-colour__dot { width: 15px; height: 15px; }
  .z10-colours { gap: 4px; }
  .z10-gallery__bar { gap: 8px; }
}

/* the colour in "Which model?" (as chosen under the photo): a panel under the title, before the list; and the
   colour on the chosen products */
.z10-models__colours { display: flex; align-items: center; gap: 8px; margin: 0 18px 12px; padding: 10px 12px; border-radius: 10px; background: var(--z10-soft); }
.z10-models__colours[hidden] { display: none; }
.z10-models__colour-label { margin-right: auto; font: 900 15px var(--z10-font); color: var(--z10-navy); }
.z10-models .z10-models__colour { display: inline-flex; align-items: center; gap: 8px; min-width: 112px; min-height: 42px; margin: 0; padding: 6px 12px 6px 8px !important; border: 2px solid var(--z10-line) !important; border-radius: 8px; background: #fff !important; color: var(--z10-navy) !important; font: 800 15px var(--z10-font); cursor: pointer; }
.z10-models .z10-models__colour:hover, .z10-models .z10-models__colour:focus-visible { border-color: #93a6ad !important; }
.z10-models .z10-models__colour[aria-pressed="true"] { border-color: var(--z10-green-dark) !important; box-shadow: 0 0 0 1px var(--z10-green-dark); background: #eaf6ee !important; }
.z10-models .z10-colour__dot { width: 22px; height: 22px; }
.z10-models__tick { width: 18px; height: 18px; margin-left: auto; color: var(--z10-green-dark); visibility: hidden; }
.z10-models__colour[aria-pressed="true"] .z10-models__tick { visibility: visible; }
.z10-models__hint { margin-top: 0 !important; }
@media (max-width: 420px) { .z10-models .z10-models__colour { min-width: 0; padding: 6px 10px 6px 7px !important; } .z10-models__colour-label { font-size: 14px; } }
.z10-chosen__colour { padding: 1px 7px; border-radius: 10px; background: var(--z10-soft); color: var(--z10-ink); font-size: 12.5px; font-weight: 800; white-space: nowrap; }

/* spec table headings are never clipped. The caption (the title above the table, e.g. "Visual Downlights")
   is part of the table box, so the table's overflow: hidden clipped it: its first letter lost its left edge
   to the 1px border and the rounded corner. So the table has no overflow: hidden, and its corner cells are
   rounded instead, so their backgrounds (the navy heading row, a striped or pointed-at last row) stay inside
   the border. The last row shown is the last row, or on a paged table the one before the hidden rows. Phones
   have one card per row (above).
   The box round the table scrolls sideways (overflow-x: auto), which clips at its edges too, and on product
   pages it had no padding, so a letter that reaches a little past its start (the T of "Twin Spots") lost its
   edge there. It gets 4px of room each side, taken back with negative margins, so the table and its title
   still line up with the text above. */
.z10-product__panel .z10-specs { padding-left: 4px; padding-right: 4px; margin-left: -4px; margin-right: -4px; }
@media (min-width: 901px) {
  .z10-specs .z10-specs__table thead tr > :first-child { border-top-left-radius: calc(var(--z10-radius) - 1px); }
  .z10-specs .z10-specs__table thead tr > :last-child { border-top-right-radius: calc(var(--z10-radius) - 1px); }
  .z10-specs .z10-specs__table tbody tr:is(:last-child, :has(+ tr.z10-off)) > :first-child { border-bottom-left-radius: calc(var(--z10-radius) - 1px); }
  .z10-specs .z10-specs__table tbody tr:is(:last-child, :has(+ tr.z10-off)) > :last-child { border-bottom-right-radius: calc(var(--z10-radius) - 1px); }
}

/* "Which model?" on a page with -BLK part codes lists only the chosen colour's models */
.z10-models__item[hidden], .z10-models__group[hidden], .z10-models__none[hidden] { display: none !important; }
.z10-models__none { margin: 8px 4px; color: var(--z10-muted); font-size: 15px; }

/* spec tables: the Colour column (ranges with -BLK part codes): a white or black dot on every screen; the word
   is there for screen readers only */
@media (min-width: 901px) { .z10-specs .z10-specs__table .z10-specs__colour { padding-left: 10px; padding-right: 10px; } }
.z10-specs .z10-colour-cell { display: inline-flex; align-items: center; vertical-align: middle; }
.z10-specs .z10-colour-cell .z10-colour__dot { flex: none; width: 20px; height: 20px; }
.z10-specs .z10-colour-cell__word { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* phones (one card per part): the colour is the least important line, so it comes after Testing facility,
   just before the downloads */
@media (max-width: 900px) {
  .z10-specs .z10-specs__table tbody tr:has(> .z10-specs__colour) { display: flex; flex-direction: column; }
  .z10-specs .z10-specs__table tbody tr > .z10-specs__colour { order: 1; }
  .z10-specs .z10-specs__table tbody tr:has(> .z10-specs__colour) > .z10-specs__downloads { order: 2; }
}
