/* ============================================================
   INNER PAGES — the shell that wraps existing WordPress and
   WooCommerce content in the new visual language.

   Deliberately a SKIN, not a rebuild. Product pages, the cart and
   the checkout keep WooCommerce's own markup and behaviour, so
   add-to-cart, variations, coupons, shipping and payment all work
   exactly as they do today. Only the paint changes.
   ============================================================ */

.psv3-page{ padding:38px 0 78px; }
.psv3-head{ margin-bottom:26px; }
.psv3-head h1{
  font-family:Anton,sans-serif;font-weight:400;line-height:1.02;
  font-size:clamp(30px,4.6vw,52px);text-transform:uppercase;letter-spacing:.005em;margin:0;
}
.psv3-crumb{
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;font-size:11.5px;color:var(--txt-3);margin-bottom:12px;
}
.psv3-crumb a{color:var(--txt-3)}
.psv3-crumb a:hover{color:var(--flip-1,#FFC61A)}

/* the body copy of an existing page, made readable on the dark ground */
.psv3-body{color:var(--txt-2);font-size:16px;line-height:1.75}
.psv3-body h2{font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(22px,2.6vw,32px);margin:34px 0 12px;color:var(--txt)}
.psv3-body h3{font-size:19px;margin:26px 0 8px;color:var(--txt)}
.psv3-body h4,.psv3-body h5{font-size:16px;margin:20px 0 6px;color:var(--txt)}
.psv3-body a{color:#FFC61A}
.psv3-body a:hover{text-decoration:underline}
.psv3-body img{max-width:100%;height:auto;border-radius:4px}
.psv3-body ul,.psv3-body ol{padding-left:20px}
.psv3-body li{margin:5px 0}
.psv3-body table{width:100%;border-collapse:collapse;margin:18px 0;display:block;overflow-x:auto}
.psv3-body th,.psv3-body td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.psv3-body th{background:rgba(255,255,255,.05);color:var(--txt);
  font-family:"Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase;font-size:12.5px}
.psv3-body iframe,.psv3-body video{max-width:100%;border-radius:4px}
.psv3-body blockquote{border-left:3px solid var(--flip-1,#FFC61A);padding-left:16px;margin:20px 0;color:var(--txt-2)}

/* ---------- WooCommerce skin ---------- */
.woocommerce .psv3-body,.psv3-woo{color:var(--txt-2)}
.psv3-woo div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start}
@media(max-width:900px){.psv3-woo div.product{grid-template-columns:1fr;gap:26px}}
.psv3-woo div.product .woocommerce-product-gallery{width:100%!important;float:none!important;margin:0!important}
.psv3-woo div.product .woocommerce-product-gallery img{border-radius:5px;border:1px solid var(--line-2)}
.psv3-woo div.product .summary{width:100%!important;float:none!important;margin:0!important}
.psv3-woo .product_title{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;line-height:1.03;
  font-size:clamp(26px,3.4vw,42px);color:var(--txt);margin:0 0 10px;
}
.psv3-woo .price,.psv3-woo .woocommerce-Price-amount{
  font-family:Anton,sans-serif;font-size:30px;color:var(--txt);letter-spacing:.01em;
}
.psv3-woo .price del{opacity:.5;font-size:20px;margin-right:8px}
.psv3-woo .price ins{text-decoration:none}
.psv3-woo .woocommerce-product-details__short-description{margin:16px 0 22px;line-height:1.7}

.psv3-woo .quantity input.qty{
  background:rgba(255,255,255,.06);border:1px solid var(--line-2);color:var(--txt);
  padding:12px 8px;width:74px;border-radius:3px;font-size:15px;
}
.psv3-woo button.button,.psv3-woo a.button,.psv3-woo input.button,
.psv3-woo .wp-element-button,.psv3-woo button[type=submit]{
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:14px;border-radius:3px;border:0;cursor:pointer;
  padding:14px 24px;background:rgba(255,255,255,.09);color:var(--txt);transition:.18s;
}
.psv3-woo button.button:hover,.psv3-woo a.button:hover,.psv3-woo input.button:hover{
  background:rgba(255,255,255,.16);color:#fff;
}
.psv3-woo button.single_add_to_cart_button,.psv3-woo .checkout-button,
.psv3-woo button[name=woocommerce_checkout_place_order]{
  background:linear-gradient(90deg,#FFC61A,#FF6A2B 55%,#FF1B6B);color:#180D00;
  padding:16px 30px;font-size:15.5px;box-shadow:0 10px 34px -14px rgba(255,106,43,.8);
}
.psv3-woo button.single_add_to_cart_button:hover,.psv3-woo .checkout-button:hover{
  filter:brightness(1.08);color:#180D00;
}
.psv3-woo .variations select,.psv3-woo select,.psv3-woo input[type=text],
.psv3-woo input[type=email],.psv3-woo input[type=tel],.psv3-woo input[type=number],
.psv3-woo input[type=password],.psv3-woo textarea{
  background:rgba(255,255,255,.06);border:1px solid var(--line-2);color:var(--txt);
  padding:12px 12px;border-radius:3px;font-size:15px;width:100%;
}
.psv3-woo label{color:var(--txt-2);font-size:14px}
.psv3-woo .variations th{text-align:left;padding:8px 10px 8px 0;color:var(--txt)}

.psv3-woo .woocommerce-tabs ul.tabs{
  list-style:none;padding:0;margin:0 0 18px;display:flex;gap:6px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);
}
.psv3-woo .woocommerce-tabs ul.tabs li{margin:0;background:none;border:0}
.psv3-woo .woocommerce-tabs ul.tabs li a{
  display:block;padding:11px 18px;color:var(--txt-3);
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;font-size:13px;border-bottom:2px solid transparent;
}
.psv3-woo .woocommerce-tabs ul.tabs li.active a{color:var(--txt);border-bottom-color:#FFC61A}
.psv3-woo .woocommerce-tabs{margin-top:46px;grid-column:1/-1}

.psv3-woo .related.products,.psv3-woo .upsells.products{margin-top:52px;grid-column:1/-1}
.psv3-woo ul.products{list-style:none;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px}
.psv3-woo ul.products li.product{background:rgba(255,255,255,.03);
  border:1px solid var(--line);border-radius:5px;padding:14px;text-align:center}
.psv3-woo ul.products li.product img{border-radius:4px;margin-bottom:10px}
.psv3-woo ul.products li.product h2,.psv3-woo ul.products li.product h3{
  font-size:15px;color:var(--txt);margin:0 0 6px;font-family:Inter,sans-serif;font-weight:600}

/* cart + checkout tables */
.psv3-woo table.shop_table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.02);
  border:1px solid var(--line);border-radius:5px;overflow:hidden}
.psv3-woo table.shop_table th{background:rgba(255,255,255,.05);color:var(--txt);text-align:left;
  padding:13px 14px;font-family:"Barlow Condensed",sans-serif;letter-spacing:.12em;
  text-transform:uppercase;font-size:12.5px}
.psv3-woo table.shop_table td{padding:13px 14px;border-top:1px solid var(--line);vertical-align:middle}
.psv3-woo .cart_totals h2,.psv3-woo #order_review_heading,.psv3-woo .woocommerce-billing-fields h3{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;font-size:24px;color:var(--txt);margin:0 0 14px}
.psv3-woo .woocommerce-message,.psv3-woo .woocommerce-info,.psv3-woo .woocommerce-error,
.psv3-woo .woocommerce-notice{
  background:rgba(255,255,255,.05);border:1px solid var(--line-2);border-left:3px solid #FFC61A;
  padding:14px 16px;border-radius:3px;margin:0 0 20px;list-style:none;color:var(--txt-2);
}
.psv3-woo .woocommerce-error{border-left-color:#FF1B6B}
.psv3-woo .form-row{margin-bottom:14px}
.psv3-woo abbr.required{color:#FF1B6B;text-decoration:none}

/* the preview badge — so it is never unclear which version you are looking at */
.psv3-flag{
  position:fixed;left:14px;bottom:14px;z-index:9999;display:flex;align-items:center;gap:10px;
  background:rgba(8,10,18,.92);border:1px solid rgba(255,198,26,.5);border-radius:100px;
  padding:8px 8px 8px 15px;backdrop-filter:blur(8px);
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:11.5px;color:#FFC61A;box-shadow:0 10px 30px rgba(0,0,0,.5);
}
.psv3-flag a{
  background:rgba(255,255,255,.1);color:var(--txt);border-radius:100px;padding:5px 12px;
  font-size:11px;letter-spacing:.1em;
}
.psv3-flag a:hover{background:rgba(255,255,255,.2)}
@media(max-width:600px){.psv3-flag{left:8px;bottom:8px;font-size:10px;padding:6px 6px 6px 12px}}

/* ============================================================
   PRODUCT PAGES — laid out in the site's language, not Woo's.
   Skinning Woo's stock template kept Woo's LAYOUT, which is what made
   product pages read as the old site in new paint. These reuse the
   homepage's own chooser components so the two genuinely match.
   ============================================================ */
.psv3-prod-head{margin-bottom:26px;max-width:900px}
.psv3-prod-title{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(30px,5vw,58px);line-height:1;letter-spacing:.005em;color:var(--txt);margin:8px 0 0;
}
.psv3-prod-grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:40px;align-items:start;
}
@media(max-width:900px){.psv3-prod-grid{grid-template-columns:1fr;gap:24px}}
.psv3-prod-media .woocommerce-product-gallery{width:100%!important;float:none!important;margin:0!important}
.psv3-prod-media img{border-radius:6px;border:1px solid var(--line-2);width:100%;height:auto}
.psv3-prod-media .flex-control-thumbs{display:flex;gap:8px;list-style:none;padding:12px 0 0;margin:0;flex-wrap:wrap}
.psv3-prod-media .flex-control-thumbs li{width:64px}
.psv3-prod-media .flex-control-thumbs img{opacity:.55;cursor:pointer}
.psv3-prod-media .flex-control-thumbs img.flex-active,
.psv3-prod-media .flex-control-thumbs img:hover{opacity:1}

.psv3-buy{position:sticky;top:92px}
@media(max-width:900px){.psv3-buy{position:static}}
.psv3-buy .chd-price{white-space:nowrap}
.psv3-buy .chd-price del{opacity:.45;font-size:.6em;margin-right:6px}
.psv3-buy .chd-price ins{text-decoration:none}

/* Woo's own form, wearing the site's clothes */
.psv3-cart{margin:20px 0 4px}
.psv3-cart .quantity{display:inline-block;margin-right:10px}
.psv3-cart .quantity input.qty{
  background:rgba(255,255,255,.07);border:1px solid var(--line-2);color:var(--txt);
  padding:15px 10px;width:80px;border-radius:3px;font-size:16px;text-align:center;
}
.psv3-cart table.variations{width:100%;border-collapse:collapse;margin:0 0 16px}
.psv3-cart table.variations th{
  text-align:left;padding:10px 0 4px;color:var(--txt);vertical-align:middle;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;font-size:12.5px;
}
.psv3-cart table.variations td{padding:0 0 10px}
.psv3-cart select{
  background:rgba(255,255,255,.07);border:1px solid var(--line-2);color:var(--txt);
  padding:14px 12px;border-radius:3px;font-size:15px;width:100%;
}
.psv3-cart button.single_add_to_cart_button{
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:16px;border:0;border-radius:3px;cursor:pointer;
  padding:17px 30px;width:100%;margin-top:6px;
  background:linear-gradient(90deg,#FFC61A,#FF6A2B 55%,#FF1B6B);color:#180D00;
  box-shadow:0 12px 38px -14px rgba(255,106,43,.85);transition:.18s;
}
.psv3-cart button.single_add_to_cart_button:hover{filter:brightness(1.08)}
.psv3-cart .woocommerce-variation-price{margin:0 0 12px;font-family:Anton,sans-serif;font-size:26px;color:var(--txt)}
.psv3-cart .reset_variations{font-size:12.5px;color:var(--txt-3)}

.psv3-assure{margin-top:20px!important}
.psv3-prod-copy{margin-top:56px;max-width:820px}
.psv3-prod-copy h2{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(22px,3vw,34px);color:var(--txt);margin:0 0 14px;
}
/* ---------- the Lumi-Motion returns notice ----------
   This block is inline-styled HTML inside the product description, authored in
   WordPress: a 2px #cc0000 border, a #fff5f5 fill and a red headline. On a
   near-black page that reads as an error the customer has already made, and it
   is the loudest thing on the page. The wording has to stay - it is a material
   term of sale and the add-to-cart consent box refers to it - so this quiets
   the presentation only, and does it from OUR stylesheet so the product content
   is never edited and switching the plugin off restores the original.
   Matching on the colour literals is what lets these rules reach an inline
   style attribute; !important is what lets them win against one. */
.psv3-prod-copy [style*="#cc0000"],
.psv3-prod-copy [style*="#fff5f5"]{
  border:0!important;
  border-left:2px solid var(--line-2,rgba(255,255,255,.16))!important;
  background:transparent!important;
  color:var(--txt-2)!important;
  border-radius:0!important;
  padding:2px 0 2px 16px!important;
  margin:26px 0 0!important;
}
/* the headline drops to the same quiet label the rest of the page uses */
.psv3-prod-copy [style*="#cc0000"] > p:first-child,
.psv3-prod-copy [style*="#fff5f5"] > p:first-child,
.psv3-prod-copy p[style*="#cc0000"]{
  font-family:"Barlow Condensed",sans-serif!important;
  font-weight:700!important;text-transform:uppercase!important;
  letter-spacing:.18em!important;font-size:11px!important;
  color:var(--txt-3)!important;margin:0 0 7px!important;
}
.psv3-prod-copy [style*="#cc0000"] p,
.psv3-prod-copy [style*="#fff5f5"] p{
  color:var(--txt-2)!important;font-size:13.5px!important;line-height:1.6!important;
}
/* Bold runs inside it ("NON-REFUNDABLE") were doing the shouting on their own. */
.psv3-prod-copy [style*="#cc0000"] strong,
.psv3-prod-copy [style*="#fff5f5"] strong,
.psv3-prod-copy [style*="#cc0000"] b,
.psv3-prod-copy [style*="#fff5f5"] b{
  font-weight:600!important;color:var(--txt-2)!important;
}

/* The consent box inside the add-to-cart form is a different thing: it is the
   checkbox the customer actually has to tick, and it only appears once they
   have chosen Lumi-Motion. It stays visible and legible - just not scarlet.
   `display` is deliberately untouched, because that is what gates it.

   Keyed on the class, NOT on the colour: the script that reveals this box
   rewrites its style attribute, and the browser reserialises `#cc0000` to
   `rgb(204, 0, 0)` on the way through, so a [style*="#cc0000"] selector matches
   while the box is hidden and silently stops matching the moment it appears -
   which is the only moment it is on screen. */
.lumi-noreturn-terms{
  border-color:var(--line-2,rgba(255,255,255,.18))!important;
  background:rgba(255,255,255,.03)!important;
  color:var(--txt-2)!important;
}
.lumi-noreturn-terms label{color:var(--txt-2)!important}
.lumi-noreturn-terms strong,.lumi-noreturn-terms b{font-weight:600!important;color:var(--txt)!important}

.psv3-prod .related.products{margin-top:60px}
.psv3-prod .related.products > h2{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(20px,2.6vw,30px);color:var(--txt);margin:0 0 18px;
}

/* ---------- installation pages ---------- */
.psv3-inst-head{max-width:860px;margin-bottom:30px}
.psv3-inst-head h1{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(28px,4.4vw,50px);line-height:1.02;color:var(--txt);margin:8px 0 16px;
}
.psv3-inst-facts{display:flex;gap:9px;flex-wrap:wrap}
.psv3-inst-body{max-width:860px}
.psv3-inst-body img{border:1px solid var(--line-2);margin:10px 0}
.psv3-inst-cta{
  margin-top:52px;max-width:860px;display:flex;gap:24px;align-items:center;justify-content:space-between;
  flex-wrap:wrap;background:linear-gradient(150deg,rgba(255,198,26,.09),rgba(255,255,255,.014));
  border:1px solid rgba(255,198,26,.28);border-radius:6px;padding:24px 26px;
}
.psv3-inst-cta p{margin:6px 0 0;color:var(--txt-2);font-size:14.5px;max-width:52ch}

/* ---------- product page: fixes found on the live NEO "X" Atom page ---------- */

/* Avada and the custom-stock-status plugin each print "In stock", and we print
   our own richer line in .chd-eta. Three is two too many. */
.psv3-prod .avada-availability,
.psv3-prod .summary > p.stock,
.psv3-prod .psv3-cart p.stock{display:none}

/* Product Add-ons. The plugin hides the label of a required text field, which
   left an unlabelled white box above the Lumi-Motion dropdown - no way to know
   it wanted your machine's name. Force the label back and read the name it
   already carries in a data attribute. */
.psv3-cart .wc-pao-addons-container{margin:0 0 6px}
.psv3-cart .wc-pao-addon-container{margin:0 0 16px;padding:0}
.psv3-cart .wc-pao-addon-name{
  display:block!important;margin:0 0 7px;color:var(--txt);
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;font-size:12.5px;
}
.psv3-cart .wc-pao-addon-name:empty::before{content:attr(data-addon-name)}
.psv3-cart .wc-pao-required-addon .wc-pao-addon-name::after{content:" *";color:#FF1B6B}
.psv3-cart input[type=text],.psv3-cart input[type=email],.psv3-cart input[type=number],
.psv3-cart textarea,.psv3-cart .wc-pao-addon-field{
  background:rgba(255,255,255,.07);border:1px solid var(--line-2);color:var(--txt);
  padding:14px 12px;border-radius:3px;font-size:15px;width:100%;
}
.psv3-cart input[type=text]::placeholder{color:var(--txt-3)}
.psv3-cart #product-addons-total{margin:2px 0 10px;color:var(--txt-2);font-size:14px}
.psv3-cart .validation_message:empty{display:none}

/* the gallery, kept inside sane bounds */
.psv3-prod-media .iconic-woothumbs-images__slide img{border-radius:6px}
.psv3-prod-media img{max-height:640px;object-fit:contain}

/* Related products were falling out of the grid because these rules were only
   scoped to .psv3-woo - the product template is .psv3-prod. Hence one enormous
   stretched tile per row with a stray bullet beside it. */
.psv3-prod ul.products,.psv3-woo ul.products{
  list-style:none!important;padding:0;margin:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;
}
@media(max-width:520px){
  .psv3-prod ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
.psv3-prod ul.products li.product,.psv3-woo ul.products li.product{
  list-style:none;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:6px;padding:12px;text-align:center;margin:0;width:auto!important;float:none!important;
}
.psv3-prod ul.products li.product::marker{content:""}
.psv3-prod ul.products li.product img{
  width:100%;height:150px;object-fit:contain;border-radius:4px;margin:0 0 10px;padding:0;
}
.psv3-prod ul.products li.product .woocommerce-loop-product__title,
.psv3-prod ul.products li.product h2,.psv3-prod ul.products li.product h3{
  font-family:Inter,sans-serif;font-weight:600;font-size:14px;line-height:1.35;
  color:var(--txt);margin:0 0 6px;text-transform:none;
}
.psv3-prod ul.products li.product .price{font-family:Anton,sans-serif;font-size:17px;color:var(--txt)}
.psv3-prod ul.products li.product .stock{display:none}
.psv3-prod ul.products li.product a.button{
  display:inline-block;margin-top:9px;padding:9px 14px;font-size:12px;
  background:rgba(255,255,255,.1);color:var(--txt);border-radius:3px;
}

/* ---------- machine lookup / search ---------- */
.psv3-search{display:flex;gap:10px;max-width:640px;margin:0 0 22px}
.psv3-search input[type=search]{
  flex:1;background:rgba(255,255,255,.07);border:1px solid var(--line-2);color:var(--txt);
  padding:15px 16px;border-radius:3px;font-size:16px;
}
.psv3-search input[type=search]::placeholder{color:var(--txt-3)}
.psv3-search button{
  background:linear-gradient(90deg,#FFC61A,#FF6A2B 60%,#FF1B6B);color:#180D00;border:0;
  padding:15px 24px;border-radius:3px;cursor:pointer;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:14px;
}
.psv3-count{color:var(--txt-3);font-size:14px;margin:0 0 16px}
.psv3-count b{color:var(--txt)}
.psv3-results{display:grid;gap:10px;max-width:820px}
.psv3-result{
  display:block;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:5px;padding:15px 17px;transition:.16s;
}
.psv3-result:hover{background:rgba(255,255,255,.07);border-color:rgba(255,198,26,.45)}
.psv3-result-type{
  display:block;color:var(--txt-3);margin-bottom:4px;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;font-size:10.5px;
}
.psv3-result-title{display:block;color:var(--txt);font-size:17px;font-weight:600;line-height:1.3}
.psv3-result-ex{display:block;color:var(--txt-2);font-size:14px;margin-top:5px}
.psv3-pager{margin-top:26px;display:flex;gap:7px;flex-wrap:wrap}
.psv3-pager .page-numbers{
  padding:9px 14px;border:1px solid var(--line-2);border-radius:3px;color:var(--txt-2);font-size:14px;
}
.psv3-pager .page-numbers.current{background:rgba(255,198,26,.16);color:var(--txt);border-color:rgba(255,198,26,.5)}
.psv3-empty{max-width:620px;color:var(--txt-2);line-height:1.7}

/* Avada's own search boxes, still embedded in existing pages */
.psv3-inner .fusion-search-form{display:flex;gap:10px;max-width:640px;margin:0 0 20px}
.psv3-inner .fusion-search-form input.s{
  flex:1;background:rgba(255,255,255,.07);border:1px solid var(--line-2);color:var(--txt);
  padding:14px 15px;border-radius:3px;font-size:15px;
}
.psv3-inner .fusion-search-form .fusion-search-button input{
  background:linear-gradient(90deg,#FFC61A,#FF6A2B 60%,#FF1B6B);color:#180D00;border:0;
  padding:14px 22px;border-radius:3px;cursor:pointer;font-weight:700;
}
.psv3-inner .fusion-search-form .screen-reader-text{position:absolute;left:-9999px}

/* ---------- machine-name suggestions on the product page ---------- */
.psv3-sug{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;
  background:#0B0D15;border:1px solid rgba(255,198,26,.4);border-radius:4px;
  max-height:264px;overflow:auto;box-shadow:0 18px 44px rgba(0,0,0,.6);
}
.psv3-sug-item{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;
  border:0;cursor:pointer;padding:9px 11px;color:var(--txt);line-height:1.3;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.psv3-sug-item:last-child{border-bottom:0}
.psv3-sug-item:hover,.psv3-sug-item:focus{background:rgba(255,198,26,.16);outline:0}
.psv3-sug-thumb{
  width:52px;height:52px;flex:0 0 52px;object-fit:cover;border-radius:4px;
  border:1px solid var(--line-2);background:#05060b;
}
.psv3-sug-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.psv3-sug-name{color:var(--txt);font-size:15px;font-weight:600}
.psv3-sug-sub{color:var(--txt-3);font-size:12.5px}

/* Belt and braces on the buy panel: nothing empty should be able to open up a
   hole between the price and the first field. */
.psv3-cart .lumi-noreturn-terms[style*="display:none"]{display:none!important}
.psv3-cart div:empty:not(.psv3-sug):not([id]){display:none}
.psv3-cart #product-addons-total:empty{display:none;margin:0}
.psv3-cart img{max-width:100%;height:auto;max-height:120px;width:auto}

/* ============================================================
   THE PINBALL LOOK-UP  (/pinball-machines/)
   The child theme's own jQuery-UI autocomplete on #s, sourced from
   admin-ajax action=my_search. The script was never the problem - stripping
   the child theme's CSS left the results list invisible, so typing looked
   like it did nothing. jQuery UI appends .ui-autocomplete to <body>, outside
   our page wrapper, so these rules are deliberately unscoped. They only load
   on pages the skin is active for.
   ============================================================ */
.pinball-machines-block{max-width:720px;margin:0 auto}
.pinball-machines-block label{
  display:block;margin:0 0 10px;color:var(--txt-2);
  font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;font-size:13px;
}
.search-input-box{position:relative}
input#s.search-input{
  width:100%;background:rgba(255,255,255,.07);border:1px solid var(--line-2);
  color:var(--txt);padding:17px 18px;border-radius:4px;font-size:17px;
}
input#s.search-input::placeholder{color:var(--txt-3)}
input#s.search-input:focus{outline:0;border-color:rgba(255,198,26,.6)}

ul.ui-autocomplete,.ui-autocomplete{
  list-style:none;margin:6px 0 0;padding:0;z-index:9999;
  background:#0B0D15;border:1px solid rgba(255,198,26,.42);border-radius:4px;
  max-height:340px;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.65);
}
/* The child theme overrides _renderItem and appends a bare <li> holding an
   <img class="image-thumb"> and a <div> with the name and subtitle - so there
   is no .ui-menu-item-wrapper to hang styles on, which is why the thumbnails
   came through with no size and the rows had no padding. Style the li itself. */
.ui-autocomplete li,.ui-autocomplete .ui-menu-item{
  display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;cursor:pointer;
  border-bottom:1px solid rgba(255,255,255,.06);list-style:none;
}
.ui-autocomplete li:last-child{border-bottom:0}
.ui-autocomplete li img.image-thumb{
  width:58px;height:58px;flex:0 0 58px;object-fit:cover;border-radius:4px;
  border:1px solid var(--line-2);background:#05060b;
}
.ui-autocomplete li > div{min-width:0;color:var(--txt);font-size:15px;line-height:1.32}
.ui-autocomplete .machine-desc{color:var(--txt-3);font-size:12.5px;letter-spacing:.01em}
.ui-autocomplete li:hover,.ui-autocomplete li.ui-state-focus,
.ui-autocomplete li.ui-state-active,.ui-autocomplete .ui-menu-item-wrapper.ui-state-active{
  background:rgba(255,198,26,.18);color:#fff;border-color:rgba(255,255,255,.06);margin:0;
}
.ui-autocomplete .ui-menu-item-wrapper{display:block;padding:0;border:0;color:inherit}
.ui-helper-hidden-accessible{position:absolute!important;left:-9999px}
.pinball-machines-boxes{margin-top:22px}

/* ---------- installation: choose your kit ---------- */
.psv3-kits{margin:0 0 30px;max-width:900px}
.psv3-kits .eyebrow{margin-bottom:12px}
.psv3-kit-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;
}
@media(max-width:560px){.psv3-kit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.psv3-kit{
  display:flex;flex-direction:column;gap:3px;padding:13px 15px;border-radius:5px;
  background:rgba(255,255,255,.035);border:1px solid var(--line);transition:.16s;
}
.psv3-kit:hover{background:rgba(255,255,255,.08);border-color:rgba(255,198,26,.5)}
.psv3-kit.on{
  background:linear-gradient(150deg,rgba(255,198,26,.16),rgba(255,255,255,.02));
  border-color:rgba(255,198,26,.65);
}
.psv3-kit-name{
  color:var(--txt);font-family:Anton,sans-serif;font-weight:400;
  text-transform:uppercase;font-size:19px;line-height:1.05;letter-spacing:.01em;
}
.psv3-kit-sub{
  color:var(--txt-3);font-family:"Barlow Condensed",sans-serif;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;font-size:10.5px;
}

/* ---- the three kits people actually buy ----
   Every card used to be the same size, so "Xeno Mounts" sat at equal weight
   with the $649 LE and the row read as eight peers. The tiers now get their own
   wider grid above, with the accessories demoted to a smaller row underneath
   behind their own label. */
.psv3-kit-grid-tier{
  grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
}
.psv3-kit-tier{
  padding:22px 22px 20px;border-radius:7px;gap:5px;
  background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border-color:var(--line-2);
}
.psv3-kit-tier .psv3-kit-name{font-size:clamp(24px,3.4vw,34px)}
.psv3-kit-tier .psv3-kit-sub{font-size:11.5px;color:var(--txt-2)}
.psv3-kit-tier:hover{transform:translateY(-2px)}
.psv3-kit-tier.on{
  border-color:var(--gold);
  box-shadow:0 12px 34px -18px rgba(255,198,26,.75);
}

.psv3-kit-more{margin:26px 0 10px}
.psv3-kit-grid-extra{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.psv3-kit-extra{padding:11px 13px}
.psv3-kit-extra .psv3-kit-name{font-size:15px}
.psv3-kit-extra .psv3-kit-sub{font-size:9.5px}

@media(max-width:640px){
  /* three across stops being readable well before the shared 560px breakpoint,
     because these names are long ("NEO “X” FUSION ATOM") */
  .psv3-kit-grid-tier{grid-template-columns:1fr;gap:10px}
  .psv3-kit-tier{padding:16px 18px}
  .psv3-kit-grid-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ---------- keeping our buy panel ours ----------
   Since we stopped stripping every plugin stylesheet (which was exposing
   popups and breaking galleries), a couple of plugin rules now outrank ours
   on the one control that matters most. These are the few places worth
   forcing: the button people click to spend money, and the quantity stepper,
   whose plus/minus controls were rendering as three bare "1" boxes. */
.psv3-cart button.single_add_to_cart_button,
.psv3-woo button.single_add_to_cart_button{
  background:linear-gradient(90deg,#FFC61A,#FF6A2B 55%,#FF1B6B)!important;
  color:#180D00!important;border:0!important;
  font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;
  letter-spacing:.14em!important;text-transform:uppercase!important;
  border-radius:3px!important;
}
.psv3-cart .quantity{display:inline-flex;align-items:stretch;gap:0;border-radius:3px;overflow:hidden}
.psv3-cart .quantity input.qty{
  width:66px;text-align:center;border-radius:0;margin:0;
  border-left:0;border-right:0;
}
.psv3-cart .quantity .minus,.psv3-cart .quantity .plus,
.psv3-cart .quantity input[type=button]{
  width:44px;border:1px solid var(--line-2);background:rgba(255,255,255,.07);
  color:var(--txt);font-size:18px;line-height:1;cursor:pointer;padding:0;
  border-radius:0;-webkit-appearance:none;appearance:none;
}
.psv3-cart .quantity .minus:hover,.psv3-cart .quantity .plus:hover{background:rgba(255,255,255,.15)}
/* whatever the stepper plugin injects, it must not become a third field */
.psv3-cart .quantity input.qty ~ input.qty{display:none}

/* ---------- the three kits, on a product page ---------- */
.psv3-switch{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
  margin:0 0 26px;max-width:640px;
}
.psv3-sw{
  display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:5px;
  background:rgba(255,255,255,.035);border:1px solid var(--line);transition:.16s;
}
.psv3-sw:hover{background:rgba(255,255,255,.08);border-color:rgba(255,198,26,.45)}
.psv3-sw.on{
  background:linear-gradient(150deg,rgba(255,198,26,.17),rgba(255,255,255,.02));
  border-color:rgba(255,198,26,.7);
}
.psv3-sw-tier{
  font-family:Anton,sans-serif;font-size:19px;text-transform:uppercase;color:var(--txt);line-height:1;
}
.psv3-sw-alias{
  color:var(--txt-3);font-family:"Barlow Condensed",sans-serif;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;font-size:10px;
}
.psv3-sw-price{color:var(--txt-2);font-size:14px;margin-top:3px}
.psv3-sw.on .psv3-sw-price{color:#FFC61A}
@media(max-width:560px){
  .psv3-sw{padding:10px}
  .psv3-sw-tier{font-size:16px}
  .psv3-sw-alias{display:none}   /* the tier name and price carry it on a phone */
}

/* calm the gallery down - seventeen thumbnails in a wall was most of the mess */
.psv3-prod-media .flex-control-thumbs,
.psv3-prod-media .iconic-woothumbs-thumbnails{
  max-height:150px;overflow-y:auto;scrollbar-width:thin;
}

/* ---------- the machine lookup pages ---------- */
.psv3-lookup-lede{color:var(--txt-2);font-size:16px;max-width:56ch;margin:10px 0 0}
.psv3-lookup{max-width:660px;margin:26px 0 0}
.psv3-lookup-box{position:relative}
#psv3-machine-q{
  width:100%;background:rgba(255,255,255,.07);border:1px solid var(--line-2);
  color:var(--txt);padding:18px 20px;border-radius:5px;font-size:17px;
}
#psv3-machine-q::placeholder{color:var(--txt-3)}
#psv3-machine-q:focus{outline:0;border-color:rgba(255,198,26,.65)}
.psv3-lookup-hint{color:var(--txt-3);font-size:13px;margin:9px 0 0}
.psv3-sug-none{padding:14px 16px;color:var(--txt-2);font-size:14.5px}

.psv3-prod-alias{color:var(--txt-2);font-size:15px;margin:8px 0 0}
.psv3-prod-alias b{color:var(--txt)}

/* Belt and braces for the Avada catalog toolbar unhooked in woo-shell.php: if a
   plugin update ever prints it through a different hook, it must not come back
   as a stack of white unstyled lists over the products. */
.psv3-woo .catalog-ordering,
.psv3-woo .fusion-grid-list-view,
.psv3-woo .woocommerce-ordering,
.psv3-woo .woocommerce-result-count{display:none!important}

/* ---------- product loop tiles (shop + category archives) ----------
   The tiles come out of Avada's product template, so the buy button arrives as
   a Fusion Button wearing a lime-green gradient and a green glow set in the old
   theme's options. Next to the amber lineup on every other page it reads as a
   different site. The button is the only element that actually fights us here -
   title and price already inherit correctly. */
/* The child theme's style.css styles these tiles at `.products .product
   .product-buttons a.red-btn` and `.product-details-container
   .fusion-price-rating .price bdi` - four and three classes deep, one of them
   !important - so a shorter selector loses even with !important of its own.
   These match the theme's own selectors and add .psv3-woo on top, which is the
   only reliable way to win without resorting to inline styles. */
.psv3-woo .products .product .product-buttons a.red-btn,
.psv3-woo ul.products .fusion-button{
  background-image:linear-gradient(100deg,#FFE895 0%,#FFC61A 42%,#FF9500 78%,#FF4D8D 100%)!important;
  background-color:transparent!important;
  color:#160c00!important;
  box-shadow:0 10px 34px -10px rgba(255,140,0,.75)!important;
  border:0!important;border-radius:4px!important;
  text-shadow:none!important;
}
.psv3-woo .products .product .product-buttons a.red-btn:hover,
.psv3-woo ul.products .fusion-button:hover{
  box-shadow:0 16px 44px -10px rgba(255,27,107,.8)!important;filter:saturate(1.12);
}
/* "In stock" was set in 18px Anton, the same weight as the price above it, so
   the tile had two headlines and no clear one. */
.psv3-woo ul.products .stock{
  font-family:"Barlow Condensed",sans-serif!important;
  font-size:11px!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.18em!important;
  color:var(--txt-3)!important;margin:2px 0 12px!important;
}

/* the price came out mint green from the theme's own three-class selector */
.psv3-woo .product-details-container .fusion-price-rating .price bdi,
.psv3-woo .product-details-container .fusion-price-rating .price bdi *,
.psv3-woo ul.products .price,
.psv3-woo ul.products .price *{
  color:var(--txt)!important;
}

/* ---------- Accessories & Others blocks ----------
   Shown under a product, under the shop lineup, and as headings-only on the
   cart. They have to read as a genuine second aisle, not as related-products
   filler, so each keeps its own heading, a line of explanation and its own
   route into the category. */
.psv3-extras-wrap{margin:64px 0 0;display:flex;flex-direction:column;gap:44px}
.psv3-extras-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid var(--line);
}
.psv3-extras-head h2{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(22px,3vw,32px);color:var(--txt);margin:0 0 5px;
}
.psv3-extras-head p{color:var(--txt-3);font-size:13.5px;margin:0;max-width:52ch}
.psv3-extras-head .btn{flex:none;white-space:nowrap}

.psv3-xt-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:12px;
}
.psv3-xt{
  display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:6px;
  background:rgba(255,255,255,.035);border:1px solid var(--line);transition:.16s;
}
.psv3-xt:hover{background:rgba(255,255,255,.075);border-color:rgba(255,198,26,.5)}
.psv3-xt-shot{
  display:block;aspect-ratio:1;margin-bottom:9px;border-radius:4px;overflow:hidden;
  background:rgba(0,0,0,.35);
}
.psv3-xt-shot img{width:100%;height:100%;object-fit:contain;display:block}
.psv3-xt-name{
  color:var(--txt);font-family:"Barlow Condensed",sans-serif;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;font-size:14px;line-height:1.2;
}
.psv3-xt-price{color:var(--txt-3);font-size:12.5px}

@media(max-width:560px){
  .psv3-extras-head{flex-direction:column;align-items:flex-start;gap:12px}
  .psv3-xt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}

/* the tier/model pair injected into product loop titles */
.psv3-loop-tier{
  display:block;font-family:Anton,sans-serif;font-weight:400;
  text-transform:uppercase;letter-spacing:.01em;line-height:1.02;
  font-size:clamp(20px,2.4vw,27px);color:var(--txt);
}
.psv3-loop-alias{
  display:block;margin-top:5px;
  font-family:"Barlow Condensed",sans-serif;font-weight:700;
  text-transform:uppercase;letter-spacing:.16em;font-size:10.5px;color:var(--txt-3);
}

/* ============================================================
   INSTALLATION PAGE CONTENT
   These pages were written in Avada's builder, so the content arrives as
   Fusion accordions and inline-styled callout boxes: white panels with
   #fff8e1 / #e3f2fd / #ffe0e0 / #e8f5e9 fills and dark text, all of which
   were designed for a white page. Dropped onto this dark theme they came out
   as blocks of glare with body copy in light grey ON white - literally
   unreadable - and they read like the old site had been pasted in.

   The content itself is not touched. Everything below re-skins it in place,
   keyed on the inline colour literals where there is no class to grab, so the
   pages stay editable in Avada and nothing is lost if the plugin is disabled.
   ============================================================ */

/* ---- accordions ---- */
.psv3-inst-body .fusion-accordian{margin:0 0 26px}
.psv3-inst-body .fusion-panel,
.psv3-inst-body .panel-default{
  background:rgba(255,255,255,.028)!important;
  border:1px solid var(--line)!important;
  border-radius:7px!important;
  margin:0 0 10px!important;
  overflow:hidden;
  box-shadow:none!important;
}
.psv3-inst-body .panel-heading{
  background:transparent!important;border:0!important;padding:0!important;
}
.psv3-inst-body .panel-title{
  margin:0!important;font-family:"Barlow Condensed",sans-serif!important;
  font-weight:700!important;text-transform:uppercase!important;letter-spacing:.09em!important;
  font-size:16px!important;line-height:1.25!important;
}
.psv3-inst-body .panel-title a{
  display:block!important;padding:15px 18px!important;
  color:var(--txt)!important;text-decoration:none!important;transition:.16s;
}
.psv3-inst-body .panel-title a:hover{color:var(--gold)!important;background:rgba(255,255,255,.04)!important}
.psv3-inst-body .fusion-toggle-icon-wrapper{margin-right:10px;color:var(--gold)!important;opacity:.9}
.psv3-inst-body .panel-body,
.psv3-inst-body .toggle-content{
  background:transparent!important;
  border-top:1px solid var(--line)!important;
  color:var(--txt-2)!important;
  padding:16px 18px 18px!important;
}
/* Avada draws its own divider between toggles; ours is the panel border */
.psv3-inst-body .fusion-toggle-has-divider{border-bottom:1px solid var(--line)!important}

/* ---- the four callout boxes, by the colour they were authored with ---- */
.psv3-inst-body [style*="#fff8e1"],
.psv3-inst-body [style*="#e3f2fd"],
.psv3-inst-body [style*="#ffe0e0"],
.psv3-inst-body [style*="#e8f5e9"]{
  color:var(--txt-2)!important;
  border-radius:5px!important;
  padding:13px 16px!important;
  margin:16px 0!important;
  border-left-width:3px!important;border-left-style:solid!important;
  border-top:0!important;border-right:0!important;border-bottom:0!important;
}
.psv3-inst-body [style*="#fff8e1"]{background:rgba(255,198,26,.09)!important;border-left-color:var(--gold)!important}
.psv3-inst-body [style*="#e3f2fd"]{background:rgba(96,165,250,.10)!important;border-left-color:#60A5FA!important}
.psv3-inst-body [style*="#ffe0e0"]{background:rgba(248,113,113,.10)!important;border-left-color:#F87171!important}
.psv3-inst-body [style*="#e8f5e9"]{background:rgba(74,222,128,.09)!important;border-left-color:#4ADE80!important}
.psv3-inst-body [style*="#fff8e1"] b,.psv3-inst-body [style*="#fff8e1"] strong,
.psv3-inst-body [style*="#e3f2fd"] b,.psv3-inst-body [style*="#e3f2fd"] strong,
.psv3-inst-body [style*="#ffe0e0"] b,.psv3-inst-body [style*="#ffe0e0"] strong,
.psv3-inst-body [style*="#e8f5e9"] b,.psv3-inst-body [style*="#e8f5e9"] strong{color:var(--txt)!important}

/* inline text colours picked for a white page - both fail contrast on this one */
.psv3-inst-body [style*="#1976d2"]{color:#7DB6F5!important}
.psv3-inst-body [style*="#d32f2f"]{color:#FF8A8A!important}

/* ---- links ---- */
.psv3-inst-body a:not(.btn):not(.panel-title a){
  color:var(--gold);text-decoration:none;
  border-bottom:1px solid rgba(255,198,26,.35);transition:.15s;
}
.psv3-inst-body a:not(.btn):not(.panel-title a):hover{color:#fff;border-bottom-color:#fff}
.psv3-inst-body a:visited:not(.btn){color:var(--gold)}   /* was rendering browser purple */

/* ---- headings ---- */
.psv3-inst-body h2{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(22px,3vw,30px);color:var(--txt);margin:38px 0 14px;
  padding-bottom:11px;border-bottom:1px solid var(--line);
}
.psv3-inst-body h3{
  font-family:Anton,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:20px;color:var(--txt);margin:26px 0 10px;
}
/* the manufacturer bars (JJP, Chicago Gaming...) were cyan on nothing */
.psv3-inst-body h4,
.psv3-inst-body .fusion-tab-heading{
  font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.14em!important;
  font-size:12px!important;color:var(--gold)!important;margin:22px 0 8px!important;
}

/* ---- body copy, lists, diagrams ---- */
.psv3-inst-body p{color:var(--txt-2);line-height:1.65;margin:0 0 12px}
.psv3-inst-body strong,.psv3-inst-body b{color:var(--txt)}
.psv3-inst-body li{color:var(--txt-2);line-height:1.6;margin:0 0 7px}
.psv3-inst-body ol,.psv3-inst-body ul{padding-left:20px;margin:0 0 16px}
.psv3-inst-body img{
  max-width:100%;height:auto;border-radius:6px;border:1px solid var(--line);
  display:block;margin:16px 0;background:rgba(0,0,0,.3);
}
/* wide content must scroll inside itself, never widen the page */
.psv3-inst-body table{
  width:100%;border-collapse:collapse;margin:16px 0;
  background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:6px;
}
.psv3-inst-body th,.psv3-inst-body td{
  padding:10px 12px;border-bottom:1px solid var(--line);color:var(--txt-2);text-align:left;
}
.psv3-inst-body th{color:var(--txt);font-family:"Barlow Condensed",sans-serif;
  font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:12px}

/* ---- beating Avada at its own specificity ----
   Two of its rules outranked the block above and had to be matched selector
   for selector rather than leaned on with !important, which both sides already
   use:
     .fusion-accordian .panel-body.toggle-content   (0,3,0) - white panels
     .fusion-tabs.classic .nav-tabs > li.active .tab-link (0,5,1) - cyan tabs
   Prefixing our own container class is what puts us ahead; !important alone
   does nothing when the other rule is equally important and more specific. */
.psv3-inst-body .fusion-accordian .fusion-panel,
.psv3-inst-body .fusion-accordian .panel-body.toggle-content,
.psv3-inst-body .fusion-accordian .panel-body{
  background:transparent!important;
}
.psv3-inst-body .fusion-accordian .fusion-panel{
  background:rgba(255,255,255,.028)!important;
}

/* ---- the manufacturer tabs (Standard / JJP / Chicago Gaming / ...) ----
   Seven Avada tabs styled as a cyan-on-nothing row that belonged to the old
   site. Re-drawn as pills in the theme's own palette. */
.psv3-inst-body .fusion-tabs.classic .nav-tabs{
  display:flex;flex-wrap:wrap;gap:7px;border:0!important;
  background:transparent!important;margin:0 0 18px!important;padding:0!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li{
  float:none!important;margin:0!important;border:0!important;background:transparent!important;
  flex:0 0 auto!important;width:auto!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li .tab-link{
  display:block!important;padding:9px 15px!important;border-radius:4px!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid var(--line)!important;
  transition:.16s;margin:0!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li .tab-link:hover{
  background:rgba(255,255,255,.09)!important;border-color:rgba(255,198,26,.45)!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li .tab-link .fusion-tab-heading{
  margin:0!important;color:var(--txt-2)!important;
  font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.12em!important;font-size:12.5px!important;
  line-height:1.1!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li.active .tab-link{
  background:linear-gradient(150deg,rgba(255,198,26,.18),rgba(255,255,255,.03))!important;
  border-color:var(--gold)!important;
}
.psv3-inst-body .fusion-tabs.classic .nav-tabs > li.active .tab-link .fusion-tab-heading{
  color:var(--gold)!important;
}
.psv3-inst-body .fusion-tabs .tab-content,
.psv3-inst-body .fusion-tabs.classic .tab-content{
  background:transparent!important;border:0!important;padding:0!important;
}

/* ---- the collapsible "Step 1..7" blocks ----
   A bespoke widget from the old child theme: .step.fusion-text is the clickable
   header and the row after it holds the content, toggled by an .active class.
   It shipped as a 225px magenta-to-purple pill with its open/closed icon drawn
   from an icon font that no longer loads here, so every step showed an empty
   glyph box. Restyled only - the .active class and its JS are untouched. */
.psv3-inst-body .step.fusion-text{
  display:block!important;width:auto!important;max-width:none!important;
  background:rgba(255,255,255,.04)!important;
  border:1px solid var(--line)!important;border-left:3px solid var(--line-2)!important;
  border-radius:5px!important;margin:0 0 8px!important;padding:0!important;
  cursor:pointer;transition:.16s;
}
.psv3-inst-body .step.fusion-text:hover{
  background:rgba(255,255,255,.08)!important;border-left-color:var(--gold)!important;
}
.psv3-inst-body .step.fusion-text.active{
  background:linear-gradient(150deg,rgba(255,198,26,.14),rgba(255,255,255,.02))!important;
  border-color:rgba(255,198,26,.5)!important;border-left-color:var(--gold)!important;
}
.psv3-inst-body .step.fusion-text p,
.psv3-inst-body.post-content .step p{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  margin:0!important;padding:13px 16px!important;
  color:var(--txt)!important;
  font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.13em!important;font-size:14px!important;
}
.psv3-inst-body .step.fusion-text.active p{color:var(--gold)!important}
/* The original icon font is gone, so this is drawn from characters that always
   render. A plus/minus reads as "there is more here" to everyone; the empty
   glyph box it replaces read as nothing at all, and a bare chevron is easy to
   miss at this size. Boxed so it looks like the control it is. */
.psv3-inst-body .step p::after{
  content:"+"!important;
  font-family:inherit!important;
  font-size:17px!important;font-weight:400!important;line-height:1!important;
  display:flex!important;align-items:center;justify-content:center;
  width:26px!important;height:26px!important;flex:none;
  border:1px solid var(--line-2)!important;border-radius:4px!important;
  background:rgba(255,255,255,.05)!important;
  color:var(--txt-2)!important;
  transition:.16s;transform:none;
}
.psv3-inst-body .step.fusion-text:hover p::after{
  border-color:var(--gold)!important;color:var(--gold)!important;
}
.psv3-inst-body .step.active p::after{
  content:"\2212"!important;                 /* minus sign, not a hyphen */
  background:rgba(255,198,26,.16)!important;
  border-color:var(--gold)!important;color:var(--gold)!important;
}
.psv3-inst-body .step-content{
  color:var(--txt-2)!important;padding:2px 0 14px 16px!important;
  border-left:1px solid var(--line);margin:0 0 14px!important;
}
.psv3-inst-body .step + .fusion-builder-row{margin:0 0 14px}

/* The tab bar is a <ul>, so it was drawing disc markers beside every pill. */
.psv3-inst-body .fusion-tabs .nav-tabs,
.psv3-inst-body .fusion-tabs .nav-tabs > li{
  list-style:none!important;
}
/* Avada's mobile-mode-accordion emits one extra single-item .nav-tabs INSIDE
   each pane - the accordion header it swaps in on small screens - and hides
   them with CSS we strip. On desktop that printed a second "Standard" pill
   under the real tab bar, then a stray one before every pane. The wrapping
   pill bar above works at every width, so these duplicates are simply gone. */
.psv3-inst-body .fusion-tabs .tab-pane .nav-tabs{display:none!important}

/* Avada also emits a .fusion-mobile-tab-nav inside .tab-content - the same tab
   labels again, for its mobile accordion mode - and relies on its own CSS to
   hide it above the breakpoint. That CSS is stripped here, so a second
   "Standard" pill was printing under the real bar. The pill bar wraps at every
   width, so this duplicate is never needed. */
.psv3-inst-body .fusion-mobile-tab-nav{display:none!important}

/* The revealed step content sat 16px left of the step bar above it because the
   builder row it lives in is full-bleed. Line them up. */
.psv3-inst-body .step + .fusion-builder-row .fusion-layout-column,
.psv3-inst-body .step + .fusion-builder-row > .fusion-row{
  padding-left:0;margin-left:0;
}

/* A pre-existing rule pins EVERY descendant of the callouts to #222 with
   !important:  [style*="#fff8e1"] *, [style*="#e3f2fd"] * { color:#222!important }
   Setting the container colour therefore fixed nothing below the first line -
   the paragraphs and numbered steps inside the "Three things you MUST know"
   warning stayed near-black on a dark panel. Same selectors, our container
   class in front, which is what wins. */
.psv3-inst-body [style*="#fff8e1"] *,
.psv3-inst-body [style*="#e3f2fd"] *,
.psv3-inst-body [style*="#ffe0e0"] *,
.psv3-inst-body [style*="#e8f5e9"] *{
  color:var(--txt-2)!important;
}
.psv3-inst-body [style*="#fff8e1"] b,   .psv3-inst-body [style*="#fff8e1"] strong,
.psv3-inst-body [style*="#e3f2fd"] b,   .psv3-inst-body [style*="#e3f2fd"] strong,
.psv3-inst-body [style*="#ffe0e0"] b,   .psv3-inst-body [style*="#ffe0e0"] strong,
.psv3-inst-body [style*="#e8f5e9"] b,   .psv3-inst-body [style*="#e8f5e9"] strong,
.psv3-inst-body [style*="#fff8e1"] a,   .psv3-inst-body [style*="#e3f2fd"] a,
.psv3-inst-body [style*="#ffe0e0"] a,   .psv3-inst-body [style*="#e8f5e9"] a{
  color:var(--txt)!important;
}

/* ============================================================
   Making the tabs and accordions actually WORK

   These are Bootstrap-derived widgets: the JS only moves .active / .in around
   and it is CSS that does the showing and hiding. Those few rules live in
   Avada's stylesheet, which this design strips - so every tab pane and every
   accordion body was left at display:block. Clicking "American Pinball"
   highlighted the tab and changed nothing on screen, because all seven
   manufacturers were already rendered, stacked one after another.

   Nothing here is styling. Without it the widgets are inert. */
.psv3-inst-body .fusion-tabs .tab-pane{display:none!important}
.psv3-inst-body .fusion-tabs .tab-pane.active{
  /* opacity forced too: Bootstrap fades via a separate .in class, and if the
     JS sets .active without it the pane is laid out but invisible - a worse
     failure than this one, because the tab would look like it worked. */
  display:block!important;opacity:1!important;
}
.psv3-inst-body .fusion-tabs .tab-pane.fade{transition:opacity .15s linear}

.psv3-inst-body .fusion-accordian .panel-collapse{display:none!important}
.psv3-inst-body .fusion-accordian .panel-collapse.in{display:block!important}
/* the transitional state Avada's JS applies while animating the height open */
.psv3-inst-body .fusion-accordian .panel-collapse.collapsing{
  display:block!important;position:relative;height:0;overflow:hidden;
  transition:height .3s ease;
}

/* The machine rows inside each manufacturer tab had no expand indicator at all
   - Avada draws it from the same icon font that no longer loads, so the wrapper
   rendered empty and the rows read as plain headings rather than something you
   could open. Same +/- control as the steps, for the same reason. */
.psv3-inst-body .fusion-panel .panel-title a{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:12px;
}
.psv3-inst-body .fusion-panel .fusion-toggle-icon-wrapper{display:none!important}
.psv3-inst-body .fusion-panel .panel-title a::after{
  content:"+";
  font-family:inherit;font-size:17px;font-weight:400;line-height:1;
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;flex:none;
  border:1px solid var(--line-2);border-radius:4px;
  background:rgba(255,255,255,.05);color:var(--txt-2);
  transition:.16s;
}
.psv3-inst-body .fusion-panel .panel-title a:hover::after{
  border-color:var(--gold);color:var(--gold);
}
/* Bootstrap leaves aria-expanded on the trigger, which is the one place that
   reliably says whether this panel is open - the class lives on the body. */
.psv3-inst-body .fusion-panel .panel-title a[aria-expanded="true"]::after{
  content:"\2212";
  background:rgba(255,198,26,.16);border-color:var(--gold);color:var(--gold);
}
.psv3-inst-body .fusion-panel .panel-title a[aria-expanded="true"]{color:var(--gold)!important}


/* ---------- shop category tiles ----------
   Woo/Avada renders these as a white .fusion-product-wrapper holding a
   500x500 pixel-art badge per category. On a dark site that is three glaring
   white cards with artwork that belongs to the old design. The artwork is
   dropped and the tile rebuilt from the category name and count, which is the
   only information a category tile actually needs to carry. */
.psv3-woo ul.products li.product-category .fusion-product-wrapper{
  background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;
}
.psv3-woo ul.products li.product-category img,
.psv3-woo ul.products li.product-category .product-images,
.psv3-woo ul.products li.product-category .featured-image{
  display:none!important;
}
.psv3-woo ul.products li.product-category{
  background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02))!important;
  border:1px solid var(--line-2)!important;border-radius:7px!important;
  overflow:hidden;transition:.16s;
}
.psv3-woo ul.products li.product-category:hover{
  border-color:var(--gold)!important;
  background:linear-gradient(160deg,rgba(255,198,26,.14),rgba(255,255,255,.03))!important;
  transform:translateY(-2px);
}
.psv3-woo ul.products li.product-category > a,
.psv3-woo ul.products li.product-category .fusion-product-wrapper > a{
  display:block!important;padding:26px 22px!important;text-decoration:none!important;
}
.psv3-woo ul.products li.product-category h2,
.psv3-woo ul.products li.product-category .woocommerce-loop-category__title{
  font-family:Anton,sans-serif!important;font-weight:400!important;
  text-transform:uppercase!important;letter-spacing:.01em!important;
  font-size:clamp(20px,2.6vw,28px)!important;line-height:1.05!important;
  color:var(--txt)!important;margin:0!important;padding:0!important;
}
.psv3-woo ul.products li.product-category:hover h2{color:var(--gold)!important}
/* the count is its own <mark>, so it can be pulled onto a line of its own */
.psv3-woo ul.products li.product-category mark.count{
  display:block;background:none!important;
  font-family:"Barlow Condensed",sans-serif!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.16em!important;
  font-size:11px!important;color:var(--txt-3)!important;margin-top:7px;
}

/* ---------- cart ----------
   Cart thumbnails were coming through at their full 500px, so a single line
   item filled most of the screen and the quantity and remove controls were
   pushed off to the side of a giant picture. */
.psv3-woo table.cart img,
.psv3-woo .woocommerce-cart-form img,
.psv3-woo .cart_item img{
  width:84px!important;height:auto!important;max-width:84px!important;
  border-radius:5px;border:1px solid var(--line);display:block;
}
.psv3-woo table.cart td.product-thumbnail{width:100px}
@media(max-width:560px){
  .psv3-woo table.cart img,
  .psv3-woo .woocommerce-cart-form img,
  .psv3-woo .cart_item img{width:62px!important;max-width:62px!important}
}

/* ---------- selected-machine chip (product page lookup) ----------
   When a machine is picked, the text input hides and this chip takes its
   place: the machine's own artwork, its name, and an X to clear it and pick a
   different one. The input keeps its value underneath - it is what the
   add-on plugin validates and submits. */
.psv3-chip{
  display:flex;align-items:center;gap:12px;position:relative;
  padding:10px 40px 10px 10px;border-radius:6px;
  background:linear-gradient(150deg,rgba(255,198,26,.12),rgba(255,255,255,.03));
  border:1px solid rgba(255,198,26,.55);
}
.psv3-chip-thumb{
  width:52px;height:52px;flex:none;border-radius:5px;object-fit:cover;
  border:1px solid var(--line-2);background:#0a0c14;
}
.psv3-chip-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.psv3-chip-name{
  color:var(--txt);font-family:"Barlow Condensed",sans-serif;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:15px;line-height:1.2;
}
.psv3-chip-sub{color:var(--txt-3);font-size:12px}
.psv3-chip-x{
  position:absolute;top:50%;right:8px;transform:translateY(-50%);
  width:28px;height:28px;border-radius:4px;border:1px solid var(--line-2);
  background:rgba(255,255,255,.05);color:var(--txt-2);
  font-size:16px;line-height:1;cursor:pointer;transition:.15s;
}
.psv3-chip-x:hover{border-color:#F87171;color:#F87171;background:rgba(248,113,113,.1)}

/* ---------- cart on small screens ----------
   WooCommerce marks every cell with data-title for exactly this, but the
   stylesheet that used to do the stacking was Avada's, which this skin strips.
   Left as a real <table> on a 393px phone, the columns overflowed and Subtotal
   fell off the right edge. Below 768px each row becomes a card. */
@media(max-width:768px){
  .psv3-woo table.shop_table_responsive thead{display:none}
  .psv3-woo table.shop_table_responsive,
  .psv3-woo table.shop_table_responsive tbody,
  .psv3-woo table.shop_table_responsive tr{display:block;width:100%}
  .psv3-woo table.shop_table_responsive tr{
    border:1px solid var(--line);border-radius:7px;margin:0 0 14px;
    padding:14px;background:rgba(255,255,255,.02);
  }
  .psv3-woo table.shop_table_responsive td{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    width:100%;border:0;padding:7px 0;text-align:right;
  }
  .psv3-woo table.shop_table_responsive td::before{
    content:attr(data-title);
    font-family:"Barlow Condensed",sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;font-size:11px;
    color:var(--txt-3);text-align:left;flex:none;
  }
  .psv3-woo table.shop_table_responsive td:not([data-title])::before{content:none}
  /* the product cell reads top-down, not label/value */
  .psv3-woo table.shop_table_responsive td.product-name{
    flex-direction:column;align-items:flex-start;text-align:left;
  }
  .psv3-woo table.shop_table_responsive td.product-thumbnail{justify-content:flex-start}
  .psv3-woo table.shop_table_responsive td.product-remove{
    position:absolute;width:auto;padding:0;
  }
  .psv3-woo table.shop_table_responsive tr{position:relative}
  .psv3-woo table.shop_table_responsive td.product-remove{top:10px;right:12px}
  .psv3-woo table.shop_table_responsive td.product-remove::before{content:none}
  /* coupon + update row */
  .psv3-woo td.actions{flex-direction:column;align-items:stretch}
  .psv3-woo td.actions .coupon{display:flex;flex-direction:column;gap:9px;width:100%}
  .psv3-woo td.actions .coupon input,
  .psv3-woo td.actions .coupon button,
  .psv3-woo td.actions > button{width:100%;margin:0}
  .psv3-woo td.actions > button{margin-top:9px}
}
/* the child theme echoes the stock status twice per cart line at any width */
.psv3-woo td.product-name .stock ~ .stock{display:none}
/* quantity stepper: keep - / input / + on one row, in the site's palette */
.psv3-woo .quantity{display:inline-flex!important;align-items:stretch;gap:0}
.psv3-woo .quantity input[type=number],.psv3-woo .quantity .qty{
  width:52px;text-align:center;background:rgba(255,255,255,.05);
  border:1px solid var(--line-2);color:var(--txt);border-radius:0;
}
.psv3-woo .quantity button,.psv3-woo .quantity .plus,.psv3-woo .quantity .minus{
  width:34px;background:rgba(255,255,255,.08);border:1px solid var(--line-2);
  color:var(--txt);cursor:pointer;font-size:15px;
}
.psv3-woo .quantity .minus{border-radius:4px 0 0 4px;border-right:0}
.psv3-woo .quantity .plus{border-radius:0 4px 4px 0;border-left:0}
