/* Additive controls only. Original css/style.css, colors, cards and homepage stay intact. */
.im-catalog-toolbar { margin: 8px 0 24px; padding: 16px 0; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }
.im-filter-fields { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.im-filter-fields label { flex: 1 1 140px; font-size: 13px; min-width: 0; }
.im-filter-fields .im-search-field { flex: 2 1 240px; }
.im-filter-fields .contactinput { width: 100%; margin: 6px 0 0; min-height: 42px; font-size: 14px; }
.im-filter-fields > button { min-height: 42px; padding: 8px 24px; }
.im-toolbar-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 14px; font-size: 14px; }
.im-toolbar-links a, .im-pagination a, .im-text-link { color: #2c3e50; text-decoration: underline; text-underline-offset: 3px; }
.im-result-summary { font-size: 14px; color: #333; margin-bottom: 12px; }
.im-catalog-results { padding: 0; margin: 0 -5px; }
.im-product-column { padding: 0 5px; min-width: 0; }
.im-product-column .productCategories { margin-right: 0; }
.im-card-actions { border-top: 1px solid #647687; padding-top: 12px; display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: 13px; }
.im-card-actions a { color: #00b1d0; text-decoration: underline; }
.im-compare-choice { display: inline-flex; align-items: center; gap: 7px; color: #fff; cursor: pointer; }
.im-compare-choice input { width: 17px; height: 17px; accent-color: #00b1d0; }
.im-product-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 20px 0; }
.im-product-actions .im-compare-choice { color: #111; }
.im-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 15px 0; }
.im-pagination a { padding: 7px 13px; border: 1px solid #2c3e50; text-decoration: none; }
.im-pagination [aria-current="page"] { background: #2c3e50; color: #fff; }
.im-pagination span { padding: 7px 3px; }
.im-comparebar { position: fixed; bottom: 0; left: 0; right: 0; padding: 12px 3%; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px; background: #2c3e50; color: #fff; border-top: 3px solid #00b1d0; z-index: 1040; }
.im-comparebar .btn { background: #fff; color: #111; }
.im-comparebar > button { color: #fff; background: transparent; border: 0; text-decoration: underline; min-height: 40px; }
body.im-has-comparison { padding-bottom: 90px; }
.im-live-message { position: fixed; left: 3%; right: 3%; bottom: 100px; margin: 0; padding: 12px 18px; border: 2px solid #2c3e50; background: #fff; color: #111; z-index: 1050; }
.im-comparebar[hidden], .im-live-message[hidden], [data-js-only][hidden], .im-compare-table tr[hidden] { display: none !important; }
.im-compare-scroll { overflow: auto; max-width: 100%; margin-top: 20px; border: 1px solid #ccc; }
.im-compare-table { width: 100%; border-collapse: collapse; min-width: 680px; table-layout: fixed; }
.im-compare-table th, .im-compare-table td { padding: 15px; border: 1px solid #ddd; vertical-align: top; overflow-wrap: anywhere; }
.im-compare-table thead th { background: #2c3e50; color: #fff; }
.im-compare-table thead th:first-child { width: 20%; }
.im-compare-table tbody th { font-weight: 500; }
.im-compare-table img { max-height: 160px; width: 100%; object-fit: contain; background: #fff; margin-bottom: 12px; }
.im-compare-table a { color: #00b1d0; }
.im-compare-table .im-compare-remove { display: inline-block; color: #fff; font-weight: normal; margin-top: 8px; font-size: 13px; }
.im-compare-table .btn { margin-top: 8px; color: #111; }
.im-gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.im-gallery-thumbs a { border: 2px solid #ddd; padding: 3px; display: block; }
.im-gallery-thumbs a[aria-current="true"] { border-color: #00b1d0; }
.im-gallery-thumbs img { width: 65px; height: 65px; object-fit: contain; }
.im-zoom-link { display: block; cursor: zoom-in; }
.im-gallery-hint { color: #555; font-size: 12px; }
.im-image-dialog { border: 2px solid #2c3e50; padding: 45px 12px 12px; max-width: 94vw; max-height: 94vh; background: #fff; }
.im-image-dialog::backdrop { background: rgba(0,0,0,.7); }
.im-image-dialog img { max-width: 86vw; max-height: 78vh; object-fit: contain; }
.im-image-dialog button { position: absolute; right: 10px; top: 8px; background: white; border: 1px solid #2c3e50; padding: 4px 12px; }
.im-quote-context { border-left: 4px solid #00b1d0; padding: 8px 12px; margin-bottom: 15px; background: #eee; overflow-wrap: anywhere; }
.im-field-label { display: block; font-size: 14px; margin-bottom: 6px; }
.im-form-notice { padding: 12px; border-left: 4px solid #00b1d0; background: #eee; }
.im-invalid { border-color: #a82424 !important; }
.im-related { margin-top: 25px; }
.im-admin-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-bottom: 1px solid #ddd; padding: 0 0 15px; margin-bottom: 20px; }
.im-admin-tabs a { color: #111; padding: 8px 12px; text-decoration: none; border: 1px solid #ddd; }
.im-admin-tabs a[aria-current="page"] { background: #2c3e50; border-color: #2c3e50; color: #fff; }
.im-admin-tabs form { margin: 0 0 0 auto; }
.im-admin-form { max-width: 920px; }
.im-admin-form .contactinput { width: 100%; min-height: 42px; }
.im-admin-form label { display: block; margin-bottom: 7px; font-size: 14px; }
.im-admin-form .im-inline-label { display: inline-flex; align-items: center; gap: 8px; }
.im-admin-form textarea { min-height: 105px; }
.im-admin-auth { max-width: 460px; margin: 0 auto; padding: 10px 0 35px; }
.im-admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.im-admin-table th { text-align: left; background: #2c3e50; color: #fff; font-weight: 500; }
.im-admin-table th, .im-admin-table td { padding: 12px; border-bottom: 1px solid #ddd; vertical-align: top; overflow-wrap: anywhere; }
.im-admin-table a { color: #075f70; }
.im-admin-table img { width: 65px; height: 55px; object-fit: contain; }
.im-admin-table-wrap { overflow-x: auto; max-width: 100%; }
.im-admin-table-wrap .im-admin-table { min-width: 680px; }
.im-admin-note { padding: 12px 0; border-bottom: 1px solid #ddd; white-space: pre-wrap; overflow-wrap: anywhere; }
.im-admin-muted { font-size: 13px; color: #555; }
.im-stat-line { border-bottom: 1px solid #ddd; padding: 12px 0; }
.im-spec-input-row { display: grid; grid-template-columns: 1fr 2fr auto; gap: 8px; align-items: start; }
.im-spec-input-row button { min-height: 42px; }
.im-admin-media { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; }
.im-admin-media img { width: 100px; height: 80px; object-fit: contain; }
.im-admin-media > div { border: 1px solid #ddd; padding: 10px; }
.im-page-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 12px 0 20px; }
.im-action-form { display: inline-block; margin: 0; }
.im-catalog-toolbar :focus-visible, .im-product-actions :focus-visible, .im-card-actions :focus-visible,
.im-pagination :focus-visible, .im-comparebar :focus-visible, .im-admin-tabs :focus-visible,
.im-image-dialog :focus-visible, .im-gallery-thumbs :focus-visible { outline: 3px solid #00b1d0; outline-offset: 3px; }
@media (max-width: 767.98px) {
    .im-filter-fields label, .im-filter-fields .im-search-field { flex-basis: calc(50% - 12px); }
    .im-filter-fields .im-search-field { flex-basis: 100%; }
    .im-filter-fields > button { width: 100%; }
    .im-comparebar { gap: 10px; padding: 10px; font-size: 13px; }
    .im-catalog-results { margin: 0; }
    .im-product-column { padding: 0; }
    .im-admin-tabs form { margin-left: 0; }
    .im-spec-input-row { grid-template-columns: 1fr; margin-bottom: 15px; }
    .im-spec-input-row .contactinput { margin-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .im-catalog-results .categoryLink:hover { letter-spacing: normal; transition: none; }
}
/* Narrow-screen compatibility: contain the original Bootstrap gutters and
   wrap the existing footer text without changing its colors or structure. */
@media (max-width: 399.98px) {
    .container-fluid { padding-left: 12px !important; padding-right: 12px !important; }
}
@media (max-width: 991.98px) {
    .footer .dil { max-width: 100%; }
    .footer .footertitles { overflow-wrap: anywhere; }
}
