.elementor-4103 .elementor-element.elementor-element-db46524{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4103 .elementor-element.elementor-element-913889a{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4103 .elementor-element.elementor-element-82949d7{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-4103 .elementor-element.elementor-element-094fed9{--display:flex;}.elementor-4103 .elementor-element.elementor-element-289198e{--display:flex;}.elementor-widget-woocommerce-product-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.woocommerce .elementor-widget-woocommerce-product-price .price{color:var( --e-global-color-primary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-woocommerce-product-add-to-cart .added_to_cart{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-4103 .elementor-element.elementor-element-a724b25 .cart button, .elementor-4103 .elementor-element.elementor-element-a724b25 .cart .button{transition:all 0.2s;}.elementor-4103 .elementor-element.elementor-element-a724b25 .quantity .qty{transition:all 0.2s;}.elementor-4103 .elementor-element.elementor-element-63f420c{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-4103 .elementor-element.elementor-element-7b731a9{--display:flex;}@media(max-width:1024px){.elementor-4103 .elementor-element.elementor-element-913889a{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}@media(max-width:767px){.elementor-4103 .elementor-element.elementor-element-094fed9{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}@media(min-width:768px){.elementor-4103 .elementor-element.elementor-element-82949d7{--content-width:1350px;}.elementor-4103 .elementor-element.elementor-element-63f420c{--content-width:1350px;}.elementor-4103 .elementor-element.elementor-element-7b731a9{--content-width:1350px;}}/* Start custom CSS for woocommerce-product-add-to-cart, class: .elementor-element-a724b25 *//* Hide the stock count on Ghost Arms products.
   Only the in-stock line is hidden. The out-of-stock message stays
   visible, because after the fifth sale "Sold out" needs to show. */
.ga-product .stock.in-stock,
.ga-product form.cart .stock.in-stock{
  display:none !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-db46524 *//* ==========================================================================
   GHOST ARMS / DARK OPS  -  SINGLE PRODUCT TEMPLATE
   tier1tactical.com

   Skins the WooCommerce and Elementor widgets on the Dark Ops product
   template. Scoped entirely under .ga-product.

   IMPORTANT: the template's outer container needs BOTH classes:

       ga-page ga-product

   ga-page brings the shared components across from the landing page
   stylesheet, the epigraph band, the bento, the build sheet cards, the
   gallery and the lightbox, so those blocks can be reused unchanged.
   ga-product adds the WooCommerce skin below.

   Both ghost-arms-page.css and this file must be loaded. Order does not
   matter, they target different things.
   ========================================================================== */

.ga-product{
  --ga-ink:#0B0D0C;
  --ga-panel:#121512;
  --ga-panel-2:#191E18;
  --ga-od-deep:#2A3024;
  --ga-phos:#4FE3A2;
  --ga-phos-hi:#6BF0B4;
  --ga-text:#E9ECE7;
  --ga-muted:#98A192;
  --ga-line:rgba(255,255,255,.10);
  --ga-line-strong:rgba(255,255,255,.20);
  --ga-display:"Barlow Condensed",'Arial Narrow',sans-serif;
  --ga-body:"Barlow",system-ui,-apple-system,sans-serif;
  --ga-mono:"JetBrains Mono",ui-monospace,monospace;

  background:var(--ga-ink);
  color:var(--ga-text);
  font-family:var(--ga-body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.ga-product *,
.ga-product *::before,
.ga-product *::after{box-sizing:border-box}
.ga-product img{display:block;max-width:100%;height:auto}
.ga-product a{color:inherit;text-decoration:none}
.ga-product .elementor-widget-container{padding:0}

/* ==========================================================================
   1  PRODUCT TITLE
   ========================================================================== */
.ga-product .elementor-widget-woocommerce-product-title .product_title,
.ga-product h1.product_title,
.ga-product .product_title{
  font-family:var(--ga-display) !important;
  text-transform:uppercase;
  font-weight:700;
  font-size:clamp(2.4rem,4.6vw,3.8rem);
  line-height:.98;
  letter-spacing:-.005em;
  color:var(--ga-text);
  margin:0 0 18px;
}

/* ==========================================================================
   2  SHORT DESCRIPTION
   ========================================================================== */
.ga-product .woocommerce-product-details__short-description,
.ga-product .elementor-widget-woocommerce-product-short-description{
  color:var(--ga-muted);
  font-size:1.05rem;
  line-height:1.65;
  margin:0 0 26px;
}
.ga-product .woocommerce-product-details__short-description p{
  color:var(--ga-muted);
  margin:0 0 12px;
  max-width:52ch;
}
.ga-product .woocommerce-product-details__short-description strong{color:var(--ga-text)}

/* ==========================================================================
   3  PRICE
   ========================================================================== */
.ga-product .price,
.ga-product .elementor-widget-woocommerce-product-price .price{
  font-family:var(--ga-display);
  font-weight:700;
  font-size:clamp(2.4rem,5vw,3.6rem);
  line-height:1;
  letter-spacing:-.01em;
  color:var(--ga-text);
  margin:0 0 6px;
  display:block;
}
.ga-product .price .woocommerce-Price-amount{color:var(--ga-text)}
.ga-product .price del{opacity:.45;font-size:.5em}
.ga-product .price ins{text-decoration:none;color:var(--ga-text)}

/* ==========================================================================
   4  STOCK
   ========================================================================== */
.ga-product .stock,
.ga-product .elementor-widget-woocommerce-product-stock .stock{
  font-family:var(--ga-mono);
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ga-phos);
  margin:0 0 26px;
  padding:0;
  background:none;
}
.ga-product .stock.out-of-stock{color:#C9736F}

/* ==========================================================================
   5  ADD TO CART
   The button is the one element on this page that must not be subtle.
   ========================================================================== */
.ga-product form.cart{margin:0 0 24px;display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}

/* sold individually, so the quantity field is noise.
   Delete this rule if you ever allow more than one per order. */
.ga-product form.cart .quantity{display:none}

.ga-product .single_add_to_cart_button,
.ga-product button.single_add_to_cart_button,
.ga-product .elementor-button.single_add_to_cart_button{
  appearance:none;
  -webkit-appearance:none;
  background:var(--ga-phos);
  background-image:none;
  color:#06120C;
  border:1px solid var(--ga-phos);
  border-radius:0;
  box-shadow:none;
  font-family:var(--ga-display);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  font-size:1.05rem;
  line-height:1;
  padding:20px 40px;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,transform .12s ease;
  width:auto;
  min-width:240px;
}
.ga-product .single_add_to_cart_button:hover,
.ga-product .single_add_to_cart_button:focus{
  background:var(--ga-phos-hi);
  border-color:var(--ga-phos-hi);
  color:#06120C;
}
.ga-product .single_add_to_cart_button:active{transform:translateY(1px)}
.ga-product .single_add_to_cart_button.disabled,
.ga-product .single_add_to_cart_button:disabled{
  background:none;color:var(--ga-muted);border-color:var(--ga-line-strong);cursor:not-allowed;
}

/* quantity field, styled in case you re-enable it */
.ga-product .quantity input.qty{
  background:var(--ga-panel);
  border:1px solid var(--ga-line-strong);
  border-radius:0;
  color:var(--ga-text);
  font-family:var(--ga-mono);
  padding:18px 12px;
  width:80px;
  text-align:center;
}

/* ==========================================================================
   6  PRODUCT IMAGES
   ========================================================================== */
.ga-product .woocommerce-product-gallery{margin:0}
.ga-product .woocommerce-product-gallery__wrapper{margin:0}
.ga-product .woocommerce-product-gallery__image{border:1px solid var(--ga-line);background:var(--ga-panel)}
.ga-product .woocommerce-product-gallery img{display:block;width:100%}
.ga-product .flex-control-thumbs{
  display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0;padding:0;list-style:none;
}
.ga-product .flex-control-thumbs li{margin:0;flex:0 0 calc(20% - 8px)}
.ga-product .flex-control-thumbs img{
  border:1px solid var(--ga-line);opacity:.55;transition:opacity .2s ease,border-color .2s ease;cursor:pointer;
}
.ga-product .flex-control-thumbs img:hover,
.ga-product .flex-control-thumbs img.flex-active{opacity:1;border-color:var(--ga-phos)}
.ga-product .woocommerce-product-gallery__trigger{
  background:rgba(11,13,12,.8);border:1px solid var(--ga-line-strong);border-radius:0;color:var(--ga-text);
}

/* ==========================================================================
   7  META, BREADCRUMBS, NOTICES
   ========================================================================== */
.ga-product .product_meta,
.ga-product .woocommerce-breadcrumb{
  font-family:var(--ga-mono);
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ga-muted);
}
.ga-product .product_meta{border-top:1px solid var(--ga-line);padding-top:20px;margin-top:24px}
.ga-product .product_meta a:hover,
.ga-product .woocommerce-breadcrumb a:hover{color:var(--ga-phos)}

.ga-product .woocommerce-message,
.ga-product .woocommerce-info,
.ga-product .woocommerce-error{
  background:var(--ga-panel-2);
  border:1px solid var(--ga-line);
  border-left:2px solid var(--ga-phos);
  border-radius:0;
  color:var(--ga-text);
  font-family:var(--ga-body);
}
.ga-product .woocommerce-message a,
.ga-product .woocommerce-info a{color:var(--ga-phos)}

/* ==========================================================================
   8  CUSTOM BLOCKS ON THIS TEMPLATE
   ========================================================================== */
.ga-product .ga-wrap{max-width:1360px;margin:0 auto;padding:0 28px}

.ga-product .ga-eyebrow{
  font-family:var(--ga-mono);font-size:.72rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--ga-phos);margin:0 0 16px;
}
.ga-product .ga-plogo{display:block;width:180px;height:auto !important;color:var(--ga-text);margin:0 0 20px}

/* transfer note */
.ga-product .ga-transfer{border-left:2px solid var(--ga-phos);padding:4px 0 4px 20px;margin:24px 0 0}
.ga-product .ga-transfer p{color:var(--ga-muted);margin:0;max-width:70ch}

/* section headings and small print reused from the landing page */
.ga-product .ga-wrap h2,
.ga-product section h2{
  font-family:var(--ga-display);text-transform:uppercase;font-weight:700;
  font-size:clamp(2rem,4.4vw,3.2rem);line-height:1;color:var(--ga-text);margin:0 0 14px;
}
.ga-product section p{color:var(--ga-muted)}
.ga-product .ga-credits,
.ga-product .ga-legal{color:var(--ga-muted);max-width:none}
.ga-product .ga-credits{font-family:var(--ga-mono);font-size:.72rem;line-height:1.9;letter-spacing:.06em}
.ga-product .ga-legal{font-size:.78rem;line-height:1.7}

/* ==========================================================================
   9  RESPONSIVE
   ========================================================================== */
@media(max-width:1024px){
  .ga-product .single_add_to_cart_button{width:100%;min-width:0}
  .ga-product .flex-control-thumbs li{flex:0 0 calc(25% - 8px)}
}
@media(max-width:600px){
  .ga-product .flex-control-thumbs li{flex:0 0 calc(33.333% - 7px)}
}

/* ==========================================================================
   10  ADDITIONAL INFORMATION TABLE
   The Woo attributes table. On a brand level template this is how each
   product shows its own headline specs without hardcoding anything.
   ========================================================================== */
.ga-product .shop_attributes{
  width:100%;border-collapse:collapse;border:1px solid var(--ga-line);background:var(--ga-panel);margin:0;
}
.ga-product .shop_attributes tr{border-bottom:1px solid var(--ga-line)}
.ga-product .shop_attributes tr:last-child{border-bottom:0}
.ga-product .shop_attributes th{
  text-align:left;width:38%;padding:14px 18px;background:none;border:0;
  font-family:var(--ga-mono);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ga-muted);font-weight:400;vertical-align:top;
}
.ga-product .shop_attributes td{
  padding:14px 18px;border:0;color:var(--ga-text);
  font-family:var(--ga-mono);font-size:.78rem;line-height:1.5;
}
.ga-product .shop_attributes td p{margin:0;color:var(--ga-text)}

/* ==========================================================================
   11  PRODUCT CONTENT
   Renders each product's own Description field. This is where the per
   product spec block lives, so the template stays product agnostic.
   ========================================================================== */
.ga-product .elementor-widget-woocommerce-product-content{color:var(--ga-muted)}
.ga-product .elementor-widget-woocommerce-product-content p{color:var(--ga-muted);max-width:70ch}
.ga-product .elementor-widget-woocommerce-product-content h2,
.ga-product .elementor-widget-woocommerce-product-content h3{
  font-family:var(--ga-display);text-transform:uppercase;font-weight:700;color:var(--ga-text);
}

/* ==========================================================================
   12  TAIL
   Contact and trademark, below the Product Content widget.
   ========================================================================== */
.ga-product .ga-tail{
  padding:56px 0 64px;
  border-top:1px solid var(--ga-line);
}
.ga-product .ga-contact{
  margin:0 auto;max-width:460px;text-align:center;
}
.ga-product .ga-contact p{margin:0;max-width:none;text-align:center}
.ga-product .ga-contact__label{
  font-family:var(--ga-mono);font-size:.66rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ga-muted);margin-bottom:16px;
}
.ga-product .ga-contact__name{
  font-family:var(--ga-display);text-transform:uppercase;font-weight:700;
  font-size:1.5rem;line-height:1;letter-spacing:.03em;color:var(--ga-text);margin-bottom:8px;
}
.ga-product .ga-contact__org{
  font-family:var(--ga-mono);font-size:.72rem;line-height:1.9;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ga-muted);margin-bottom:18px;
}
.ga-product .ga-contact__links{
  display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;
}
.ga-product .ga-contact__links a{
  font-family:var(--ga-mono);font-size:.8rem;letter-spacing:.04em;color:var(--ga-phos);
  border-bottom:1px solid rgba(79,227,162,.35);padding-bottom:2px;
  transition:border-color .2s ease;
}
.ga-product .ga-contact__links a:hover{border-bottom-color:var(--ga-phos)}
.ga-product .ga-tail .ga-legal{
  margin:44px 0 0;padding-top:26px;border-top:1px solid var(--ga-line);
  text-align:center;font-size:.76rem;line-height:1.7;color:var(--ga-muted);
}
@media(max-width:480px){
  .ga-product .ga-contact__links{flex-direction:column;gap:12px}
}

/* ==========================================================================
   FIX: PRODUCT TEMPLATE OVERRIDES
   Paste at the very END of the stylesheet, after product-template.css.

   Fixes seen on the live template:
     1. product title rendering black on black
     2. Add to Cart showing the Elementor accent purple
     3. empty short description rendering as a grey placeholder bar
   ========================================================================== */

/* --- 1. PRODUCT TITLE ----------------------------------------------------
   The theme and Elementor both target the title with .elementor-4103 .elementor-element.elementor-element-db46524s that beat
   a single class. These go one level deeper and use !important on colour
   only, which is the property being overridden.
------------------------------------------------------------------------- */
.ga-product .product_title,
.ga-product h1.product_title,
.ga-product .elementor-widget-woocommerce-product-title h1,
.ga-product .elementor-widget-woocommerce-product-title .product_title,
.ga-product .elementor-widget-heading .elementor-heading-title{
  color:var(--ga-text) !important;
  font-family:var(--ga-display) !important;
  text-transform:uppercase;
  font-weight:700;
  font-size:clamp(2.2rem,4.2vw,3.4rem);
  line-height:.98;
  letter-spacing:-.005em;
  margin:0 0 18px;
  -webkit-text-fill-color:var(--ga-text);   /* beats any gradient text trick */
  background:none;
}

/* --- 2. ADD TO CART ------------------------------------------------------
   Elementor's global accent colour is winning. These match its specificity
   and cover every state.
------------------------------------------------------------------------- */
.ga-product .single_add_to_cart_button,
.ga-product button.single_add_to_cart_button,
.ga-product .elementor-button.single_add_to_cart_button,
.ga-product .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
.ga-product form.cart button[type="submit"]{
  background-color:var(--ga-phos) !important;
  background-image:none !important;
  color:#06120C !important;
  border:1px solid var(--ga-phos) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  font-family:var(--ga-display);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  font-size:1.05rem;
  padding:20px 40px;
  width:auto;
  min-width:260px;
}
.ga-product .single_add_to_cart_button:hover,
.ga-product .single_add_to_cart_button:focus,
.ga-product .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button:hover{
  background-color:var(--ga-phos-hi) !important;
  color:#06120C !important;
  border-color:var(--ga-phos-hi) !important;
}
.ga-product .single_add_to_cart_button.disabled,
.ga-product .single_add_to_cart_button:disabled{
  background-color:transparent !important;
  color:var(--ga-muted) !important;
  border-color:var(--ga-line-strong) !important;
  cursor:not-allowed;
}

/* --- 3. EMPTY SHORT DESCRIPTION -----------------------------------------
   Renders as a grey placeholder bar when the excerpt field is blank.
   Better fix is to fill the excerpt in, see the note below. This hides the
   empty state so it does not sit there as a grey slab in the meantime.
------------------------------------------------------------------------- */
.ga-product .woocommerce-product-details__short-description:empty{display:none}
.ga-product .elementor-widget-woocommerce-product-short-description
  .woocommerce-product-details__short-description:empty{display:none}
.ga-product .woocommerce-product-details__short-description{
  background:none;
  border:0;
  padding:0;
  color:var(--ga-muted);
  font-size:1.05rem;
  line-height:1.65;
  margin:0 0 26px;
}
.ga-product .woocommerce-product-details__short-description p{
  color:var(--ga-muted);margin:0 0 12px;max-width:52ch;
}
.ga-product .woocommerce-product-details__short-description strong{color:var(--ga-text)}

/* --- 4. STOCK ------------------------------------------------------------
   Spacing only. If the count is showing twice, that is two Product Stock
   widgets on the template. Delete one in Elementor.
------------------------------------------------------------------------- */
.ga-product .stock{
  font-family:var(--ga-mono);
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ga-phos);
  margin:0 0 22px;
  padding:0;
  background:none;
}
.ga-product .stock.out-of-stock{color:#C9736F}


/* --- 5. GALLERY THUMBNAILS ----------------------------------------------
   Woo runs them edge to edge by default. This spaces them and dims the
   inactive ones so the active frame reads clearly.
------------------------------------------------------------------------- */
.ga-product .flex-control-thumbs{
  display:flex !important;
  flex-wrap:wrap;
  gap:10px;
  margin:12px 0 0 !important;
  padding:0;
  list-style:none;
}
.ga-product .flex-control-thumbs li{
  margin:0 !important;
  flex:0 0 calc(20% - 8px);
  width:auto !important;
}
.ga-product .flex-control-thumbs img{
  width:100%;
  border:1px solid var(--ga-line);
  opacity:.5;
  transition:opacity .2s ease,border-color .2s ease;
  cursor:pointer;
}
.ga-product .flex-control-thumbs img:hover,
.ga-product .flex-control-thumbs img.flex-active{
  opacity:1;
  border-color:var(--ga-phos);
}
.ga-product .woocommerce-product-gallery__image{border:1px solid var(--ga-line)}

@media(max-width:1024px){
  .ga-product .flex-control-thumbs li{flex:0 0 calc(25% - 8px)}
}
@media(max-width:600px){
  .ga-product .flex-control-thumbs li{flex:0 0 calc(33.333% - 7px)}
}


/* --- 6. HERO -------------------------------------------------------------
   First block on the template, above the purchase block. Deliberately
   capped at 58vh so the price and Add to Cart still land near the fold.
------------------------------------------------------------------------- */
.ga-product .ga-hero{
  position:relative;
  min-height:min(58vh,540px);
  display:flex;
  align-items:center;
  overflow:hidden;
  border-bottom:1px solid var(--ga-line);
  background:var(--ga-ink);
}
.ga-product .ga-hero__media{position:absolute;inset:0}
.ga-product .ga-hero__media img{
  width:100%;height:100%;object-fit:cover;object-position:64% 50%;
}
.ga-product .ga-hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    var(--ga-ink) 0%,
    rgba(11,13,12,.92) 26%,
    rgba(11,13,12,.55) 48%,
    rgba(11,13,12,.15) 72%,
    rgba(11,13,12,.55) 100%);
}
.ga-product .ga-hero__inner{position:relative;z-index:2;width:100%;padding:56px 0}

.ga-product .ga-hero__logo{
  display:block;width:min(200px,46%);height:auto !important;
  color:var(--ga-text);margin:0 0 22px;
}
.ga-product .ga-hero__title{
  font-family:var(--ga-display);text-transform:uppercase;font-weight:700;
  font-size:clamp(3rem,7.5vw,6rem);line-height:.9;letter-spacing:-.01em;
  color:var(--ga-text);margin:0 0 18px;
}
.ga-product .ga-hero__title em{font-style:normal;color:var(--ga-phos)}
.ga-product .ga-hero__sub{
  color:var(--ga-muted);font-size:1.08rem;line-height:1.6;
  max-width:42ch;margin:0 0 30px;
}
.ga-product .ga-hero__meta{
  display:flex;gap:36px;flex-wrap:wrap;
  border-top:1px solid var(--ga-line);padding-top:20px;max-width:520px;
  font-family:var(--ga-mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ga-muted);
}
.ga-product .ga-hero__meta b{
  display:block;margin-top:5px;color:var(--ga-text);
  font-family:var(--ga-display);font-size:1.4rem;font-weight:700;letter-spacing:.02em;
}

@media(max-width:900px){
  .ga-product .ga-hero{min-height:auto}
  .ga-product .ga-hero__inner{padding:44px 0 40px}
  .ga-product .ga-hero__media::after{
    background:linear-gradient(0deg,rgba(11,13,12,.96) 22%,rgba(11,13,12,.55) 100%);
  }
  .ga-product .ga-hero__meta{gap:26px}
}
@media(max-width:520px){
  .ga-product .ga-hero__meta b{font-size:1.15rem}
}/* End custom CSS */