/*
Theme Name: Hello Elementor Child
Theme URI: https://statustracker.mywebmockups.com/
Description: Child theme for Hello Elementor, used for the Long Rifles Inc. rebuild.
Author: Long Rifles Inc.
Author URI: https://www.longriflesinc.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
*/

:root {
  --navy-900: #07131f;
  --navy-800: #0e2233;
  --navy-700: #143049;
  --navy-600: #1b3e5e;
  --navy-500: #27537a;
  --steel-300: #c5cbd3;
  --steel-200: #e3e7ec;
  --ink-900: #0b0f14;
  --ink-700: #27313c;
  --ink-500: #5a6675;
  --paper: #f4f6f9;
  --paper-2: #eef1f5;
  --white: #ffffff;
  --gold: #f5b820;
  --gold-dark: #c8951a;
  --gold-light: #fdd670;
  --shadow-sm: 0 1px 3px rgba(7,19,31,.12);
  --shadow-md: 0 8px 24px rgba(7,19,31,.15);
  --shadow-lg: 0 18px 40px rgba(7,19,31,.25);
  --radius: 6px;
  --container: 1280px;
  --nav-h: 78px;
  --util-h: 40px;
  --ease: cubic-bezier(.2,.7,.3,1);
}

/* Horizontal-overflow guard: prevent stretched Elementor sections,
   wide images, or other rogue elements from forcing body-level horizontal
   scroll on narrow viewports. Body-only — doesn't break sticky positioning. */
html, body { overflow-x: hidden !important; max-width: 100% !important; }
body.woocommerce-cart, body.woocommerce-checkout { overflow-x: hidden !important; }
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wp-block-woocommerce-cart * { max-width: 100%; }

/* Override Hello Elementor parent theme's `.alignwide { margin-inline: -80px }`
   on narrow viewports. The -80px bleed pushes wide-aligned blocks off the
   left edge on mobile (most visible on the WC Cart block's totals labels). */
@media (max-width: 1024px) {
  body.lri-theme .alignwide { margin-inline: 0 !important; }
}

/* Constrain the WooCommerce Cart and Checkout blocks to the viewport at
   narrow widths so right-side prices/labels aren't clipped on phones. */
@media (max-width: 1024px) {
  body.lri-theme .wp-block-woocommerce-cart,
  body.lri-theme .wp-block-woocommerce-checkout {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
}


body.lri-theme {
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--ink-700);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

/* Neutralize Hello Elementor's pink link/button defaults */
body.lri-theme a { color: inherit; }
body.lri-theme a:hover { color: var(--gold); }
body.lri-theme button,
body.lri-theme [type=button],
body.lri-theme [type=submit] {
  border-color: transparent;
  color: inherit;
  background-color: transparent;
}
body.lri-theme .lri-btn-accent,
body.lri-theme .lri-btn-accent:hover { border-color: var(--gold); color: var(--navy-900); }
body.lri-theme h1, body.lri-theme h2, body.lri-theme h3, body.lri-theme h4 {
  margin: 0;
  font-family: 'Oswald', 'Barlow Condensed', Impact, sans-serif;
  font-weight: 700;
  letter-spacing: .5px;
  color: var(--navy-900);
}

.lri-container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- Buttons (header use) ---------- */
.lri-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  border: 2px solid transparent;
  border-radius: var(--radius);
  cursor: pointer;
  transition: all .25s var(--ease);
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
}
.lri-btn-sm { padding: 10px 18px; font-size: 12px; }
.lri-btn-accent { background: var(--gold); color: var(--navy-900); border-color: var(--gold); }
.lri-btn-accent:hover { background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-1px); box-shadow: var(--shadow-md); color: var(--navy-900); }

.lri-icon-btn {
  background: transparent;
  border: 0;
  padding: 8px;
  color: inherit;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.lri-icon-btn:hover { background: rgba(255,255,255,.08); color: var(--gold); }
.lri-icon-btn svg { width: 20px; height: 20px; fill: currentColor; }

/* ---------- Route C (Pro-widget util bar) overrides — Elementor e-con cascade ---------- */
.e-con.lri-container { margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }
.e-con.lri-util-bar     { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.lri-util-row     { justify-content: space-between; align-items: center; flex-wrap: nowrap; }
.e-con.lri-util-contact { justify-content: flex-end; align-items: center; flex-wrap: nowrap; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
/* Inline util-link items should not wrap even when the row gets squeezed */
.elementor-widget.lri-util-links .elementor-icon-list-items { flex-wrap: nowrap; white-space: nowrap; }
@media (max-width: 768px) {
  .e-con .elementor-widget.lri-util-links,
  .e-con .elementor-widget.lri-util-email,
  .e-con .elementor-widget.lri-util-social { display: none; }
  .e-con.lri-util-row     { justify-content: flex-end; flex-wrap: nowrap; }
  .e-con.lri-util-contact { justify-content: flex-end; flex-wrap: nowrap; flex-shrink: 0; }
  .e-con .elementor-widget.lri-util-phone { flex-shrink: 0; flex-grow: 0; }
  .elementor-widget.lri-util-phone .elementor-icon-list-items,
  .elementor-widget.lri-util-phone .elementor-icon-list-item,
  .elementor-widget.lri-util-phone .elementor-icon-list-text { flex-wrap: nowrap; white-space: nowrap; }
}

/* ---------- Utility Bar ---------- */
.lri-util-bar {
  background: var(--navy-900);
  color: rgba(255,255,255,.7);
  font-size: 13px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.lri-util-bar a { color: inherit; text-decoration: none; transition: color .2s var(--ease); }
.lri-util-bar a:hover { color: var(--gold); }
.lri-util-row { display: flex; justify-content: space-between; align-items: center; height: var(--util-h); gap: 16px; }
.lri-util-links, .lri-util-contact { display: flex; align-items: center; gap: 20px; }
.lri-util-links a { font-weight: 500; }
.lri-util-phone, .lri-util-email { display: inline-flex; align-items: center; gap: 6px; }
.lri-util-phone .lri-ic, .lri-util-email .lri-ic { width: 14px; height: 14px; fill: var(--gold); }
.lri-util-social { display: flex; gap: 4px; margin-left: 8px; }
.lri-util-social a {
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,.08);
  display: inline-flex; align-items: center; justify-content: center;
}
.lri-util-social svg { width: 14px; height: 14px; fill: rgba(255,255,255,.8); }
.lri-util-social a:hover { background: var(--gold); }
.lri-util-social a:hover svg { fill: var(--navy-900); }

/* ---------- Navigation (Route C — native widgets) ---------- */
/* Outer header container (replaces legacy <header class="lri-nav">) */
.e-con.lri-nav {
  position: sticky; top: 0; z-index: 100;
  background: var(--navy-800);
  color: #fff;
  box-shadow: 0 2px 0 rgba(0,0,0,.2);
  transition: box-shadow .3s var(--ease), background .3s var(--ease);
  --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0;
}
.e-con.lri-nav.scrolled { box-shadow: var(--shadow-md); background: rgba(14,34,51,.96); backdrop-filter: saturate(1.3) blur(8px); }
.e-con.lri-nav a { color: #fff; text-decoration: none; }

/* Inner row */
.e-con.lri-nav-row { min-height: var(--nav-h, 80px); flex-wrap: nowrap; }

/* Logo image widget */
.elementor-element.lri-nav-logo { flex-shrink: 0; }
.elementor-element.lri-nav-logo img {
  height: 40px !important; width: auto !important; max-width: none !important;
  transition: transform .2s var(--ease);
  mix-blend-mode: screen; filter: brightness(1.1) contrast(1.05);
}
.elementor-element.lri-nav-logo a:hover img { transform: scale(1.04); }

/* Nav menu (Pro nav-menu widget) */
.elementor-element.lri-nav-menu-wrap { flex-shrink: 1; min-width: 0; }
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; white-space: nowrap; }

.lri-nav-menu-wrap .elementor-nav-menu { gap: 30px; justify-content: center; }
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item {
  font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 15px;
  letter-spacing: 1.4px; text-transform: uppercase;
  color: #fff; position: relative; padding: 6px 0; background: transparent;
  transition: color .2s var(--ease);
}
/* Lock padding across all states so Pro's widget-nav-menu.min.css hover rule (`padding: 13px 20px`) doesn't shift the items vertically/horizontally on hover. */
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu .elementor-item,
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu .elementor-item:hover,
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu .elementor-item:focus,
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu .elementor-item.highlighted,
.lri-nav-menu-wrap .elementor-nav-menu--main .elementor-nav-menu .elementor-item.elementor-item-active { padding: 6px 0 !important; }
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item::after {
  content: ''; position: absolute; left: 0; bottom: 0;
  height: 2px; width: 0; background: var(--gold);
  transition: width .25s var(--ease);
}
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item:hover,
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item.elementor-item-active,
.lri-nav-menu-wrap .elementor-nav-menu .current-menu-item > .elementor-item {
  color: var(--gold); background: transparent;
}
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item:hover::after,
.lri-nav-menu-wrap .elementor-nav-menu .elementor-item.elementor-item-active::after,
.lri-nav-menu-wrap .elementor-nav-menu .current-menu-item > .elementor-item::after { width: 100%; }
.lri-nav-menu-wrap .elementor-menu-toggle { color: #fff; padding: 8px; }
.lri-nav-menu-wrap .elementor-menu-toggle:hover { color: var(--gold); }
/* Mobile dropdown drawer */
.lri-nav-menu-wrap .elementor-nav-menu--dropdown {
  background: var(--navy-900);
  box-shadow: var(--shadow-lg);
}
.lri-nav-menu-wrap .elementor-nav-menu--dropdown .elementor-item {
  padding: 14px 24px !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  letter-spacing: 1.2px;
}

/* Tools cluster */
.e-con.lri-nav-tools { flex: 0 0 auto !important; width: auto !important; }

/* Icon buttons (search / account / cart) */
.elementor-element.lri-icon-btn { display: inline-flex; }
.elementor-element.lri-icon-btn .elementor-icon-wrapper,
.e-con.lri-icon-btn { display: inline-flex; align-items: center; justify-content: center; }
.elementor-element.lri-icon-btn .elementor-icon,
.e-con.lri-icon-btn .elementor-icon {
  color: #fff !important;
  background: transparent;
  padding: 8px; border-radius: 6px;
  cursor: pointer;
  transition: background .2s var(--ease), color .2s var(--ease);
  font-size: 18px;
}
.elementor-element.lri-icon-btn .elementor-icon:hover,
.e-con.lri-icon-btn .elementor-icon:hover { background: rgba(255,255,255,.08); color: var(--gold) !important; }
#lriSearchBtn { cursor: pointer; }
/* Pro woocommerce-menu-cart widget — styled to match the icon-button row */
.elementor-element.lri-menu-cart { flex: 0 0 auto !important; width: auto !important; }
/* Hide the subtotal price text — we want an icon-only toggle */
.elementor-element.lri-menu-cart .elementor-menu-cart__toggle_button .elementor-button-text { display: none !important; }
.elementor-element.lri-menu-cart .elementor-menu-cart__toggle_button {
  background: transparent !important;
  padding: 8px !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 6px;
  box-shadow: none !important;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.elementor-element.lri-menu-cart .elementor-menu-cart__toggle_button:hover { background: rgba(255,255,255,.08) !important; color: var(--gold) !important; }
.elementor-element.lri-menu-cart .elementor-menu-cart__toggle_button .elementor-button-icon { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.elementor-element.lri-menu-cart .elementor-menu-cart__toggle_button svg { width: 18px; height: 18px; fill: currentColor; }
/* Bubble badge — gold on navy to match brand */
.elementor-element.lri-menu-cart .elementor-button-icon-qty {
  background: var(--gold) !important;
  color: var(--navy-900) !important;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  font-size: 10px;
  line-height: 16px;
  position: absolute;
  top: -4px;
  right: -6px;
}


.lri-cart-badge {
  position: absolute; top: 2px; right: 2px;
  background: var(--gold); color: var(--navy-900);
  font-size: 10px; font-weight: 700;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  transform: scale(0);
  transition: transform .2s var(--ease);
}
.lri-cart-badge.active { transform: scale(1); }

/* CTA button widget — inherits kit colors via __globals__; refine geometry only */
.elementor-element.lri-nav-cta { margin-left: 6px; flex-shrink: 0; }
.elementor-element.lri-nav-cta .elementor-button { white-space: nowrap; }

/* Search panel (toggled via JS adding .is-open) */
.e-con.lri-search-panel {
  display: none;
  border-top: 1px solid rgba(255,255,255,.08);
  background: var(--navy-900);
}
.e-con.lri-search-panel.is-open {
  display: flex;
  animation: lriSlideDown .25s var(--ease);
}
@keyframes lriSlideDown { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.e-con.lri-search-panel .lri-search-form { display: flex; gap: 10px; }
.e-con.lri-search-panel .lri-search-form input {
  flex: 1; padding: 14px 18px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.05);
  color: #fff; font-size: 15px; border-radius: var(--radius);
}
.e-con.lri-search-panel .lri-search-form input::placeholder { color: rgba(255,255,255,.5); }
.e-con.lri-search-panel .lri-search-form input:focus { outline: none; border-color: var(--gold); background: rgba(255,255,255,.08); }

/* Hide CTA at the squeeze breakpoint so it can't be clipped before the
   nav-menu collapses to a hamburger */
@media (max-width: 1024px) and (min-width: 768px) {
  .elementor-element.lri-nav-cta { display: none; }
  .lri-nav-menu-wrap .elementor-nav-menu { gap: 20px; }
}
@media (max-width: 767px) {
  .elementor-element.lri-nav-cta { display: none; }
  .lri-nav-menu-wrap .elementor-nav-menu--main { display: none; }
}
/* =============================================================
   Site-wide form + WooCommerce styling (LRI theme)
============================================================= */

/* ----- Inputs, selects, textareas ----- */
body.lri-theme input[type="text"],
body.lri-theme input[type="email"],
body.lri-theme input[type="url"],
body.lri-theme input[type="password"],
body.lri-theme input[type="search"],
body.lri-theme input[type="number"],
body.lri-theme input[type="tel"],
body.lri-theme input[type="date"],
body.lri-theme textarea,
body.lri-theme select {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 15px;
  color: var(--ink-900);
  background-color: #fff;
  border: 1px solid var(--steel-200);
  border-radius: var(--radius);
  padding: 11px 14px;
  line-height: 1.4;
  width: 100%;
  max-width: 100%;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
body.lri-theme textarea { min-height: 120px; resize: vertical; }
body.lri-theme input:focus,
body.lri-theme textarea:focus,
body.lri-theme select:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(245,184,32,.18);
}
body.lri-theme input::placeholder,
body.lri-theme textarea::placeholder { color: var(--ink-500); }

/* Native select arrow */
body.lri-theme select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2327313c'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 18px;
  padding-right: 38px;
}

/* Reset number input spinners look */
body.lri-theme input[type="number"] { text-align: center; }

/* Labels */
body.lri-theme label {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--navy-900);
  display: inline-block;
  margin-bottom: 6px;
}

/* ----- General buttons (theme-wide) ----- */
body.lri-theme .button,
body.lri-theme button[type="submit"],
body.lri-theme input[type="submit"],
body.lri-theme .wp-element-button,
body.lri-theme .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 13px 26px;
  line-height: 1;
  background-color: var(--gold);
  color: var(--navy-900);
  border: 2px solid var(--gold);
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  transition: all .2s var(--ease);
}
body.lri-theme .button:hover,
body.lri-theme button[type="submit"]:hover,
body.lri-theme input[type="submit"]:hover,
body.lri-theme .wp-element-button:hover,
body.lri-theme .wp-block-button__link:hover {
  background-color: var(--gold-light);
  border-color: var(--gold-light);
  color: var(--navy-900);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

/* ----- WooCommerce specifics ----- */
body.lri-theme .woocommerce a.button,
body.lri-theme .woocommerce button.button,
body.lri-theme .woocommerce input.button,
body.lri-theme .woocommerce #respond input#submit,
body.lri-theme .woocommerce-page a.button,
body.lri-theme .woocommerce-page button.button {
  background-color: var(--gold);
  color: var(--navy-900);
  border: 2px solid var(--gold);
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 13px 26px;
  border-radius: var(--radius);
  transition: all .2s var(--ease);
}
body.lri-theme .woocommerce a.button:hover,
body.lri-theme .woocommerce button.button:hover,
body.lri-theme .woocommerce input.button:hover,
body.lri-theme .woocommerce #respond input#submit:hover,
body.lri-theme .woocommerce a.button.alt,
body.lri-theme .woocommerce button.button.alt,
body.lri-theme .woocommerce .single_add_to_cart_button {
  background-color: var(--gold);
  color: var(--navy-900);
  border-color: var(--gold);
}
body.lri-theme .woocommerce a.button.alt:hover,
body.lri-theme .woocommerce button.button.alt:hover,
body.lri-theme .woocommerce .single_add_to_cart_button:hover,
body.lri-theme .woocommerce a.button:hover,
body.lri-theme .woocommerce button.button:hover,
body.lri-theme .woocommerce input.button:hover {
  background-color: var(--gold-light);
  border-color: var(--gold-light);
  color: var(--navy-900);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

/* Price */
body.lri-theme .woocommerce div.product p.price,
body.lri-theme .woocommerce div.product span.price,
body.lri-theme .woocommerce ul.products li.product .price {
  font-family: 'Oswald', sans-serif;
  color: var(--navy-900);
  font-weight: 700;
  font-size: 22px;
}
body.lri-theme .woocommerce div.product p.price ins,
body.lri-theme .woocommerce div.product span.price ins { text-decoration: none; }
body.lri-theme .woocommerce .price .amount { color: var(--navy-900); }

/* Product title */
body.lri-theme .woocommerce div.product .product_title {
  font-family: 'Oswald', sans-serif;
  color: var(--navy-900);
  font-size: 32px;
  letter-spacing: .5px;
  margin-bottom: 12px;
}

/* Variations table (Pattern/Shroud dropdowns) */
body.lri-theme .woocommerce div.product form.cart .variations { border: 0; margin-bottom: 18px; }
body.lri-theme .woocommerce div.product form.cart .variations th,
body.lri-theme .woocommerce div.product form.cart .variations td {
  padding: 8px 0;
  vertical-align: middle;
}
body.lri-theme .woocommerce div.product form.cart .variations label {
  margin-bottom: 0;
}
body.lri-theme .woocommerce div.product form.cart .reset_variations {
  display: inline-block;
  margin-left: 10px;
  font-size: 12px;
  color: var(--ink-500);
  text-decoration: underline;
}
body.lri-theme .woocommerce div.product form.cart .reset_variations:hover { color: var(--gold); }

/* Quantity input */
body.lri-theme .woocommerce .quantity .qty {
  width: 72px;
  text-align: center;
  padding: 12px 8px;
}

/* Add-to-cart row layout */
body.lri-theme .woocommerce div.product form.cart { margin-top: 16px; }
body.lri-theme .woocommerce div.product form.cart .quantity { margin-right: 8px; }

/* =============================================================
   Cart / Checkout block (modern WC blocks) — quantity selector
   and remove-link polish. Targets .wc-block-components-quantity-selector
   so the +/- and number sit in a single bordered box, with breathing
   room before the trash/remove button. Default WC rules are scoped to
   table markup; this works for the responsive (div-based) layout too.
   ============================================================= */
body.lri-theme .wc-block-components-quantity-selector {
  display: inline-flex !important;
  align-items: stretch;
  width: 140px;
  border: 1px solid var(--steel-200, #cbd5e1);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  position: relative;
}
body.lri-theme .wc-block-components-quantity-selector__input {
  flex: 1 1 auto;
  min-width: 30px;
  width: 100%;
  text-align: center;
  border: 0 !important;
  background: transparent;
  padding: 6px 4px;
  font-size: 14px;
  color: var(--ink-700, #334155);
  appearance: textfield;
  -moz-appearance: textfield;
  order: 2;
}
body.lri-theme .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
body.lri-theme .wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
body.lri-theme .wc-block-components-quantity-selector__button {
  flex: 0 0 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--ink-700, #334155);
  font-size: 16px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  opacity: 0.85;
  transition: background .15s ease, opacity .15s ease;
}
body.lri-theme .wc-block-components-quantity-selector__button:hover,
body.lri-theme .wc-block-components-quantity-selector__button:focus {
  background: var(--paper-2, #f1f5f9);
  opacity: 1;
}
body.lri-theme .wc-block-components-quantity-selector__button--minus {
  order: 1;
  border-right: 1px solid var(--steel-200, #cbd5e1);
}
body.lri-theme .wc-block-components-quantity-selector__button--plus {
  order: 3;
  border-left: 1px solid var(--steel-200, #cbd5e1);
}

body.lri-theme .wc-block-cart-item__quantity {
  display: flex !important;
  align-items: center;
  gap: 16px !important;
}
body.lri-theme .wc-block-cart-item__remove-link {
  width: 28px;
  height: 28px;
  padding: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-500, #64748b);
  transition: color .15s ease;
}
body.lri-theme .wc-block-cart-item__remove-link:hover {
  color: var(--ink-900, #0f172a);
}

/* Stock status, meta */
body.lri-theme .woocommerce div.product .stock { color: #2f9e4f; font-weight: 600; }
body.lri-theme .woocommerce div.product .product_meta { font-size: 13px; color: var(--ink-500); border-top: 1px solid var(--steel-200); margin-top: 24px; padding-top: 16px; }
body.lri-theme .woocommerce div.product .product_meta a { color: var(--ink-700); }
body.lri-theme .woocommerce div.product .product_meta a:hover { color: var(--gold); }

/* Tabs */
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0 0 0 0;
  border-bottom: 1px solid var(--steel-200);
  margin-bottom: 20px;
}
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none;
  border: 0;
  border-radius: 0;
  margin: 0 24px 0 0;
  padding: 0;
}
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ink-500);
  padding: 12px 0;
  display: inline-block;
  border-bottom: 2px solid transparent;
}
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
body.lri-theme .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--navy-900);
  border-bottom-color: var(--gold);
}
body.lri-theme .woocommerce div.product .woocommerce-Tabs-panel h2 {
  font-family: 'Oswald', sans-serif;
  color: var(--navy-900);
  font-size: 20px;
  margin-top: 0;
}

/* Breadcrumbs + notices */
body.lri-theme .woocommerce-breadcrumb {
  font-size: 13px;
  color: var(--ink-500);
  margin-bottom: 20px;
}
body.lri-theme .woocommerce-breadcrumb a { color: var(--ink-700); }
body.lri-theme .woocommerce-breadcrumb a:hover { color: var(--gold); }
body.lri-theme .woocommerce-message,
body.lri-theme .woocommerce-info,
body.lri-theme .woocommerce-error {
  background: #fff;
  border-top: 3px solid var(--gold);
  color: var(--ink-700);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 14px 18px;
}
body.lri-theme .woocommerce-error { border-top-color: var(--danger, #d94848); }
body.lri-theme .woocommerce-message .button,
body.lri-theme .woocommerce-info .button { margin-left: 12px; }

/* Related products headings */
body.lri-theme .woocommerce .related > h2,
body.lri-theme .woocommerce .upsells > h2 {
  font-family: 'Oswald', sans-serif;
  color: var(--navy-900);
  font-size: 24px;
  letter-spacing: .5px;
  border-bottom: 2px solid var(--gold);
  display: inline-block;
  padding-bottom: 6px;
  margin-bottom: 24px;
}

/* ----- Product images: 1:1 frame, cover, overflow hidden ----- */

/* Single product main gallery image */
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image,
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .flex-active-slide,
body.lri-theme .woocommerce div.product div.images .flex-viewport .woocommerce-product-gallery__image {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--paper-2);
  border-radius: var(--radius);
}
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image > a,
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image {
  display: block;
}
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image img,
body.lri-theme .woocommerce div.product div.images img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Gallery thumbnails */
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs li {
  list-style: none;
}
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
  opacity: .6;
  transition: opacity .2s var(--ease);
}
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs img:hover,
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; }

/* Shop / archive product listings */
body.lri-theme .woocommerce ul.products li.product a img,
body.lri-theme .woocommerce-page ul.products li.product a img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  background: var(--paper-2);
}

/* Card-style product tile */
body.lri-theme .woocommerce ul.products li.product {
  background: #fff;
  padding: 12px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  transition: box-shadow .2s var(--ease), transform .2s var(--ease);
}
body.lri-theme .woocommerce ul.products li.product:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
body.lri-theme .woocommerce ul.products li.product h2,
body.lri-theme .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Oswald', sans-serif;
  font-size: 15px;
  color: var(--navy-900);
  font-weight: 600;
  letter-spacing: .3px;
  min-height: 2.4em;
}

/* Onsale badge */
body.lri-theme .woocommerce span.onsale {
  background: var(--gold);
  color: var(--navy-900);
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 20px;
  min-width: 0;
  min-height: 0;
  padding: 4px 10px;
  line-height: 1.3;
  top: 10px;
  left: 10px;
  right: auto;
}

/* Cart / checkout table polish */
body.lri-theme .woocommerce-cart table.cart th,
body.lri-theme .woocommerce-cart table.cart td,
body.lri-theme .woocommerce-checkout .shop_table th,
body.lri-theme .woocommerce-checkout .shop_table td {
  border-color: var(--steel-200);
}
body.lri-theme .woocommerce-cart table.cart img { width: 64px; aspect-ratio: 1/1; object-fit: cover; border-radius: 4px; }
/* =============================================================
   Overrides — fight WooCommerce Blocks / theme.json defaults
============================================================= */

/* Force gold on the add-to-cart button regardless of block/theme.json */
body.lri-theme .woocommerce .single_add_to_cart_button,
body.lri-theme .woocommerce button.alt,
body.lri-theme .woocommerce a.button.alt,
body.lri-theme .woocommerce button.button.alt,
body.lri-theme .woocommerce-page .single_add_to_cart_button,
body.lri-theme .woocommerce-page button.alt {
  background-color: var(--gold) !important;
  background: var(--gold) !important;
  color: var(--navy-900) !important;
  border: 2px solid var(--gold) !important;
}
body.lri-theme .woocommerce .single_add_to_cart_button:hover,
body.lri-theme .woocommerce button.alt:hover,
body.lri-theme .woocommerce a.button.alt:hover,
body.lri-theme .woocommerce button.button.alt:hover {
  background-color: var(--gold-light) !important;
  background: var(--gold-light) !important;
  border-color: var(--gold-light) !important;
  color: var(--navy-900) !important;
}

/* =============================================================
   Product gallery 1:1 frame — against flexslider + WC JS inline widths
============================================================= */
body.lri-theme .woocommerce div.product div.images { max-width: 640px; }
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery,
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
body.lri-theme .woocommerce div.product div.images .flex-viewport {
  width: 100% !important;
}
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image,
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
  position: relative !important;
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  height: auto !important;
  overflow: hidden !important;
  background: var(--paper-2) !important;
  border-radius: var(--radius);
  display: block;
}
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image > a {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image img,
body.lri-theme .woocommerce div.product div.images .woocommerce-product-gallery__image a img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

/* Flex slider viewport can impose its own height — let aspect-ratio drive it */
body.lri-theme .woocommerce div.product div.images .flex-viewport {
  aspect-ratio: 1 / 1;
  height: auto !important;
}

/* Thumbnails also 1:1 */
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs li {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 4px;
}
body.lri-theme .woocommerce div.product div.images .flex-control-thumbs li img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
/* =============================================================
   Page content breathing room below sticky header
============================================================= */
body.lri-theme main#content,
body.lri-theme .site-main,
body.lri-theme.woocommerce main,
body.lri-theme.woocommerce-page main {
  padding-top: 32px;
  padding-bottom: 64px;
}

/* Tighter breadcrumb spacing within its own block */
body.lri-theme .woocommerce-breadcrumb {
  margin: 0 0 24px;
  font-size: 13px;
  color: var(--ink-500);
  letter-spacing: .3px;
}
body.lri-theme .woocommerce-breadcrumb a { color: var(--ink-700); }
body.lri-theme .woocommerce-breadcrumb a:hover { color: var(--gold); }
/* =============================================================
   My Account layout on custom pages (e.g. /order-status/)
============================================================= */
body.lri-theme .woocommerce-MyAccount-navigation-wrap {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 32px;
    align-items: flex-start;
}
body.lri-theme .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--steel-200);
    border-radius: var(--radius);
    background: #fff;
    overflow: hidden;
}
body.lri-theme .woocommerce-MyAccount-navigation li {
    margin: 0;
    border-bottom: 1px solid var(--steel-200);
}
body.lri-theme .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.lri-theme .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 12px 16px;
    font-family: 'Oswald', sans-serif;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--ink-700);
    text-decoration: none;
    transition: background .15s var(--ease), color .15s var(--ease);
}
body.lri-theme .woocommerce-MyAccount-navigation li a:hover {
    background: var(--paper-2);
    color: var(--navy-900);
}
body.lri-theme .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--navy-900);
    color: #fff;
}
@media (max-width: 768px) {
    body.lri-theme .woocommerce-MyAccount-navigation-wrap {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}
/* =============================================================
   WC Blocks checkbox — restore inline-flex on the label.
   Our body.lri-theme label{display:inline-block} overrides
   WC Blocks' label{display:inline-flex}, which shifts the
   position:absolute SVG checkmark away from the checkbox square.
============================================================= */
body.lri-theme .wc-block-components-checkbox label {
  display: inline-flex !important;
  position: relative !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 0 !important;
  font-family: inherit !important;
  font-weight: 400 !important;
  font-size: var(--wp--preset--font-size--small, 14px) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: inherit !important;
  cursor: pointer;
}