.product-landing .prod-hero { min-height: 700px; }
.product-landing .prod-hero-copy h1 { max-width: 640px; }
.product-landing .prod-hero-visual { min-height: 520px; }
.product-landing .prod-hero-visual img { min-height: 520px; }
.product-landing .prod-highlight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 42px; }
.product-landing .prod-highlight-card { display: grid; gap: 7px; padding: 22px; border: 1px solid var(--prod-line); border-radius: 20px; background: #fff; }
.product-landing .prod-highlight-card strong { color: #78a800; font: 500 24px/1.1 var(--prod-heading-font); }
.product-landing .prod-highlight-card span { color: var(--prod-muted); font-size: 13px; line-height: 1.4; }
.product-landing .prod-note { margin: 24px 0 0; color: var(--prod-muted); font-size: 13px; line-height: 1.5; }
.product-landing .prod-compare-table-wrap { overflow-x: auto; margin-top: 40px; border: 1px solid var(--prod-line); border-radius: 20px; background: #fff; }
.product-landing .prod-compare-table { width: 100%; min-width: 560px; border-collapse: collapse; text-align: left; }
.product-landing .prod-compare-table th, .product-landing .prod-compare-table td { padding: 17px 20px; border-bottom: 1px solid var(--prod-line); font-size: 14px; line-height: 1.4; }
.product-landing .prod-compare-table th { color: var(--prod-ink); font-family: var(--prod-ui-font); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.product-landing .prod-compare-table td { color: var(--prod-muted); }
.product-landing .prod-compare-table tr:last-child td { border-bottom: 0; }
.product-landing .prod-compare-table td strong { color: var(--prod-ink); }
.product-landing .prod-price-card--estimate { justify-content: center; }
.product-landing .prod-price-card--estimate h3 { font-size: clamp(28px, 4vw, 44px); }
.product-landing .prod-process-list { display: grid; gap: 15px; margin: 34px 0 0; padding: 0; list-style: none; }
.product-landing .prod-process-list li { display: grid; grid-template-columns: 34px 1fr; gap: 13px; align-items: start; color: var(--prod-muted); font-size: 14.5px; line-height: 1.5; }
.product-landing .prod-process-list li::before { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--prod-lime); color: var(--prod-ink); content: counter(item); counter-increment: item; font: 500 12px/1 var(--prod-ui-font); }
.product-landing .prod-process-list { counter-reset: item; }
.product-landing .prod-icon-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 35px; }
.product-landing .prod-icon-list li { display: flex; gap: 11px; align-items: center; color: var(--prod-muted); font-size: 14px; line-height: 1.35; list-style: none; }
.product-landing .prod-icon-list li::before { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: var(--prod-lime); content: ""; }
.product-landing .prod-final-wrap { padding-bottom: 72px; }





.products-hero { min-height: 680px; }
.products-hero-visual { min-height: 520px; }
.products-hero-card { min-width: 270px; }
.products-intro { background: #fff; }
.products-intro-grid { align-items: start; }
.products-intro-copy { max-width: 590px; color: var(--prod-muted); font-size: 16px; line-height: 1.55; }
.products-intro-copy p { margin: 0; }
.products-intro-copy p + p { margin-top: 18px; }
.products-catalogue { background: var(--prod-mint); }
.products-section-heading { max-width: 720px; }
.products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 48px; }
.products-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--prod-line); border-radius: 24px; background: #fff; box-shadow: 0 12px 30px rgba(16,17,15,.04); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.products-card:hover { border-color: rgba(112,157,0,.45); box-shadow: 0 18px 38px rgba(16,17,15,.09); transform: translateY(-4px); }
.products-card-image { position: relative; height: 190px; overflow: hidden; background: #dfead7; }
.products-card-image img { width: 100%; height: 100%; object-fit: cover; }
.products-card-image span { position: absolute; right: 14px; bottom: 14px; padding: 7px 10px; border-radius: 999px; background: rgba(250,249,244,.9); color: var(--prod-ink); font: 11px/1.2 var(--prod-ui-font); }
.products-card-body { display: flex; flex: 1; flex-direction: column; padding: 26px; }
.products-card-body .prod-eyebrow { margin-bottom: 12px; font-size: 10px; }
.products-card-body h3 { margin: 0; font: 400 24px/1.15 var(--prod-heading-font); letter-spacing: -.03em; }
.products-card-body > p:not(.prod-eyebrow) { min-height: 66px; margin: 15px 0 0; color: var(--prod-muted); font-size: 14px; line-height: 1.45; }
.products-card-body ul { display: grid; gap: 8px; margin: 20px 0 24px; padding: 0; list-style: none; color: var(--prod-muted); font-size: 13px; line-height: 1.35; }
.products-card-body li { display: flex; gap: 9px; align-items: flex-start; }
.products-card-body li::before { width: 7px; height: 7px; flex: 0 0 7px; margin-top: 5px; border-radius: 50%; background: var(--prod-lime); content: ""; }
.products-card-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--prod-line); color: var(--prod-ink); font: 500 13px/1.2 var(--prod-ui-font); text-decoration: none; }
.products-card-link span { color: #78a800; font-size: 18px; transition: transform .2s ease; }
.products-card-link:hover span, .products-card-link:focus-visible span { transform: translateX(4px); }
.products-categories { background: #fff; }
.products-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 46px; }
.products-category-card { display: flex; min-height: 270px; flex-direction: column; justify-content: space-between; gap: 28px; padding: 26px; border: 1px solid var(--prod-line); border-radius: 22px; background: var(--prod-mint); }
.products-category-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--prod-lime); color: var(--prod-ink); font: 500 12px/1 var(--prod-ui-font); }
.products-category-card .prod-eyebrow { margin-bottom: 10px; font-size: 10px; }
.products-category-card h3 { margin: 0; font: 400 22px/1.2 var(--prod-heading-font); }
.products-category-card ul { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; color: var(--prod-muted); font-size: 13px; line-height: 1.35; }
.products-category-card li { display: flex; gap: 8px; }
.products-category-card li::before { width: 6px; height: 6px; flex: 0 0 6px; margin-top: 5px; border-radius: 50%; background: #78a800; content: ""; }
.products-category-card a { color: var(--prod-ink); text-decoration: underline; text-decoration-color: var(--prod-lime); text-underline-offset: 3px; }
.products-comparison { background: #fdfdfb; }
.products-comparison .prod-compare-table a { color: var(--prod-ink); font: 500 13px/1.2 var(--prod-ui-font); text-decoration: underline; text-decoration-color: var(--prod-lime); text-underline-offset: 4px; }
.products-process { background: #f9fbf7; }
.products-process-panel { display: flex; min-height: 340px; flex-direction: column; justify-content: flex-end; padding: 38px; border-radius: var(--prod-radius); background: #111; color: #fff; box-shadow: 0 18px 40px rgba(16,17,15,.12); }
.products-process-number { margin-bottom: auto; color: var(--prod-lime); font: 500 13px/1 var(--prod-ui-font); letter-spacing: .12em; }
.products-process-panel h3 { margin: 0; font: 400 30px/1.15 var(--prod-heading-font); }
.products-process-panel p { max-width: 370px; margin: 16px 0 24px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.5; }
.products-process-panel .products-card-link { border-color: rgba(255,255,255,.2); color: #fff; }
.products-why { background: #fdfdfb; }
.products-why-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 1050px; margin: 44px auto 0; }
.products-why-card { padding: 28px; border: 1px solid var(--prod-line); border-radius: 20px; background: #fff; }
.products-why-card h3 { margin: 0; font: 400 21px/1.2 var(--prod-heading-font); }
.products-why-card p { margin: 14px 0 0; color: var(--prod-muted); font-size: 14px; line-height: 1.5; }
.products-final-wrap { background: #fdfdfb; }
.products-faq { background: #fff; }
.products-faq-list { display: grid; gap: 12px; max-width: 860px; margin: 44px auto 0; }
.products-faq-item { overflow: hidden; border: 1px solid var(--prod-line); border-radius: 18px; background: #fff; }
.products-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; cursor: pointer; list-style: none; font: 500 17px/1.3 var(--prod-heading-font); }
.products-faq-item summary::-webkit-details-marker { display: none; }
.products-faq-item summary::after { color: #78a800; content: "+"; font: 400 24px/1 var(--prod-ui-font); }
.products-faq-item[open] summary::after { content: "−"; }
.products-faq-item p { margin: 0; padding: 0 24px 22px; color: var(--prod-muted); font-size: 14px; line-height: 1.5; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1199px) and (min-width: 810px) {
  .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .products-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 809px) {
  
  .products-hero { min-height: auto; }
  .products-hero-visual { min-height: 380px; }
  .products-grid { grid-template-columns: 1fr; gap: 16px; }
  .products-category-grid, .products-why-grid { grid-template-columns: 1fr; }
  .products-card-image { height: 210px; }
  .products-card-body > p:not(.prod-eyebrow) { min-height: 0; }
  .products-process-panel { min-height: 280px; padding: 28px; }
  .products-faq-item summary { padding: 18px 20px; font-size: 16px; }
  .products-faq-item p { padding: 0 20px 20px; }
}
@media (max-width: 1199px) and (min-width: 810px) {
  .product-landing .prod-highlight-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 809px) {
  .product-landing .prod-hero-visual, .product-landing .prod-hero-visual img { min-height: 380px; }
  .product-landing .prod-highlight-grid, .product-landing .prod-icon-list { grid-template-columns: 1fr; }
  .product-landing .prod-compare-table th, .product-landing .prod-compare-table td { padding: 14px; }
}

/* Shared runtime styles for the remaining product pages. */




.product-runtime .prod-hero { min-height: 700px; }
.product-runtime .prod-hero-copy h1 { max-width: 680px; }
.product-runtime .prod-hero-visual, .product-runtime .prod-hero-visual img { min-height: 520px; }
.product-runtime .prod-highlight-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 42px; }
.product-runtime .prod-highlight-card { display: grid; gap: 7px; min-height: 112px; padding: 22px; border: 1px solid var(--prod-line); border-radius: 20px; background: #fff; }
.product-runtime .prod-highlight-card strong { color: #78a800; font: 500 24px/1.1 var(--prod-heading-font); }
.product-runtime .prod-highlight-card span { color: var(--prod-muted); font-size: 13px; line-height: 1.4; }
.product-runtime .prod-note { margin: 24px 0 0; color: var(--prod-muted); font-size: 13px; line-height: 1.5; }
.product-runtime .runtime-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--prod-lime); color: var(--prod-ink); }
.product-runtime .runtime-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.product-runtime .runtime-illustration { display: grid; align-content: center; gap: 28px; min-height: 430px; padding: 42px; background: #111; color: #fff; }
.product-runtime .runtime-flow { display: flex; align-items: center; justify-content: center; gap: 18px; }
.product-runtime .runtime-flow > div { display: grid; justify-items: center; gap: 10px; color: rgba(255,255,255,.8); font: 12px/1.2 var(--prod-ui-font); text-align: center; }
.product-runtime .runtime-flow b { color: var(--prod-lime); font-size: 20px; font-weight: 400; }
.product-runtime .runtime-illustration > p { margin: 0; color: rgba(255,255,255,.65); font-size: 13px; line-height: 1.5; text-align: center; }
.product-runtime .runtime-list-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr); gap: 38px; align-items: start; margin-top: 42px; }
.product-runtime .runtime-list-grid .prod-icon-list { margin-top: 0; }
.product-runtime .runtime-callout { padding: 28px; border-radius: 22px; background: var(--prod-lime); }
.product-runtime .runtime-callout span { font: 500 12px/1.2 var(--prod-ui-font); letter-spacing: .1em; text-transform: uppercase; }
.product-runtime .runtime-callout p { margin: 15px 0 0; color: rgba(16,17,15,.72); font-size: 15px; line-height: 1.45; }
.product-runtime .runtime-size-links { margin-top: 42px; padding-top: 25px; border-top: 1px solid var(--prod-line); }
.product-runtime .runtime-size-links h3 { margin: 0 0 16px; font: 500 16px/1.3 var(--prod-heading-font); }
.product-runtime .runtime-size-links > div { display: grid; gap: 8px; }
.product-runtime .runtime-size-links a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--prod-mint); color: var(--prod-ink); font-size: 14px; text-decoration: none; }
.product-runtime .runtime-size-links a:hover, .product-runtime .runtime-size-links a:focus-visible { outline: 2px solid var(--prod-lime); outline-offset: 2px; }
.product-runtime .runtime-size-links .esteem-cta-arrow { display: inline; width: auto; height: auto; padding: 0; background: transparent; color: inherit; }
.product-runtime .runtime-process-grid { margin-top: 42px; }
.product-runtime .runtime-process-grid .prod-step-card { z-index: 1; min-height: 170px; }
.product-runtime .runtime-process-grid .prod-step-card > div { color: var(--prod-muted); font-size: 14px; line-height: 1.45; }
.product-runtime .runtime-benefit-visual { display: grid; place-items: center; min-height: 380px; padding: 42px; border-radius: var(--prod-radius); background: linear-gradient(145deg, #111, #2b3b21); color: #fff; }
.product-runtime .runtime-benefit-visual div { max-width: 270px; text-align: center; }
.product-runtime .runtime-benefit-visual strong { color: var(--prod-lime); font: 500 28px/1.1 var(--prod-heading-font); }
.product-runtime .runtime-benefit-visual p { margin: 18px 0 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.5; }
.product-runtime .runtime-centered { max-width: 760px; margin-inline: auto; text-align: center; }
.product-runtime .runtime-centered h2, .product-runtime .runtime-centered p { margin-inline: auto; }
.product-runtime .runtime-why-grid { margin-top: 42px; }
@media (max-width: 1199px) and (min-width: 810px) {
  .product-runtime .prod-highlight-grid { grid-template-columns: repeat(2, 1fr); }
  .product-runtime .runtime-list-grid { grid-template-columns: 1fr; }
}
@media (max-width: 809px) {
  
  .product-runtime .prod-hero { padding-top: 120px; }
  .product-runtime .prod-hero-visual, .product-runtime .prod-hero-visual img { min-height: 380px; }
  .product-runtime .prod-highlight-grid { grid-template-columns: 1fr; }
  .product-runtime .runtime-flow { flex-wrap: wrap; gap: 14px; }
  .product-runtime .runtime-flow b { display: none; }
  .product-runtime .runtime-illustration { min-height: 340px; padding: 25px; }
  .product-runtime .runtime-benefit-visual { min-height: 300px; }
}

@media (max-width: 809px) {
  .product-landing .prod-container,
  .product-runtime .prod-container { width: min(calc(100% - 32px), 640px); }

  .product-landing .prod-hero-grid,
  .product-runtime .prod-hero-grid,
  .product-landing .prod-split,
  .product-runtime .prod-split { min-width: 0; }

  .product-landing .prod-hero-copy,
  .product-runtime .prod-hero-copy,
  .product-landing .prod-hero-copy h1,
  .product-runtime .prod-hero-copy h1,
  .product-landing .prod-lead,
  .product-runtime .prod-lead { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }

  .product-landing .prod-actions,
  .product-runtime .prod-actions { width: 100%; min-width: 0; }

  .product-landing .prod-hero-visual,
  .product-runtime .prod-hero-visual { width: 100%; min-width: 0; }

  .product-landing .prod-spec-card,
  .product-runtime .prod-spec-card { min-width: 0; max-width: calc(100% - 32px); }

  .product-landing .prod-compare-table-wrap { max-width: 100%; overflow-x: auto; }
}

@media (max-width: 359px) {
  .product-landing .prod-container,
  .product-runtime .prod-container { width: calc(100% - 24px); }
  .product-landing .prod-final { padding-inline: 18px; }
}
