.ttps-quote-bar{margin:0 0 14px}.ttps-quote-bar-inner{min-height:48px;border:1px solid #dce4ec;background:#fff;border-radius:10px;padding:8px 12px 8px 10px;display:flex;align-items:center;justify-content:flex-end;gap:10px;box-shadow:0 4px 14px rgba(15,59,104,.04)}.ttps-quote-icon{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#1769E0;color:#fff;font-size:12px;font-weight:900;flex:0 0 auto}.ttps-quote-copy{margin-right:auto;font-size:12px;color:#4b5563;line-height:1.3}.ttps-quote-copy>span{font-weight:700;color:#374151}.ttps-quote-copy a{color:#1769E0}.ttps-quote-link{display:inline-flex;align-items:center;gap:6px;background:#0F3B68;color:#fff!important;border-radius:7px;padding:8px 12px;font-size:11px;font-weight:800;white-space:nowrap}.ttps-quote-link:hover{background:#1769E0}.ttps-quote-bar .addify-mini-quote,.ttps-quote-bar .addify-mini-quote *{font-size:12px!important}.ttps-quote-bar .addify-mini-quote{display:inline!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.ttps-quote-bar .addify-mini-quote a{color:#374151!important;text-decoration:none!important}.ttps-quote-bar .addify-mini-quote .count{font-weight:800}.ttps-quote-bar .addify-mini-quote .amount{display:none!important}
.ttps{--tt-deep:#0F3B68;--tt-black:#111827;--tt-blue:#1769E0;--tt-silver:#E7EAEE;--tt-off:#F7F8FA;--tt-char:#20252B;max-width:1400px;margin:0 auto;padding:24px 20px 70px;color:var(--tt-char);font-family:inherit}.ttps *{box-sizing:border-box}.ttps a{text-decoration:none}.ttps-hero{min-height:390px;border-radius:24px;background:linear-gradient(120deg,#0b3158,#0f3b68 60%,#153f6b);color:#fff;padding:56px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:center;gap:36px;overflow:hidden;position:relative}.ttps-hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-100px;bottom:-180px}.ttps-eyebrow{display:block;font-size:11px;letter-spacing:.14em;font-weight:800;color:var(--tt-blue)}.ttps-hero .ttps-eyebrow{color:#b9d3ff}.ttps-hero h1{font-size:clamp(40px,5vw,64px);line-height:.98;letter-spacing:-.04em;margin:14px 0 18px;color:#fff}.ttps-hero h1 em{font-style:normal;color:#8bb9ff}.ttps-hero p{font-size:17px;line-height:1.65;max-width:650px;color:#d6e3f2;margin:0 0 25px}.ttps-hero-actions,.ttps-actions{display:flex;gap:10px;flex-wrap:wrap}.ttps-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:11px 15px;font-weight:800;font-size:12px;transition:.2s}.ttps-primary{background:var(--tt-blue);color:#fff!important}.ttps-primary:hover{transform:translateY(-2px);filter:brightness(1.08)}.ttps-light{background:#fff;color:var(--tt-deep)!important}.ttps-ghost{border:1px solid #d5dce5;color:var(--tt-deep)!important;background:#fff}.ttps-hero-panel{align-self:end;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);padding:24px;border-radius:16px;position:relative;z-index:1}.ttps-hero-panel span{font-size:10px;letter-spacing:.14em;color:#b9d3ff}.ttps-hero-panel strong{display:block;font-size:21px;line-height:1.25;margin:11px 0 18px;color:#fff}.ttps-hero-panel a{color:#8bb9ff;font-weight:800;font-size:12px}.ttps-cats{padding:58px 0 12px}.ttps-section-head,.ttps-shopbar,.ttps-toolbar,.ttps-filter-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.ttps-section-head h2,.ttps-shopbar h2{font-size:30px;letter-spacing:-.03em;margin:6px 0}.ttps-section-head>a{color:var(--tt-deep);font-weight:800;font-size:12px}.ttps-cat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:22px}.ttps-cat{min-height:142px;border:1px solid #dfe4ea;background:#fff;border-radius:14px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;transition:.2s;position:relative;overflow:hidden}.ttps-cat:before{content:"";position:absolute;inset:0;background-image:var(--tt-cat-bg);background-size:cover;background-position:center;opacity:.09;pointer-events:none}.ttps-cat>*{position:relative}.ttps-cat:hover{transform:translateY(-3px);border-color:#b7c9dc;box-shadow:0 14px 35px rgba(15,59,104,.08)}.ttps-cat span{font-size:10px;color:#6b7280;margin-bottom:auto}.ttps-cat h3{font-size:17px;color:var(--tt-deep);margin:14px 0 8px}.ttps-cat b{font-size:11px;color:var(--tt-blue)}.ttps-shopbar{padding:56px 0 22px;align-items:end}.ttps-shopbar p{margin:4px 0 0;color:#69727d;font-size:13px}.ttps-search{display:flex;min-width:360px}.ttps-search input{height:46px;border:1px solid #d6dce3;border-radius:9px 0 0 9px;padding:0 14px;min-width:0;flex:1;background:#fff}.ttps-search button{height:46px;border:0;background:var(--tt-black);color:#fff;border-radius:0 9px 9px 0;padding:0 18px;font-weight:800}.ttps-mobile-filterbar{display:none}.ttps-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.ttps-filters{background:#fff;border:1px solid #e0e5eb;border-radius:14px;padding:16px;height:max-content;position:sticky;top:20px;min-width:0}.ttps-filter-head{align-items:center;padding-bottom:13px;border-bottom:1px solid #edf0f3}.ttps-filter-head a{font-size:10px;color:var(--tt-blue);font-weight:800}.ttps-filters label{display:block;font-size:11px;font-weight:800;color:#374151;margin:16px 0}.ttps-filters select,.ttps-filters input{width:100%;height:38px;border:1px solid #d9dfe6;border-radius:7px;background:#fff;margin-top:6px;padding:0 8px;font:inherit;font-weight:500;font-size:11px}.ttps-price-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ttps-filter-btn{width:100%;height:41px;background:var(--tt-blue);border:0;color:#fff;border-radius:8px;font-weight:800;cursor:pointer}.ttps-results{min-width:0}.ttps-toolbar{margin-bottom:14px;align-items:center;color:#6b7280;font-size:12px}.ttps-toolbar form{margin:0}.ttps-toolbar select{height:38px;border:1px solid #d9dfe6;border-radius:7px;background:#fff;padding:0 10px;font-size:11px}.ttps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;min-width:0}.ttps-card{background:#fff;border:1px solid #e1e6eb;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:.2s}.ttps-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(15,59,104,.09);border-color:#c5d2df}.ttps-image{height:210px;background:#f7f8fa;display:flex;align-items:center;justify-content:center;position:relative;padding:18px;overflow:hidden}.ttps-image img{width:100%;height:100%;object-fit:contain;display:block}.ttps-badge{position:absolute;left:12px;top:12px;background:var(--tt-blue);color:#fff;border-radius:6px;padding:5px 8px;font-size:9px;font-weight:800}.ttps-card-body{padding:17px}.ttps-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--tt-blue);font-weight:800}.ttps-card h3{font-size:17px;line-height:1.3;margin:7px 0 9px}.ttps-card h3 a{color:var(--tt-black)}.ttps-card p{font-size:12px;line-height:1.55;color:#68727e;margin:0 0 12px}.ttps-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid #edf0f3;border-bottom:1px solid #edf0f3;padding:10px 0;margin:0 0 12px}.ttps-specs span{min-width:0}.ttps-specs small{display:block;font-size:9px;color:#89929d;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.ttps-specs b{display:block;font-size:10px;color:var(--tt-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ttps-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:13px;font-size:10px;color:#68727e}.ttps-meta strong{color:var(--tt-deep);font-size:13px;text-align:right}.ttps-actions{display:grid;grid-template-columns:1fr 1fr}.ttps-actions .ttps-btn{width:100%;min-width:0;padding:10px 8px}.ttps-empty{text-align:center;padding:70px 20px;background:#fff;border:1px solid #e1e6eb;border-radius:14px}.ttps-empty strong{font-size:21px;color:var(--tt-black)}.ttps-empty p{color:#68727e}.ttps-pagination{display:flex;justify-content:center;gap:7px;margin-top:26px}.ttps-pagination a{width:36px;height:36px;border:1px solid #dbe1e7;border-radius:8px;display:grid;place-items:center;color:var(--tt-deep);font-weight:800;font-size:12px}.ttps-pagination a.active{background:var(--tt-deep);color:#fff;border-color:var(--tt-deep)}.ttps-bottom-cta{margin-top:62px;border-radius:18px;background:var(--tt-black);color:#fff;padding:36px 42px;display:flex;align-items:center;justify-content:space-between;gap:30px}.ttps-bottom-cta h2{font-size:29px;margin:6px 0}.ttps-bottom-cta p{color:#bfc7d1;max-width:720px;margin:0;line-height:1.55;font-size:13px}
@media(max-width:1100px){.ttps-cat-grid{grid-template-columns:repeat(3,1fr)}.ttps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ttps-layout{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:800px){.ttps{padding:12px 12px 50px}.ttps-quote-bar-inner{justify-content:space-between}.ttps-quote-copy{margin-right:0;flex:1}.ttps-quote-link{padding:8px 10px}.ttps-hero{padding:38px 26px;grid-template-columns:1fr;min-height:auto}.ttps-hero-panel{margin-top:8px}.ttps-shopbar{display:block}.ttps-search{min-width:0;margin-top:16px}.ttps-mobile-filterbar{display:flex;align-items:center;justify-content:space-between;margin:10px 0 12px;font-size:11px;color:#69727d}.ttps-filter-toggle{border:1px solid #d9dfe6;background:#fff;border-radius:8px;padding:9px 12px;font-weight:800;color:var(--tt-deep);cursor:pointer}.ttps-filter-toggle span{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:20px;background:var(--tt-blue);color:#fff;margin-left:6px;font-size:9px}.ttps-layout{grid-template-columns:1fr}.ttps-filters{display:none;position:static}.ttps-filters.is-open{display:block}.ttps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ttps-bottom-cta{display:block;padding:30px}.ttps-bottom-cta .ttps-btn{margin-top:18px}}
@media(max-width:540px){.ttps-hero h1{font-size:38px}.ttps-grid{grid-template-columns:1fr}.ttps-cat-grid{grid-template-columns:1fr 1fr}.ttps-section-head{display:block}.ttps-section-head>a{display:inline-block;margin-top:9px}.ttps-image{height:225px}.ttps-card h3{font-size:17px}.ttps-actions{grid-template-columns:1fr}.ttps-actions .ttps-btn{width:100%}.ttps-search input{font-size:12px}.ttps-price-row{grid-template-columns:1fr 1fr}}

/* Product page: quote bar + filter sidebar reused from the shop layout.
   Only supplies the CSS variables those components read (--tt-deep,
   --tt-blue, etc.) — deliberately avoids the shop's broader resets
   (max-width, global link underline removal, box-sizing) so it doesn't
   touch the rest of the theme's product template. The display/layout
   rules for .ttps-layout, .ttps-filters and .ttps-mobile-filterbar are
   already global further up this file, so they apply here automatically. */
.ttps-product-shell{--tt-deep:#0F3B68;--tt-black:#111827;--tt-blue:#1769E0;--tt-silver:#E7EAEE;--tt-off:#F7F8FA;--tt-char:#20252B;max-width:1320px;margin:0 auto 28px;padding:0 20px;box-sizing:border-box}
.ttps-product-main{min-width:0;width:100%}
@media(max-width:800px){.ttps-product-shell{padding:0 12px}}

/* Trust badges — rendered inline in the WooCommerce hook flow, then moved
   under the gallery images by JS (assets/shop.js) so they sit in the same
   spot regardless of how the active theme lays out .images/.summary. */
.ttps-trust-badges{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;padding:14px 16px;border:1px solid #e1e6eb;border-radius:12px;background:#fff}
.ttps-trust-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#374151;min-width:0}
.ttps-trust-check{width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:var(--tt-blue,#1769E0);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}
.ttps-trust-item strong{display:block;font-size:12px;color:var(--tt-deep,#0F3B68)}
.ttps-trust-item small{display:block;font-size:10px;color:#6b7280}

/* Business Purchase box */
.ttps-buy-box{margin:18px 0 0;padding:16px;border:1px solid #e1e6eb;border-radius:12px;background:#f7f8fa}
.ttps-buy-box-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.ttps-buy-box-icon{width:30px;height:30px;flex:0 0 auto;border-radius:9px;background:#e7edf6;color:var(--tt-deep,#0F3B68);display:grid;place-items:center;font-size:15px}
.ttps-buy-box-head strong{display:block;font-size:14px;color:var(--tt-deep,#0F3B68)}
.ttps-buy-box-head span{display:block;font-size:11px;color:#6b7280;margin-top:2px}
.ttps-buy-box-list{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:12px;color:#374151}
.ttps-buy-box-btn{display:block;text-align:center;border:1px solid var(--tt-blue,#1769E0);color:var(--tt-blue,#1769E0)!important;border-radius:8px;padding:11px;font-weight:800;font-size:12px}
.ttps-buy-box-btn:hover{background:var(--tt-blue,#1769E0);color:#fff!important}

/* Contact Sales box */
.ttps-sales-box{margin:12px 0 0;padding:14px 16px;border:1px solid #e1e6eb;border-radius:12px;background:#fff;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ttps-sales-icon{width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:#fef3e2;color:#b45309;display:grid;place-items:center;font-size:13px}
.ttps-sales-box strong{display:block;font-size:12px;color:var(--tt-deep,#0F3B68)}
.ttps-sales-box p{margin:2px 0 0;font-size:11px;color:#6b7280}
.ttps-sales-box a{margin-left:auto;flex:0 0 auto;font-size:11px;font-weight:800;color:var(--tt-blue,#1769E0)!important;white-space:nowrap}

/* Ideal For tab content now uses .ttps-tab-box (see below) instead. */

/* Compare section — wraps [tekno_trade_compare]. Only generic element
   selectors are styled here since the shortcode's own markup/classes
   are unknown from this plugin; adjust .ttps-compare-widget rules once
   you see its real output if spacing looks off. */
.ttps-compare{margin-top:46px;padding:28px;border:1px solid #e1e6eb;border-radius:16px;background:#fff}
.ttps-compare h2{font-size:24px;margin:6px 0 6px;color:var(--tt-deep,#0F3B68)}
.ttps-compare>p{font-size:13px;color:#68727e;margin:0 0 18px;max-width:640px}
.ttps-compare-widget select,.ttps-compare-widget input[type="text"]{height:44px;border:1px solid #d6dce3;border-radius:8px;padding:0 12px;font:inherit;font-size:12px;background:#fff}
.ttps-compare-widget button,.ttps-compare-widget input[type="submit"]{height:44px;border:0;background:var(--tt-deep,#0F3B68);color:#fff;border-radius:8px;padding:0 20px;font-weight:800;font-size:12px;cursor:pointer}
.ttps-compare-widget button:hover,.ttps-compare-widget input[type="submit"]:hover{background:var(--tt-blue,#1769E0)}

/* Ideal For / Technical Specifications tab content */
.ttps-tab-box{background:#eef2f8;border-left:4px solid var(--tt-blue,#1769E0);border-radius:6px;padding:24px 28px;margin:20px 0}
.ttps-tab-box ul{list-style:disc;margin:0;padding-left:20px}
.ttps-tab-box li{font-size:14px;color:#1f2937;line-height:2.1;margin:0}

/* WooCommerce tabs restyle — boxed pill nav + roomier panel, matching the
   reference layout (Description | Technical Specifications |
   Additional information | Ideal For). */
.ttps-product-shell .woocommerce-tabs.wc-tabs-wrapper{margin-top:44px}
.ttps-product-shell ul.tabs.wc-tabs{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0 0 22px;padding:0;border:0}
.ttps-product-shell ul.tabs.wc-tabs::before{display:none}
.ttps-product-shell ul.tabs.wc-tabs li{margin:0;padding:0;border:1px solid #e1e6eb;border-radius:10px;background:#fff}
.ttps-product-shell ul.tabs.wc-tabs li:before,.ttps-product-shell ul.tabs.wc-tabs li:after{display:none}
.ttps-product-shell ul.tabs.wc-tabs li a{display:block;padding:14px 22px;font-weight:800;font-size:13px;color:var(--tt-black,#111827);text-decoration:none}
.ttps-product-shell ul.tabs.wc-tabs li.active{background:var(--tt-deep,#0F3B68);border-color:var(--tt-deep,#0F3B68)}
.ttps-product-shell ul.tabs.wc-tabs li.active a{color:#fff}
.ttps-product-shell .woocommerce-Tabs-panel{border:0!important;padding:0!important}

/* Hide the "Category: ..." line WooCommerce prints by default under Add to
   Cart; leaves SKU and tags (if any) untouched. */
.ttps-product-shell .product_meta .posted_in{display:none}

/* Add to Cart / Add to Quote button row. .ttps-buy-row is created by JS
   (assets/shop.js), which wraps the WooCommerce cart form and — if it finds
   one — your "Add to Quote" plugin's button, side by side. */
.ttps-buy-row{display:flex;gap:12px;align-items:stretch;margin-bottom:6px}
.ttps-buy-row form.cart{flex:1;display:flex;flex-wrap:wrap;gap:10px;margin:0}
.ttps-buy-row form.cart .quantity{flex:0 0 auto}
.ttps-buy-row form.cart .button,.ttps-buy-row form.cart .single_add_to_cart_button{flex:1;min-width:140px}
.ttps-buy-row>a,.ttps-buy-row>button{flex:1;display:flex;align-items:center;justify-content:center;border-radius:9px;font-weight:800;font-size:13px;border:1px solid var(--tt-deep,#0F3B68);color:var(--tt-deep,#0F3B68)!important;background:#fff;text-decoration:none;padding:0 14px;cursor:pointer}
.ttps-buy-row>a:hover,.ttps-buy-row>button:hover{background:var(--tt-deep,#0F3B68);color:#fff!important}

@media(max-width:800px){
  .ttps-buy-box-list{grid-template-columns:1fr}
  .ttps-sales-box a{margin-left:0}
  .ttps-compare{padding:20px}
  .ttps-buy-row{flex-direction:column}
}
