/* Satmarin catalog components (6j: chips / spec-card / supersession / RFQ / hub rows).
   Phase 7.4 final styling: consumes the shared token layer (sm-tokens.css) — no local :root.
   Markup/data bindings unchanged (6j contracts); presentation only. Design system: no shadows. */

/* SITEWIDE EOL rule: discontinued products render no price. woocommerce_get_price_html is filtered
   to '' for them (content gone everywhere; WC loop templates skip empty prices), so the only artifact
   is the empty single-product <p class="price"> wrapper — hide it. Keyed on :empty (NOT the plugin's
   misleadingly-global .discontinued class, which it adds to every price), so live prices are untouched. */
.price:empty{display:none!important;}

/* No-short-description products: the full description is promoted into the summary (functions.php).
   Style it for the narrower summary column + hide any empty short-description wrapper (no blank gap). */
.single-product .woocommerce-product-details__short-description:empty{display:none!important;}
.single-product .sm-summary-desc{margin:18px 0 0;font:400 15px/1.65 var(--sm-font-body);color:var(--sm-graphite);}
.single-product .sm-summary-desc > :first-child{margin-top:0;}
.single-product .sm-summary-desc > :last-child{margin-bottom:0;}
.single-product .sm-summary-desc h1,.single-product .sm-summary-desc h2,.single-product .sm-summary-desc h3,
.single-product .sm-summary-desc h4{font-family:var(--sm-font-display);color:var(--sm-navy);line-height:1.25;margin:18px 0 8px;}
.single-product .sm-summary-desc p{margin:0 0 12px;}
.single-product .sm-summary-desc ul,.single-product .sm-summary-desc ol{margin:0 0 12px;padding-left:20px;}

/* Left WooCommerce sidebar ("Products" + "Brands" iks-menu widgets). Styled HERE (satmarin-catalog.css
   loads on BOTH category archives and single-product pages) so the widget titles are identical on both
   — sm-shop.css is archive-only, which made them inconsistent. Non-sticky (flows with the page, no
   scroll-follow); natural height, NO inner scrollbar. */
#sidebar,#sidebar .ct-sidebar{position:static!important;}
#sidebar .ct-sidebar{display:flex;flex-direction:column;gap:18px;}
#sidebar .widget-title,#sidebar .ct-widget .widget-title,#sidebar .widget .widgettitle,#sidebar .widget > h2,#sidebar .widget > h3,#sidebar .widgettitle{
  font:700 14px/1.15 var(--sm-font-display)!important;color:var(--sm-navy)!important;letter-spacing:.01em;margin:0 0 12px!important;}

/* ============================================================================
   SINGLE-PRODUCT vertical compaction (whitespace reclaim) + compact meta eyebrow row.
   ============================================================================ */
/* breadcrumb up: trim the container top spacing + the (breadcrumb-only) hero on single product */
.single-product .ct-container[data-vertical-spacing*="top"]{padding-top:6px!important;} /* remove the whitespace above the product */
.single-product .hero-section[data-type="type-1"]{margin-bottom:6px!important;}
.single-product .hero-section > [class*="ct-container"]{padding-top:6px!important;padding-bottom:6px!important;min-height:0!important;}
.single-product .product_title.entry-title{margin-top:0;}
/* discontinued notice renders inside the gallery's image container (via woocommerce_product_thumbnails);
   make THAT container a flex column and order the notice -1 so it sits ABOVE the image (image-width). */
.single-product .ct-product-gallery-container{display:flex;flex-direction:column;}
.single-product .sm-notice--gallery{order:-1;margin:0 0 14px;}
/* the gallery was position:sticky, which let the image drift down as the long summary scrolled — pin it
   to normal flow and top-align both columns so the image+notice and the summary all start at the top. */
.single-product .woocommerce-product-gallery{position:static!important;align-self:flex-start!important;margin-top:0!important;}
.single-product .product-entry-wrapper{align-items:flex-start!important;} /* stop the gallery column being vertically centred (which pushed the image/notice low) */
/* DESKTOP ONLY: the hero header (which normally sits above the product) is hidden here, so Blocksy's
   80px margin-top on .product-entry-wrapper — plus the empty notices wrapper / product top padding —
   is now dead space that drops the product ~120px below the sidebar menu top. Remove it so the product
   sits flush with "PRODUCTS". (Mobile keeps the hero visible, so it keeps this spacing.) */
@media (min-width:1081px){
  .single-product .product-entry-wrapper{margin-top:0!important;}
  .single-product div.product{margin-top:0!important;padding-top:0!important;}
  .single-product .woocommerce-notices-wrapper:empty{margin:0!important;padding:0!important;min-height:0!important;}
}
/* one inline eyebrow row (Brand · SKU · Category · Tag) replaces stacked .product_meta + the pwb brand line */
.single-product .pwb-single-product-brands{display:none!important;} /* brand now shown inside .sm-prodmeta */
.single-product .product_meta{display:none!important;} /* Blocksy renders this as a layer; replaced by .sm-prodmeta */
.sm-prodmeta{display:flex;flex-wrap:wrap;align-items:center;margin:0 0 12px;font:400 13px/1.5 var(--sm-font-body);color:var(--sm-graphite);}
.sm-prodmeta .sm-pm__i{white-space:nowrap;}
.sm-prodmeta .sm-pm__i + .sm-pm__i::before{content:"";display:inline-block;width:1px;height:11px;background:var(--sm-border);margin:0 12px;vertical-align:-1px;}
.sm-prodmeta .sm-pm__k{color:var(--sm-muted);}
.sm-prodmeta a{color:var(--sm-navy);text-decoration:none;}
.sm-prodmeta a:hover{text-decoration:underline;}

/* ============================================================================
   Item 4 — SINGLE-PRODUCT price box: design-system cleanup (display only).
   - show only the product's OWN/native currency (the Currency-per-Product feature appends the native
     price as the LAST amount; the converted viewing-currency price comes first) -> hide all but last.
   - NO green anywhere: neutralise the price box background + remap the add-to-cart "alt" button (which
     ships green) to the token button spec (pill, navy->orange, no shadow). Qty input token-aligned.
   (Discontinued products show no price at all per Part A — unaffected.)
   ============================================================================ */
.single-product .price br{display:none!important;}
.single-product .price > .woocommerce-Price-amount:not(:last-of-type){display:none!important;}
.single-product .price:has(> br) > del,
.single-product .price:has(> br) > ins{display:none!important;}
.single-product .price{background:none!important;color:var(--sm-navy)!important;font-family:var(--sm-font-body)!important;padding:0!important;}
/* add-to-cart button -> token pill, navy->orange, no shadow, NO green (overrides WooCommerce .button.alt) */
.single-product .single_add_to_cart_button,
.single-product .single_add_to_cart_button.alt,
.single-product form.cart button.button{
  display:inline-block;background:var(--sm-navy)!important;color:var(--sm-offwhite)!important;border:0!important;
  border-radius:var(--sm-radius-pill)!important;box-shadow:none!important;padding:12px 30px!important;
  font:500 15px/1.2 var(--sm-font-body)!important;text-transform:none!important;letter-spacing:0!important;
  transition:background-color var(--sm-transition)!important;}
.single-product .single_add_to_cart_button:hover{background:var(--sm-orange)!important;color:#fff!important;}
/* qty input token-aligned (hairline, rounded, no shadow) */
.single-product .quantity .qty{border:1px solid var(--sm-hairline)!important;border-radius:10px!important;
  padding:10px 8px!important;box-shadow:none!important;background:var(--sm-white)!important;color:var(--sm-navy)!important;}
.single-product form.cart .quantity{margin-right:10px;}

.sm-chips,.sm-speccard,.sm-notice,.sm-hub{font-family:var(--sm-font-body);}
.sm-speccard__title,.sm-hub__title{font-family:var(--sm-font-display);}

/* Chips — "Compatible with" (pill, white, hairline border, hover navy) */
.sm-chips{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0;}
.sm-chips__label{flex:0 0 100%;margin:0 0 4px;font:600 12px/1 var(--sm-font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--sm-orange);}
.sm-chip{display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--sm-radius-pill);background:var(--sm-white);border:1px solid var(--sm-chipborder);color:var(--sm-graphite);font:400 14px/1 var(--sm-font-body);text-decoration:none;transition:border-color var(--sm-transition),color var(--sm-transition);}
.sm-chip:hover{border-color:var(--sm-navy);color:var(--sm-navy);}

/* Spec card — white, 32px pad, Poppins title, hairline-separated key/value rows */
.sm-speccard{background:var(--sm-white);border:1px solid var(--sm-lightgray);border-radius:var(--sm-radius-card);padding:32px;margin:24px 0;}
.sm-speccard__title{margin:0 0 16px;font:600 28px/1.1 var(--sm-font-display);letter-spacing:-.01em;color:var(--sm-navy);}
.sm-speccard__row{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-top:1px solid var(--sm-hairline);}
.sm-speccard__row:first-of-type{border-top:0;}
.sm-speccard__k{color:var(--sm-muted);font:400 14px/1.4 var(--sm-font-body);}
.sm-speccard__v{color:var(--sm-graphite);font:500 14px/1.4 var(--sm-font-body);text-align:right;}

/* KNS "Available options" — hairline card mirroring the spec card; grouped option chips (no shadow, no prices) */
.sm-optcard{background:var(--sm-white);border:1px solid var(--sm-lightgray);border-radius:var(--sm-radius-card);padding:32px;margin:24px 0;font-family:var(--sm-font-body);}
.sm-optcard__title{margin:0 0 6px;font:600 28px/1.1 var(--sm-font-display);letter-spacing:-.01em;color:var(--sm-navy);}
.sm-optcard__note{margin:0 0 18px;color:var(--sm-muted);font:400 14px/1.4 var(--sm-font-body);}
.sm-optcard__group{padding:14px 0;border-top:1px solid var(--sm-hairline);}
.sm-optcard__group:first-of-type{border-top:0;padding-top:0;}
.sm-optcard__gtitle{margin:0 0 10px;font:600 12px/1.2 var(--sm-font-body);text-transform:uppercase;letter-spacing:.07em;color:var(--sm-muted);}
.sm-optcard__list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px;}
.sm-optcard__list li{padding:6px 12px;border:1px solid var(--sm-hairline);border-radius:var(--sm-radius-pill);background:var(--sm-offwhite);color:var(--sm-graphite);font:500 13px/1.3 var(--sm-font-body);}
@media (max-width:560px){.sm-optcard{padding:22px;}.sm-optcard__title{font-size:22px;}}

/* Supersession notice — offwhite panel, orange accent, navy text (no shadow) */
.sm-notice{background:var(--sm-offwhite);border:1px solid var(--sm-lightgray);border-left:3px solid var(--sm-orange);border-radius:12px;padding:14px 18px;margin:0 0 16px;color:var(--sm-navy);font:400 15px/1.5 var(--sm-font-body);}
.sm-notice a{color:var(--sm-navy);font-weight:600;text-decoration:none;}
.sm-notice a:hover{color:var(--sm-orange);}

/* Primary button — RFQ CTA + re-skin of the single add-to-cart (pill, navy->orange, NO shadow) */
.sm-btn-primary,
.single-product .single_add_to_cart_button,
.single-product .wpb-get-a-quote-button-btn{
  display:inline-block;background:var(--sm-navy)!important;color:var(--sm-offwhite)!important;
  border:0!important;border-radius:var(--sm-radius-pill)!important;padding:14px 26px!important;box-shadow:none!important;
  font:500 15px/1.2 var(--sm-font-body)!important;text-transform:none!important;letter-spacing:0!important;
  transition:background-color var(--sm-transition),color var(--sm-transition)!important;cursor:pointer;
}
.sm-btn-primary:hover,
.single-product .single_add_to_cart_button:hover,
.single-product .wpb-get-a-quote-button-btn:hover{background:var(--sm-orange)!important;color:#fff!important;}
.sm-rfq{margin:8px 0 16px;}

/* Model-hub list rows — the antenna_model hub shows the .sm-hub list ONLY (6j.5 contract). Hide the
   default WC product grid AND its chrome: the result-count/ordering bar (.woo-listing-top) and the
   pagination (nav.ct-pagination), plus the orphaned filter bar (it can only filter the now-hidden grid).
   Specificity is raised to .tax-antenna_model.woocommerce (both are body classes) so the grid hide beats
   sm-shop.css's `.woocommerce ul.products{display:grid!important}`, which loads later at equal specificity. */
.tax-antenna_model.woocommerce ul.products,
.tax-antenna_model.woocommerce .woo-listing-top,
.tax-antenna_model.woocommerce nav.ct-pagination,
.tax-antenna_model .sm-filterbar{display:none!important;}
.sm-hub{max-width:var(--sm-maxw);margin:0 auto;padding:0 var(--sm-pad);}
.sm-hub__row{display:grid;grid-template-columns:80px 1fr 40px;gap:24px;align-items:center;padding:22px 0;border-top:1px solid var(--sm-hairline);text-decoration:none;transition:background-color var(--sm-transition);}
.sm-hub__row:hover{background:var(--sm-rowhover);}
.sm-hub__idx{font:600 12px/1 var(--sm-font-body);letter-spacing:.12em;color:var(--sm-muted);}
.sm-hub__title{font:500 19px/1.3 var(--sm-font-body);color:var(--sm-navy);}
.sm-hub__arrow{color:var(--sm-orange);font-size:20px;text-align:right;}

/* mobile: keep components comfortable on small screens (principle 2) */
@media (max-width:560px){
  .sm-speccard{padding:22px;}
  .sm-speccard__title{font-size:22px;}
  .sm-speccard__row{gap:14px;}
  .sm-hub{padding:0 18px;}
  .sm-hub__row{grid-template-columns:40px 1fr 28px;gap:14px;padding:18px 0;}
  .sm-hub__title{font-size:16px;}
}

/* Kit composition card (v1.0.17) — display-only list of the parts inside a spare-parts kit (product_type
   `bundle`; Product Bundles plugin removed). Mirrors the .sm-speccard hairline card exactly; tokens only,
   no shadow. Component title (link) + SKU as secondary text; quantity shown only when > 1. */
.sm-kitcard{background:var(--sm-white);border:1px solid var(--sm-lightgray);border-radius:var(--sm-radius-card);padding:32px;margin:24px 0;font-family:var(--sm-font-body);}
.sm-kitcard__title{margin:0 0 16px;font:600 28px/1.1 var(--sm-font-display);letter-spacing:-.01em;color:var(--sm-navy);}
.sm-kitcard__row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:12px 0;border-top:1px solid var(--sm-hairline);}
.sm-kitcard__row:first-of-type{border-top:0;}
.sm-kitcard__part{display:flex;flex-direction:column;gap:2px;min-width:0;}
.sm-kitcard__link{color:var(--sm-navy);font:500 14px/1.4 var(--sm-font-body);text-decoration:none;}
.sm-kitcard__link:hover{color:var(--sm-orange);}
.sm-kitcard__sku{color:var(--sm-muted);font:400 13px/1.3 var(--sm-font-body);}
.sm-kitcard__qty{flex:0 0 auto;text-align:right;white-space:nowrap;color:var(--sm-graphite);font:500 14px/1.4 var(--sm-font-body);}
@media (max-width:560px){.sm-kitcard{padding:22px;}.sm-kitcard__title{font-size:22px;}.sm-kitcard__row{gap:14px;}}
