/* Grip_MatQuote — every rule is scoped to .grip-mq / .grip-mq-modal-wrap. */
.grip-mq,
.grip-mq-modal-wrap {
    --grip-mq-blue: #1557b0;
    --grip-mq-blue-dark: #0d3f84;
    --grip-mq-blue-soft: #eaf2fd;
    --grip-mq-ink: #1d2433;
    --grip-mq-muted: #5c6475;
    --grip-mq-line: #d6dbe4;
    --grip-mq-error: #b3261e;
}

.grip-mq {
    margin: 20px 0 24px;
    padding: 20px;
    border: 1px solid var(--grip-mq-line);
    border-top: 4px solid var(--grip-mq-blue);
    border-radius: 10px;
    background: #fff;
    color: var(--grip-mq-ink);
    box-sizing: border-box;
}
.grip-mq *,
.grip-mq *::before,
.grip-mq *::after { box-sizing: border-box; }
.grip-mq [hidden],
.grip-mq-modal-wrap [hidden] { display: none !important; }

.grip-mq__title {
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--grip-mq-ink);
}

.grip-mq__group {
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    min-width: 0;
}
.grip-mq__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--grip-mq-ink);
}
.grip-mq__step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--grip-mq-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    flex: 0 0 22px;
}

.grip-mq__options { display: flex; flex-wrap: wrap; gap: 10px; }
.grip-mq__card,
.grip-mq__chip,
.grip-mq__unit {
    position: relative;
    margin: 0;
    cursor: pointer;
}
.grip-mq__card input,
.grip-mq__chip input,
.grip-mq__unit input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
}
.grip-mq__card { flex: 1 1 180px; }
.grip-mq__card-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    height: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--grip-mq-line);
    border-radius: 8px;
    transition: border-color .15s, background .15s;
}
.grip-mq__card-title { font-weight: 600; font-size: 14px; }
.grip-mq__card-sub { font-size: 12px; color: var(--grip-mq-muted); }
.grip-mq__chip span,
.grip-mq__unit span {
    display: inline-block;
    min-width: 64px;
    padding: 8px 14px;
    border: 1.5px solid var(--grip-mq-line);
    border-radius: 999px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    transition: border-color .15s, background .15s, color .15s;
}
.grip-mq__card:hover .grip-mq__card-body,
.grip-mq__chip:hover span,
.grip-mq__unit:hover span { border-color: var(--grip-mq-blue); }
.grip-mq__card input:checked + .grip-mq__card-body {
    border-color: var(--grip-mq-blue);
    background: var(--grip-mq-blue-soft);
    box-shadow: inset 0 0 0 1px var(--grip-mq-blue);
}
.grip-mq__chip input:checked + span,
.grip-mq__unit input:checked + span {
    border-color: var(--grip-mq-blue);
    background: var(--grip-mq-blue);
    color: #fff;
}
.grip-mq__card input:focus-visible + .grip-mq__card-body,
.grip-mq__chip input:focus-visible + span,
.grip-mq__unit input:focus-visible + span {
    outline: 3px solid rgba(21, 87, 176, .35);
    outline-offset: 2px;
}

.grip-mq__area { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.grip-mq input.grip-mq__input {
    flex: 1 1 160px;
    max-width: 260px;
    height: 42px;
    padding: 0 12px;
    border: 1.5px solid var(--grip-mq-line);
    border-radius: 8px;
    font-size: 16px;
    color: var(--grip-mq-ink);
}
.grip-mq input.grip-mq__input:focus { border-color: var(--grip-mq-blue); outline: none; box-shadow: 0 0 0 3px rgba(21, 87, 176, .2); }
.grip-mq input.grip-mq__input[aria-invalid="true"] { border-color: var(--grip-mq-error); }
.grip-mq__units { display: flex; gap: 6px; }
.grip-mq__unit-static { font-weight: 600; }
.grip-mq__hint { margin: 6px 0 0; font-size: 12px; color: var(--grip-mq-muted); }
.grip-mq__error { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: var(--grip-mq-error); }

.grip-mq__results {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 0 0 16px;
}
.grip-mq__result {
    display: flex;
    flex-direction: column;
    padding: 12px 14px;
    border-radius: 8px;
    background: var(--grip-mq-blue-soft);
}
.grip-mq__result-label { font-size: 12px; color: var(--grip-mq-muted); }
.grip-mq__result-value { font-size: 20px; font-weight: 700; color: var(--grip-mq-blue-dark); }
.grip-mq__result-note { font-size: 11px; color: var(--grip-mq-muted); }

.grip-mq__estimate {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px dashed var(--grip-mq-line);
    border-radius: 8px;
}
.grip-mq__estimate-row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; padding: 2px 0; }
.grip-mq__estimate-row--total { font-size: 18px; font-weight: 700; color: var(--grip-mq-blue-dark); }
.grip-mq__estimate-quote { margin: 0; font-weight: 600; color: var(--grip-mq-blue-dark); }
.grip-mq__disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 10px 0 0;
    padding: 9px 11px;
    border-radius: 8px;
    background: #fff6e0;
    border: 1px solid #f3d38a;
    color: #6b4a00;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.45;
}
.grip-mq__disclaimer strong { font-weight: 800; }
.grip-mq__disclaimer-icon { flex: 0 0 18px; margin-top: 1px; color: #c98a00; }

.grip-mq .grip-mq__cta,
.grip-mq-modal-wrap .grip-mq__cta {
    width: 100%;
    min-height: 46px;
    border: 0;
    border-radius: 8px;
    background: var(--grip-mq-blue);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}
.grip-mq .grip-mq__cta:hover,
.grip-mq-modal-wrap .grip-mq__cta:hover { background: var(--grip-mq-blue-dark); }
.grip-mq .grip-mq__cta:focus-visible,
.grip-mq-modal-wrap .grip-mq__cta:focus-visible { outline: 3px solid rgba(21, 87, 176, .4); outline-offset: 2px; }
.grip-mq-modal-wrap .grip-mq__cta[disabled] { opacity: .6; cursor: progress; }

/* Calculator actions: Add to Cart (filled) + Request a Quote (outline) */
.grip-mq__actions { display: flex; gap: 10px; }
.grip-mq__actions .grip-mq__cta { flex: 1 1 0; }
.grip-mq .grip-mq__cta--cart:not([hidden]) ~ .grip-mq__cta--quote {
    background: #fff;
    color: var(--grip-mq-blue);
    box-shadow: inset 0 0 0 2px var(--grip-mq-blue);
}
.grip-mq .grip-mq__cta--cart:not([hidden]) ~ .grip-mq__cta--quote:hover { background: var(--grip-mq-blue-soft); color: var(--grip-mq-blue-dark); }
.grip-mq .grip-mq__cta[disabled] { opacity: .6; cursor: progress; }
.grip-mq__cart-msg {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: #e8f5ec;
    color: #1e6b35;
    font-size: 14px;
    font-weight: 600;
}
.grip-mq__cart-msg a { color: inherit; text-decoration: underline; }
.grip-mq__cart-msg--error { background: #fdecea; color: var(--grip-mq-error); }

/* Request for Negotiation modal */
.grip-mq-modal-wrap .modal-inner-wrap { max-width: 600px; border-radius: 14px; overflow: hidden; }
.grip-mq-modal-wrap .modal-header { padding-top: 22px; padding-bottom: 6px; }
.grip-mq-modal-wrap .modal-title { font-size: 22px; font-weight: 700; color: var(--grip-mq-ink); border: 0; padding-bottom: 0; }
.grip-mq-modal-wrap .modal-content { padding-bottom: 22px; }
.grip-mq-modal__intro { margin: 0 0 14px; font-size: 13px; line-height: 1.5; color: var(--grip-mq-muted); }

.grip-mq-modal__summary {
    margin: 0 0 18px;
    border: 1px solid var(--grip-mq-line);
    border-radius: 12px;
    overflow: hidden;
}
.grip-mq-modal__product {
    margin: 0;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--grip-mq-ink);
    background: #f7f9fc;
    border-bottom: 1px solid var(--grip-mq-line);
}
/* Clamp on the inner span so the padding never shows a cut third line. */
.grip-mq-modal__product span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.grip-mq-modal__stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
.grip-mq-modal__stat { padding: 10px 12px; border-right: 1px solid var(--grip-mq-line); min-width: 0; }
.grip-mq-modal__stat:last-child { border-right: 0; }
.grip-mq-modal__stat dt { margin: 0 0 2px; font-size: 11px; font-weight: 400; color: var(--grip-mq-muted); text-transform: uppercase; letter-spacing: .04em; }
.grip-mq-modal__stat dd { margin: 0; font-size: 15px; font-weight: 700; color: var(--grip-mq-ink); line-height: 1.25; overflow-wrap: anywhere; }
.grip-mq-modal__stat dd small { display: block; font-size: 11px; font-weight: 400; color: var(--grip-mq-muted); }
.grip-mq-modal__estimate {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--grip-mq-blue-soft);
    border-top: 1px solid var(--grip-mq-line);
    font-size: 13px;
    color: var(--grip-mq-blue-dark);
}
.grip-mq-modal__estimate span { white-space: nowrap; }
.grip-mq-modal__estimate strong { font-size: 20px; font-weight: 800; white-space: nowrap; }

.grip-mq-modal__form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.grip-mq-modal__field { display: flex; flex-direction: column; gap: 5px; }
.grip-mq-modal__field--wide,
.grip-mq-modal__form .grip-mq__error,
.grip-mq-modal__form .grip-mq__cta,
.grip-mq-modal__privacy { grid-column: 1 / -1; }
.grip-mq-modal__field label { font-size: 13px; font-weight: 600; color: var(--grip-mq-ink); }
.grip-mq-modal__req { color: var(--grip-mq-error); }
/* Strong selectors + !important: the theme styles inputs inside modals with its own black borders. */
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field input,
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field textarea {
    width: 100%;
    height: auto;
    min-height: 44px;
    padding: 10px 12px !important;
    border: 1.5px solid var(--grip-mq-line) !important;
    border-radius: 10px !important;
    background: #fff !important;
    font-size: 15px;
    color: var(--grip-mq-ink);
    box-shadow: none !important;
}
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field textarea { min-height: 64px; resize: vertical; }
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field input:focus,
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field textarea:focus {
    border-color: var(--grip-mq-blue) !important;
    box-shadow: 0 0 0 3px rgba(21, 87, 176, .18) !important;
    outline: none;
}
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq-modal__field [aria-invalid="true"] { border-color: var(--grip-mq-error) !important; }
.grip-mq-modal-wrap .grip-mq-modal__form .grip-mq__cta { margin-top: 4px; min-height: 50px; border-radius: 10px; }
.grip-mq-modal__privacy { margin: -4px 0 0; font-size: 11px; text-align: center; color: var(--grip-mq-muted); }
.grip-mq-modal__hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.grip-mq-modal__success { text-align: center; padding: 16px 0; outline: none; }
.grip-mq-modal__success-title { font-size: 20px; font-weight: 700; color: var(--grip-mq-blue-dark); margin: 0 0 8px; }
.grip-mq-modal__reference {
    display: inline-block;
    margin: 4px 0 12px;
    padding: 8px 16px;
    border: 2px dashed var(--grip-mq-blue);
    border-radius: 8px;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--grip-mq-blue-dark);
}

@media (max-width: 767px) {
    .grip-mq__actions { flex-direction: column; }
    .grip-mq { padding: 16px; }
    .grip-mq__title { font-size: 18px; }
    .grip-mq input.grip-mq__input { max-width: none; }
    .grip-mq__results { grid-template-columns: 1fr 1fr; }
    .grip-mq-modal__form { grid-template-columns: 1fr; }
    .grip-mq-modal__stats { grid-template-columns: 1fr 1fr; }
    .grip-mq-modal-wrap.modal-popup { left: 0; }
    .grip-mq-modal-wrap .modal-inner-wrap { width: calc(100% - 20px); margin: 10px auto; }
    .grip-mq-modal-wrap .modal-header,
    .grip-mq-modal-wrap .modal-content { padding-left: 16px; padding-right: 16px; }
    .grip-mq-modal-wrap .modal-title { font-size: 19px; padding-right: 30px; }
    .grip-mq-modal__intro { font-size: 12px; margin-bottom: 12px; }
    .grip-mq-modal__estimate strong { font-size: 18px; }
    .grip-mq-modal__stat:nth-child(2) { border-right: 0; }
    .grip-mq-modal__stat:nth-child(-n+2) { border-bottom: 1px solid var(--grip-mq-line); }
}

.catalog-product-view .price-box.grip-mq-old-hidden .old-price { display: none !important; }

/* Quote-only products: no cart actions on the product page (this file loads only when the calculator is on). */
.catalog-product-view .product-info-main .box-tocart,
.catalog-product-view .stickyCart { display: none !important; }
