/* Schnorr Product Finder v3.1 — Frontend */
:root{--bl:#0099cc;--bd:#007aa8;--bm:#33aad4;--bl2:#e6f6fb;--bp:#f0fafd;--bg:#f5f6f8;--gl:#e0e4ea;--tx:#2a2e38;--mu:#6b7280;--wh:#fff;--r:4px;--navy:#1a3a6b}
.spf-wrap *,.spf-cart-page *{box-sizing:border-box}
.spf-wrap,.spf-cart-page{font-family:'Helvetica Neue',Arial,sans-serif;color:var(--tx);font-size:14px;max-width:1100px;margin:0 auto}

/* ── Category Tiles ── */
.spf-cats{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:20px}
.spf-cat{position:relative;height:70px;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:14px;background:var(--navy);transition:.2s}
.spf-cat::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.25);transition:.2s}
.spf-cat.spf-cat-active{background:#1a5276}
.spf-cat.spf-cat-active::after{background:rgba(0,153,204,.25)}
.spf-cat:hover::after{background:rgba(0,153,204,.2)}
.spf-cat-lbl{position:relative;z-index:1;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;text-align:center;line-height:1.3}

/* ── Cart bar ── */
.spf-cart-bar{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border:1px solid var(--gl);border-radius:var(--r);padding:10px 16px;margin-bottom:16px}
.spf-cart-info{font-size:13px;color:var(--mu)}
.spf-cart-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bl);color:#fff;padding:9px 20px;border-radius:var(--r);font-size:13px;font-weight:700;text-decoration:none;transition:.15s;white-space:nowrap}
.spf-cart-btn:hover{background:var(--bd);color:#fff;text-decoration:none}
.spf-cart-btn-active{background:#f0a500 !important}
.spf-cart-btn-active:hover{background:#d4900a !important}
.spf-btn-badge{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.3);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;padding:0 5px;line-height:1}
.spf-cart-btn-active .spf-btn-badge{background:rgba(0,0,0,.2)}
.spf-cart-highlight{animation:spf-pulse 1s ease 3}
@keyframes spf-pulse{0%,100%{box-shadow:0 0 0 0 rgba(240,165,0,.6)}50%{box-shadow:0 0 0 10px rgba(240,165,0,0)}}

/* ── Filter panel ── */
.spf-filter-wrap{display:grid;grid-template-columns:220px 1fr;gap:24px;background:var(--wh);border:1px solid var(--gl);padding:20px;margin-bottom:14px}
.spf-search{width:100%;border:1px solid var(--gl);border-radius:var(--r);padding:7px 10px;font-size:13px;margin-bottom:12px;outline:none;transition:border-color .2s}
.spf-search:focus{border-color:var(--bl)}
.spf-search::placeholder{color:#aab0bb}
.spf-type-head{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.spf-grp-name{font-size:12px;font-weight:700;margin:8px 0 4px}
.spf-cb{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:4px;cursor:pointer}
.spf-cb input{accent-color:var(--bl);width:14px;height:14px;flex-shrink:0}
.spf-filter-right{display:flex;flex-direction:column;gap:18px}
.spf-slider-hd{display:flex;justify-content:space-between;margin-bottom:6px}
.spf-slider-lbl{font-size:13px;font-weight:600}
.spf-slider-unit{font-size:12px;color:var(--bd);font-weight:600}
.spf-range-wrap{display:flex;align-items:center;gap:10px}
.spf-range-lo,.spf-range-hi{font-size:11px;color:var(--mu);min-width:28px;white-space:nowrap}
.spf-range-hi{text-align:right}
.spf-dual{flex:1;position:relative;height:30px;display:flex;align-items:center}
.spf-track{position:absolute;left:0;right:0;height:4px;background:var(--gl);border-radius:2px;pointer-events:none}
.spf-fill{position:absolute;height:100%;background:var(--bl);border-radius:2px}
.spf-bubble{position:absolute;top:-24px;background:var(--bl);color:#fff;font-size:10px;padding:2px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;display:none;transform:translateX(-50%)}
.spf-dual input[type=range]{position:absolute;left:0;width:100%;height:4px;background:transparent;-webkit-appearance:none;appearance:none;pointer-events:none;outline:none;margin:0}
.spf-dual input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--bl);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer;pointer-events:all}
.spf-dual input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--bl);border:2px solid #fff;cursor:pointer;pointer-events:all}

/* ── Buttons ── */
.spf-btns{display:flex;justify-content:space-between;margin-bottom:20px}
.spf-btn-reset,.spf-btn-filter{padding:9px 28px;font-size:13px;font-weight:600;border:none;border-radius:var(--r);cursor:pointer;transition:.15s}
.spf-btn-reset{background:var(--bg);color:var(--tx);border:1px solid var(--gl)}
.spf-btn-reset:hover{background:#e8eaee}
.spf-btn-filter{background:var(--bl);color:#fff}
.spf-btn-filter:hover{background:var(--bd)}
.spf-panel-hidden{display:none}

/* ── Results table ── */
.spf-table-wrap{overflow-x:auto;border:1px solid var(--gl);border-radius:var(--r)}
.spf-tbl{width:100%;border-collapse:collapse;font-size:13px}
.spf-tbl thead tr:first-child th{background:var(--bl);color:#fff;padding:9px 8px;text-align:center;font-size:12px;font-weight:700;white-space:nowrap}
.spf-tbl thead tr:first-child th.spf-th-article{background:var(--bd);text-align:left;padding-left:14px;min-width:110px}
.spf-th-mid{background:var(--bm) !important}
.spf-tbl thead tr:nth-child(2) th{background:var(--bl2);color:var(--bd);padding:6px 8px;font-size:11px;font-weight:600;border-bottom:2px solid var(--bl);text-align:center;white-space:nowrap}
.spf-th-weight{background:var(--bd) !important;min-width:70px}
.spf-tbl tbody tr{border-bottom:1px solid var(--gl);transition:background .15s}
.spf-tbl tbody tr:nth-child(even){background:var(--bp)}
.spf-tbl tbody tr:hover{background:var(--bl2)}
.spf-tbl tbody tr.spf-row-added{background:rgba(0,153,204,.12) !important}
.spf-tbl tbody td{padding:9px 8px;text-align:center;font-size:13px;color:var(--tx)}
.spf-tbl tbody td:first-child{text-align:left;padding-left:14px;font-weight:600;color:var(--bd)}
.spf-empty{padding:32px !important;text-align:center !important;color:var(--mu) !important;font-weight:400 !important}
.spf-actions-cell{display:flex;flex-direction:column;gap:5px;padding:6px 10px !important;align-items:flex-start}
.spf-act{font-size:11px;color:var(--bl);text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-weight:500;white-space:nowrap;background:none;border:none;cursor:pointer;padding:0;line-height:1.4}
.spf-act:hover{color:var(--bd);text-decoration:underline}
.spf-act-dim{color:#ccc !important;cursor:default !important}
.spf-act-dim:hover{text-decoration:none !important;color:#ccc !important}

/* Add to cart button states */
.spf-add-to-cart{color:var(--bl) !important;font-weight:700 !important}
.spf-add-to-cart:hover{color:var(--bd) !important}
.spf-in-cart{color:#1a7a4a !important;font-weight:700 !important;cursor:default !important}
.spf-in-cart:hover{color:#1a7a4a !important;text-decoration:none !important}

/* ── Footer / pagination ── */
.spf-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.spf-btn-more{background:var(--bl);color:#fff;border:none;border-radius:20px;padding:9px 30px;font-size:13px;font-weight:600;cursor:pointer}
.spf-btn-more:hover{background:var(--bd)}
.spf-count{font-size:12px;color:var(--mu)}

/* ═══════════════════════════════════
   CART PAGE
═══════════════════════════════════ */
.spf-cart-page{padding:40px 0}

.spf-cart-table-wrap{border:1px solid var(--gl);border-radius:var(--r);overflow:hidden;margin-bottom:32px}
.spf-cart-tbl thead th{background:var(--bl);color:#fff;padding:10px 14px;text-align:left;font-size:13px;font-weight:700}
.spf-cart-tbl thead th:first-child{min-width:130px}
.spf-cart-tbl tbody tr{border-bottom:1px solid var(--gl)}
.spf-cart-tbl tbody tr:nth-child(even){background:var(--bp)}
.spf-cart-tbl tbody td{padding:10px 14px;font-size:13px;color:var(--tx);text-align:left;vertical-align:middle}
.spf-cart-tbl tbody td:first-child{font-weight:600;color:var(--bd)}

/* Quantity controls */
.spf-qty-wrap{display:flex;align-items:center;gap:6px}
.spf-qty-btn{width:28px;height:28px;border:1px solid var(--gl);border-radius:3px;background:var(--bg);font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;color:var(--tx);line-height:1;padding:0}
.spf-qty-btn:hover{background:var(--bl);color:#fff;border-color:var(--bl)}
.spf-qty-input{width:60px;text-align:center;border:1px solid var(--gl);border-radius:3px;padding:5px 4px;font-size:13px}
.spf-qty-remove{width:28px;height:28px;border:1px solid #d63638;background:#fff;color:#d63638;border-radius:3px;cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;padding:0;line-height:1}
.spf-qty-remove:hover{background:#d63638;color:#fff}

/* Cart actions */
.spf-cart-actions{display:flex;justify-content:space-between;align-items:center;padding:0 0 32px}
.spf-btn-clear-cart{background:none;border:none;color:var(--bl);font-size:14px;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}
.spf-btn-clear-cart:hover{color:var(--bd)}
.spf-btn-request{background:var(--bl);color:#fff;border:none;border-radius:var(--r);padding:11px 28px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s}
.spf-btn-request:hover{background:var(--bd)}

/* Enquiry form */
.spf-enquiry-form{background:var(--bg);border:1px solid var(--gl);border-radius:var(--r);padding:28px;margin-top:8px}
.spf-enquiry-form h3{margin:0 0 20px;font-size:16px;color:var(--navy)}
.spf-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:0}
.spf-form-field{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}
.spf-form-field.spf-full{grid-column:1/-1}
.spf-form-field label{font-size:12px;font-weight:700;color:#444;text-transform:uppercase;letter-spacing:.04em}
.spf-form-field input,.spf-form-field textarea{padding:9px 12px;border:1px solid var(--gl);border-radius:var(--r);font-size:14px;outline:none;transition:.2s;font-family:inherit;color:var(--tx)}
.spf-form-field input:focus,.spf-form-field textarea:focus{border-color:var(--bl);box-shadow:0 0 0 2px rgba(0,153,204,.15)}
.spf-form-field textarea{resize:vertical}
.spf-form-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.spf-btn-cancel-eq{background:none;border:none;color:var(--bl);font-size:14px;font-weight:600;cursor:pointer;padding:0}
.spf-btn-cancel-eq:hover{color:var(--bd)}

/* ── Submit button — BLUE not pink ── */
.spf-btn-submit-eq{background:var(--bl);color:#fff;border:none;border-radius:var(--r);padding:11px 28px;font-size:14px;font-weight:700;cursor:pointer;transition:.15s}
.spf-btn-submit-eq:hover{background:var(--bd)}
.spf-btn-submit-eq:disabled{background:#aaa;cursor:not-allowed}

.spf-eq-msg{margin-top:16px;padding:12px 16px;border-radius:var(--r);font-size:14px}
.spf-eq-msg.success{background:#e6f4ed;color:#1a7a4a;border:1px solid #b3dfc5}
.spf-eq-msg.error{background:#faeaea;color:#a32d2d;border:1px solid #f5b8b8}

@media(max-width:700px){
    .spf-filter-wrap,.spf-cats{grid-template-columns:1fr}
    .spf-tbl{font-size:11px}
    .spf-form-row{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════
   THEME OVERRIDE — prevent pink/red from bleeding in
   Using high specificity to beat WordPress/Elementor
════════════════════════════════════════════════ */

/* All links inside the finder — force blue, never pink/red */
.spf-wrap a,
.spf-wrap a:link,
.spf-wrap a:visited,
.spf-cart-page a,
.spf-cart-page a:link,
.spf-cart-page a:visited {
    color: var(--bl) !important;
    text-decoration: none !important;
}
.spf-wrap a:hover,
.spf-wrap a:focus,
.spf-wrap a:active,
.spf-cart-page a:hover,
.spf-cart-page a:focus,
.spf-cart-page a:active {
    color: var(--bd) !important;
    text-decoration: underline !important;
}

/* Article number links in table */
.spf-wrap .spf-tbl tbody td:first-child,
.spf-wrap .spf-tbl tbody td:first-child a,
.spf-cart-page .spf-cart-tbl tbody td:first-child {
    color: var(--bd) !important;
}

/* CAD Download link */
.spf-wrap .spf-act,
.spf-wrap .spf-act:link,
.spf-wrap .spf-act:visited { color: var(--bl) !important; }
.spf-wrap .spf-act:hover   { color: var(--bd) !important; }

/* Add to Cart button */
.spf-wrap .spf-add-to-cart,
.spf-wrap .spf-cart-add { color: var(--bl) !important; }
.spf-wrap .spf-add-to-cart:hover { color: var(--bd) !important; }

/* In-cart confirmed — green */
.spf-wrap .spf-in-cart,
.spf-wrap .spf-in-cart:hover,
.spf-wrap .spf-in-cart:focus,
.spf-wrap .spf-in-cart:active {
    color: #1a7a4a !important;
    background: none !important;
    text-decoration: none !important;
}

/* Dim CAD link (no URL available) */
.spf-wrap .spf-act-dim,
.spf-wrap .spf-act-dim:hover { color: #bbb !important; text-decoration: none !important; cursor: default !important; }

/* Checkboxes — blue accent not pink */
.spf-wrap input[type="checkbox"] { accent-color: var(--bl) !important; }

/* Focus rings — blue not browser default pink */
.spf-wrap *:focus-visible { outline: 2px solid var(--bl) !important; outline-offset: 2px !important; }

/* Selection highlight */
.spf-wrap ::selection,
.spf-cart-page ::selection { background-color: var(--bl) !important; color: #fff !important; }

/* Scroll margin so sticky nav doesn't cover the cart bar */
#spf-cart-bar { scroll-margin-top: 120px; }

/* ════════════════════════════════════════════════
   NUCLEAR THEME OVERRIDE — buttons and cart bar
   Elementor/Hello theme aggressively overrides
   button and a styles. These rules must win.
════════════════════════════════════════════════ */

/* Cart bar button — fix lost white text */
#spf-wrap .spf-cart-btn,
#spf-wrap .spf-cart-btn:link,
#spf-wrap .spf-cart-btn:visited,
#spf-wrap .spf-cart-btn:hover,
#spf-wrap .spf-cart-btn:focus,
#spf-wrap .spf-cart-btn:active,
.spf-wrap #spf-cart-btn,
.spf-wrap a.spf-cart-btn {
    color: #ffffff !important;
    background-color: var(--bl) !important;
    text-decoration: none !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    -webkit-text-fill-color: #ffffff !important;
}
.spf-wrap a.spf-cart-btn-active,
.spf-wrap .spf-cart-btn.spf-cart-btn-active {
    background-color: #f0a500 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Add To Cart button — kill pink hover completely */
.spf-wrap button.spf-cart-add,
.spf-wrap .spf-cart-add,
.spf-wrap .spf-add-to-cart {
    color: var(--bl) !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    -webkit-text-fill-color: var(--bl) !important;
    padding: 0 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
}
.spf-wrap button.spf-cart-add:hover,
.spf-wrap .spf-cart-add:hover,
.spf-wrap .spf-add-to-cart:hover {
    color: var(--bd) !important;
    background: transparent !important;
    background-color: transparent !important;
    -webkit-text-fill-color: var(--bd) !important;
    text-decoration: underline !important;
}
.spf-wrap button.spf-cart-add:focus,
.spf-wrap button.spf-cart-add:active {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--bl) !important;
    -webkit-text-fill-color: var(--bl) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* In-cart state */
.spf-wrap .spf-in-cart,
.spf-wrap button.spf-in-cart {
    color: #1a7a4a !important;
    -webkit-text-fill-color: #1a7a4a !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
.spf-wrap .spf-in-cart:hover,
.spf-wrap button.spf-in-cart:hover,
.spf-wrap .spf-in-cart:focus,
.spf-wrap .spf-in-cart:active {
    color: #1a7a4a !important;
    -webkit-text-fill-color: #1a7a4a !important;
    background: transparent !important;
    background-color: transparent !important;
    text-decoration: none !important;
}

/* CAD Download link */
.spf-wrap a.spf-act,
.spf-wrap .spf-act {
    color: var(--bl) !important;
    -webkit-text-fill-color: var(--bl) !important;
    background: transparent !important;
}
.spf-wrap a.spf-act:hover { color: var(--bd) !important; -webkit-text-fill-color: var(--bd) !important; }

/* All other buttons in finder */
.spf-wrap .spf-btn-filter,
.spf-wrap .spf-btn-more,
.spf-wrap .spf-btn-request {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.spf-wrap .spf-btn-reset {
    color: var(--tx) !important;
    -webkit-text-fill-color: var(--tx) !important;
}
.spf-cart-page .spf-btn-submit-eq {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background-color: var(--bl) !important;
}
.spf-cart-page .spf-btn-submit-eq:hover {
    background-color: var(--bd) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* ════════════════════════════════════════════════
   MOBILE CART — full scroll, readable table
════════════════════════════════════════════════ */
@media (max-width: 768px) {

    /* Cart page wrapper — allow full scroll */
    .spf-cart-page { padding: 20px 0; }
    .spf-cart-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-bottom: 20px;
        border-radius: 6px;
    }

    /* Make cart table scroll horizontally on mobile */
    .spf-cart-tbl { min-width: 480px; font-size: 12px; }
    .spf-cart-tbl thead th { padding: 8px 10px; font-size: 12px; }
    .spf-cart-tbl tbody td { padding: 8px 10px; font-size: 12px; }

    /* Quantity controls — compact */
    .spf-qty-wrap { gap: 4px; }
    .spf-qty-btn { width: 28px; height: 28px; font-size: 14px; }
    .spf-qty-input { width: 44px; font-size: 12px; padding: 4px 2px; }
    .spf-qty-remove { width: 26px; height: 26px; font-size: 13px; }

    /* Cart actions row */
    .spf-cart-actions {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
        padding: 0 0 24px;
    }
    .spf-btn-clear-cart { text-align: center; }
    .spf-btn-request {
        width: 100%;
        padding: 14px;
        font-size: 15px;
        text-align: center;
    }

    /* Enquiry form */
    .spf-enquiry-form { padding: 20px 16px; }
    .spf-form-row { grid-template-columns: 1fr; gap: 0; }
    .spf-form-field { margin-bottom: 14px; }
    .spf-form-field input,
    .spf-form-field textarea {
        font-size: 16px; /* prevents iOS zoom on focus */
        padding: 10px 12px;
    }
    .spf-form-footer {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }
    .spf-btn-submit-eq {
        width: 100%;
        padding: 14px;
        font-size: 15px;
        text-align: center;
        background-color: var(--bl) !important;
        color: #fff !important;
        -webkit-text-fill-color: #fff !important;
    }
    .spf-btn-cancel-eq { text-align: center; }

    /* Product finder on mobile */
    .spf-filter-wrap { grid-template-columns: 1fr; gap: 16px; }
    .spf-cats { grid-template-columns: 1fr; gap: 3px; }
    .spf-cat { height: 56px; }
    .spf-cat-lbl { font-size: 12px; }
    .spf-cart-bar {
        flex-direction: column;
        gap: 10px;
        align-items: stretch;
        text-align: center;
    }
    .spf-cart-btn {
        justify-content: center;
        padding: 12px 16px !important;
        font-size: 14px !important;
    }
    .spf-tbl { font-size: 11px; }
    .spf-tbl thead tr:first-child th { padding: 7px 5px; font-size: 10px; }
    .spf-tbl tbody td { padding: 7px 5px; }
    .spf-actions-cell { padding: 5px 6px !important; gap: 4px; }
    .spf-act { font-size: 10px; }
}
