/* Building blocks the server drops into a hand-written landing page ({{PRODUCTS}} and {{LEAD_FORM}}, see LandingHtml.cs).
   Everything is prefixed "lpx-" and sits inside a .lpx wrapper, so it cannot clash with the page's own CSS. Mobile first. */
.lpx { --a: #f26b1d; --a-ink: #fff; --ink: #1c2430; --muted: #5f6b7a; --line: #e4e7ec; --r: 16px; color: var(--ink); line-height: 1.55; text-align: left; }
.lpx *, .lpx *::before, .lpx *::after { box-sizing: border-box; }

/* ---- products ---- */
.lpx-products { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lpx-pcard { background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; color: var(--ink); }
.lpx-ph { aspect-ratio: 1 / 1; background: #fff; display: grid; place-items: center; padding: 10px; }
.lpx-ph img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lpx-bd { padding: 4px 12px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
.lpx-br { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--a); min-height: 1.1em; }
.lpx-pcard h3 { margin: 0; font-size: .92rem; line-height: 1.35; font-weight: 600; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; min-height: 2.7em; }
.lpx-pcard h3 a { color: inherit; text-decoration: none; }
.lpx-sku { font-size: .78rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lpx-pr { margin-top: auto; padding-top: 8px; font-weight: 700; color: var(--a); font-size: 1.02rem; }
.lpx-pr s { color: var(--muted); font-weight: 400; font-size: .8rem; margin-left: 6px; }
.lpx-pr .lpx-ask { color: var(--muted); font-weight: 500; font-size: .88rem; }
.lpx-askbtn { margin-top: 8px; min-height: 42px; border-radius: 11px; border: 2px solid var(--a); background: transparent; color: var(--a); font: inherit; font-weight: 700; font-size: .92rem; cursor: pointer; }
.lpx-askbtn:hover { background: var(--a); color: var(--a-ink); }
.lpx-gobtn { margin-top: 8px; min-height: 42px; border-radius: 11px; border: 2px solid var(--a); color: var(--a); font-weight: 700; font-size: .92rem; display: flex; align-items: center; justify-content: center; text-decoration: none; gap: 8px; position: relative; overflow: hidden; isolation: isolate; background: transparent; transition: color .25s, transform .25s, box-shadow .25s, border-color .25s; }
.lpx-gobtn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--a); transform: translateX(-101%); transition: transform .3s ease; }
.lpx-gobtn::after { content: "\2192"; display: inline-block; transition: transform .25s; }
.lpx-gobtn:hover, .lpx-gobtn:focus-visible { color: var(--a-ink); transform: translateY(-2px); box-shadow: 0 8px 18px color-mix(in srgb, var(--a) 35%, transparent); }
.lpx-gobtn:hover::before, .lpx-gobtn:focus-visible::before { transform: translateX(0); }
.lpx-gobtn:hover::after { transform: translateX(4px); }
.lpx-gobtn:active { transform: translateY(0); box-shadow: none; }
@media (min-width: 600px) { .lpx-products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 992px) { .lpx-products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---- lead form ---- */
.lpx-form { background: #fff; color: var(--ink); border-radius: 20px; padding: 20px; box-shadow: 0 24px 50px rgba(0, 0, 0, .25); display: grid; gap: 14px; }
.lpx-field label { display: block; font-weight: 700; font-size: .92rem; margin-bottom: 5px; }
.lpx-field label small { font-weight: 400; color: var(--muted); }
.lpx-field input, .lpx-field textarea { width: 100%; min-height: 52px; padding: 12px 14px; border: 2px solid var(--line); border-radius: 12px; font: inherit; font-size: 16px; /* 16px: iOS does not zoom into the field */ color: var(--ink); background: #fff; }
.lpx-field textarea { min-height: 96px; resize: vertical; }
.lpx-field input:focus, .lpx-field textarea:focus { outline: none; border-color: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--a) 20%, transparent); }
.lpx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lpx-err { color: #c0392b; font-weight: 600; font-size: .92rem; min-height: 1.2em; }
.lpx-fine { font-size: .8rem; color: var(--muted); margin: 0; text-align: center; }
.lpx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 12px 22px; border-radius: 14px; border: 0; background: var(--a); color: var(--a-ink); font: inherit; font-size: 1.05rem; font-weight: 700; cursor: pointer; box-shadow: 0 10px 24px color-mix(in srgb, var(--a) 40%, transparent); -webkit-tap-highlight-color: transparent; }
.lpx-btn:active { transform: scale(.98); }
.lpx-btn[disabled] { opacity: .6; cursor: default; }
.lpx-thanks { display: none; background: #fff; color: var(--ink); border-radius: 20px; padding: 30px 22px; text-align: center; box-shadow: 0 24px 50px rgba(0, 0, 0, .25); }
.lpx-thanks h3 { margin: 0 0 6px; }
.lpx-thanks p { margin: 0; color: var(--muted); }
.lpx-ok { width: 64px; height: 64px; border-radius: 50%; background: #e7f8ee; color: #12a150; display: grid; place-items: center; font-size: 1.8rem; margin: 0 auto 12px; }

/* product cards: dark text, blue button, image zoom + shine on hover */
.lpx-pcard { --btn: #0b4fb3; --txt: #14213d; }
.lpx-pcard .lpx-br { color: var(--txt); }
.lpx-pcard .lpx-pr { color: var(--txt); }
.lpx-pcard .lpx-gobtn { border-color: var(--btn); color: var(--btn); }
.lpx-pcard .lpx-gobtn::before { background: var(--btn); }
.lpx-pcard .lpx-gobtn:hover, .lpx-pcard .lpx-gobtn:focus-visible { color: #fff; box-shadow: 0 8px 18px rgba(11,79,179,.32); }
.lpx-pcard .lpx-ph { position: relative; overflow: hidden; }
.lpx-pcard .lpx-ph img { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.lpx-pcard:hover .lpx-ph img { transform: scale(1.08); }
.lpx-pcard .lpx-ph::after { content: ""; position: absolute; top: 0; left: -75%; width: 50%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform: skewX(-20deg); pointer-events: none; }
.lpx-pcard:hover .lpx-ph::after { left: 130%; transition: left .7s ease; }
@media (prefers-reduced-motion: reduce) { .lpx-pcard .lpx-ph img, .lpx-pcard:hover .lpx-ph img { transition: none; transform: none; } .lpx-pcard:hover .lpx-ph::after { transition: none; } }