/* =====================================================================
   FLAGMAN DESIGN SYSTEM
   Source of truth: "Flagman Store (standalone).html"
   Loaded by the Flagman Shop Tools plugin (wp-content/novamira-sandbox/).
   Edit this file rather than adding one-off CSS elsewhere.
   ===================================================================== */
:root{
  --fg-black:#000000;
  --fg-graphite:#333333;
  --fg-mute:#6B6B6B;
  --bg:#ffffff;
  --bg-soft:#F5F5F5;
  --bg-warm:#EEEBE7;
  --line:#E6E6E6;
  --silver:#BFBFBF;
  --silver-soft:#D9D9D9;
  --charcoal:#1A1A1A;
  --radius-sm:10px;
  --radius:18px;
  --radius-lg:28px;
  --radius-xl:36px;
  --shadow-soft:0 1px 2px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.04);
  --shadow-card:0 1px 1px rgba(0,0,0,0.03), 0 12px 32px rgba(0,0,0,0.06);
  --font-display:'Questrial','Space Grotesk',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --container:1440px;
  --gutter:28px;
}
/* ===== Flagman — design system additions (Contact form + Shop mega menu) ===== */

/* ---------- Contact Form 7, styled to the design ---------- */
form.flagman-form{display:flex;flex-direction:column;gap:14px}
.flagman-form .fm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
/* CF7 auto-wraps content in <p>, which would otherwise be the only grid item */
.flagman-form .fm-row > p{display:contents}
/* CF7 also injects a <br> between fields, which would eat a grid cell */
.flagman-form .fm-row br{display:none}
.flagman-form form > p{margin:0}
.flagman-form .fm-upload > p{display:contents}
.flagman-form .fm-field{display:block;width:100%}
.flagman-form .fm-label{display:block;font-size:12px;font-weight:500;color:var(--fg-mute);margin:0 0 6px}
form.flagman-form .wpcf7-form-control-wrap{display:block;width:100%}
.flagman-form input[type=text],
.flagman-form input[type=email],
.flagman-form input[type=tel],
.flagman-form select,
.flagman-form textarea{
  width:100%;padding:13px 16px;border-radius:12px;border:1px solid var(--line);
  font-family:inherit;font-size:14px;background:#fff;color:var(--fg-black);
  outline:none;box-shadow:none;transition:border-color .15s ease;-webkit-appearance:none;appearance:none;
}
.flagman-form select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;
}
.flagman-form textarea{min-height:124px;resize:vertical}
.flagman-form input:focus,.flagman-form select:focus,.flagman-form textarea:focus{border-color:var(--fg-black)}
.flagman-form ::placeholder{color:var(--silver)}

/* dashed upload zone */
.flagman-form .fm-upload{
  display:block;border:1.5px dashed var(--silver);border-radius:14px;
  padding:24px 14px;text-align:center;cursor:pointer;transition:all .15s ease;background:#fff;
}
.flagman-form .fm-upload:hover{border-color:var(--fg-black);background:var(--bg-soft)}
.flagman-form .fm-upload-icon{display:block;font-size:20px;line-height:1;color:var(--fg-black)}
.flagman-form .fm-upload-title{display:block;font-size:13px;font-weight:500;margin-top:6px;color:var(--fg-black)}
.flagman-form .fm-upload-hint{display:block;font-size:12px;color:var(--fg-mute);margin-top:2px}
.flagman-form .fm-upload input[type=file]{
  display:block;margin:12px auto 0;font-size:12px;color:var(--fg-mute);max-width:260px
}

/* submit */
.flagman-form .fm-actions{display:flex;gap:10px;flex-wrap:wrap}
.flagman-form input[type=submit],.flagman-form .fm-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;border:1px solid transparent;
  background:var(--fg-black);color:#fff;font-family:inherit;font-size:14px;font-weight:500;
  cursor:pointer;transition:transform .15s ease,background .15s ease;-webkit-appearance:none;appearance:none;
}
.flagman-form input[type=submit]:hover{transform:translateY(-1px)}
.flagman-form .wpcf7-spinner{margin:0 0 0 8px}
.flagman-form .wpcf7-not-valid-tip{font-size:12px;color:#c0392b;margin-top:5px}
.flagman-form .wpcf7-response-output{
  border-radius:12px;border:1px solid var(--line);padding:12px 16px;font-size:13px;margin:6px 0 0
}
@media (max-width:767px){ .flagman-form .fm-row{grid-template-columns:1fr} }

/* ---------- Shop mega menu ---------- */
.flagman-headerbar{position:relative}
/* Elementor's own .e-con rules set position, so these need to win on specificity */
.flagman-headerbar .flagman-mega.e-con,
.flagman-headerbar .flagman-mega{
  position:absolute !important;left:0;right:0;top:100%;z-index:300;
  background:#fff;border-bottom:1px solid var(--line);
  box-shadow:0 16px 32px rgba(0,0,0,.06);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s ease,transform .16s ease,visibility 0s linear .28s;
}
/* opening on the Shop item, and staying open once the pointer is inside the panel */
.flagman-headerbar:has(li.menu-item-2139:hover) .flagman-mega.e-con,
.flagman-headerbar:has(li.menu-item-2139:hover) .flagman-mega,
.flagman-headerbar .flagman-mega.e-con:hover,
.flagman-headerbar .flagman-mega:hover{
  opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s
}
/* browsers without :has() never open it, so keep it out of the flow regardless */
@supports not selector(:has(*)){
  .flagman-headerbar .flagman-mega{display:none !important}
}
/* chevron on Shop, as in the design */
.flagman-headerbar li.menu-item-2139 > a::after{
  content:"";display:inline-block;width:7px;height:7px;margin-left:7px;vertical-align:1px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);transform-origin:center;opacity:.65
}
.flagman-mega-cat{border:1px solid transparent;border-radius:14px;transition:all .15s ease}
.flagman-mega-cat:hover{border-color:var(--line);background:var(--bg-soft)}
/* touch devices and tablet/mobile use the hamburger instead */
@media (max-width:1024px){ .flagman-mega{display:none!important} }

/* ===== Shop archive: sidebar filters + product grid ===== */
.fm-filters{position:sticky;top:100px;align-self:start}
.fm-filters .widget{margin:0}
.fm-filters ul{list-style:none;margin:0;padding:0}
.fm-filters li{margin:0 0 8px;font-size:13.5px;color:var(--fg-graphite);display:flex;
  justify-content:space-between;align-items:center;gap:8px}
.fm-filters li a{color:var(--fg-graphite);text-decoration:none;flex:1}
.fm-filters li a:hover{color:var(--fg-black)}
.fm-filters li .count{color:var(--fg-mute);font-size:12px}
.fm-filters .chosen a,.fm-filters li.chosen > a{color:var(--fg-black);font-weight:500}
.fm-filters .widget_layered_nav_filters ul{display:flex;flex-wrap:wrap;gap:6px}
.fm-filters .widget_layered_nav_filters li{margin:0}
.fm-filters .widget_layered_nav_filters li a{
  display:inline-flex;align-items:center;gap:6px;background:var(--fg-black);color:#fff;
  border-radius:999px;padding:5px 12px;font-size:12px;text-decoration:none}
.fm-filters .woocommerce-product-search{display:flex;gap:8px;flex-wrap:wrap}
.fm-filters .woocommerce-product-search input[type=search]{
  width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);
  font-family:inherit;font-size:13.5px;outline:none}
.fm-filters .woocommerce-product-search input[type=search]:focus{border-color:var(--fg-black)}
.fm-filters .woocommerce-product-search button{
  padding:10px 18px;border-radius:999px;border:1px solid var(--fg-black);
  background:var(--fg-black);color:#fff;font-size:12.5px;cursor:pointer}
.fm-filters .price_slider_wrapper .ui-slider{
  background:var(--line);height:4px;border-radius:999px;position:relative;margin:14px 0}
.fm-filters .ui-slider .ui-slider-range{background:var(--fg-black);height:4px;border-radius:999px;position:absolute}
.fm-filters .ui-slider .ui-slider-handle{
  background:var(--fg-black);width:14px;height:14px;border-radius:999px;position:absolute;top:-5px;cursor:grab}
.fm-filters .price_slider_amount{display:flex;justify-content:space-between;align-items:center;
  gap:8px;flex-wrap:wrap;font-size:12px;color:var(--fg-mute)}
.fm-filters .price_slider_amount .button{
  padding:8px 16px;border-radius:999px;border:1px solid var(--fg-black);background:#fff;
  color:var(--fg-black);font-size:12.5px;cursor:pointer;order:2}
.fm-filters .price_label{order:1}

/* product loop grid, 3 across as in the design */
.fm-results ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  list-style:none;margin:0;padding:0}
.fm-results ul.products::before,.fm-results ul.products::after{display:none}
.fm-results ul.products li.product{width:auto!important;margin:0!important;float:none!important;
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;
  display:flex;flex-direction:column;gap:8px}
.fm-results ul.products li.product img{border-radius:12px;margin:0 0 6px}
.fm-results ul.products li.product .woocommerce-loop-product__title{
  font-family:Inter,sans-serif!important;font-size:14px!important;line-height:1.35;
  color:var(--fg-black);padding:0;margin:0}
.fm-results ul.products li.product .price{font-size:14px;color:var(--fg-black)}
.fm-results ul.products li.product .button{
  margin-top:auto;border-radius:999px;background:var(--fg-black);color:#fff;
  padding:11px 18px;font-size:12.5px;text-align:center}
.fm-results .woocommerce-ordering select,.fm-results select.orderby{
  padding:11px 14px;border-radius:12px;border:1px solid var(--line);font-size:13.5px;background:#fff}
.fm-empty{padding:40px 0;color:var(--fg-mute)}
.fm-empty .fm-clear{color:var(--fg-black);text-decoration:underline}
.fm-breadcrumb{font-size:12.5px;color:var(--fg-mute)}
.fm-breadcrumb a{color:var(--fg-mute);text-decoration:none}
.fm-count{font-size:13px;color:var(--fg-mute);white-space:nowrap}
@media (max-width:1280px){ .fm-results ul.products{grid-template-columns:repeat(3,1fr)} }
@media (max-width:1024px){
  .fm-results ul.products{grid-template-columns:repeat(2,1fr)}
  .fm-filters{position:static}
}
@media (max-width:640px){ .fm-results ul.products{grid-template-columns:1fr} }

/* ===== Single product ===== */
/* design: an 80px thumbnail rail beside the main image */
.fm-pdp-gallery .woocommerce-product-gallery{
  display:grid;grid-template-columns:80px 1fr;gap:14px;align-items:start;max-width:100%}
.fm-pdp-gallery .flex-viewport{
  order:2;border-radius:28px;overflow:hidden;background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.04)}
.fm-pdp-gallery .woocommerce-product-gallery__wrapper{margin:0}
.fm-pdp-gallery .woocommerce-product-gallery__image{width:100%}
.fm-pdp-gallery .woocommerce-product-gallery img{
  width:100%!important;height:auto!important;max-width:100%;display:block}
.fm-pdp-gallery ol.flex-control-thumbs{
  order:1;display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.fm-pdp-gallery ol.flex-control-thumbs li{width:80px;margin:0}
.fm-pdp-gallery ol.flex-control-thumbs img{
  border-radius:12px;border:1px solid var(--line);cursor:pointer;opacity:.75;padding:4px;background:#fff}
.fm-pdp-gallery ol.flex-control-thumbs img.flex-active,
.fm-pdp-gallery ol.flex-control-thumbs img:hover{opacity:1;border-color:var(--fg-black)}
.fm-pdp-gallery .woocommerce-product-gallery__trigger{display:none}

.fm-pdp-meta{font-size:12.5px;color:var(--fg-mute);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fm-pdp-meta a{color:var(--fg-mute);text-decoration:none}
.fm-pdp-info .price{font-family:Questrial,sans-serif;font-size:30px;color:var(--fg-black)}
.fm-pdp-info form.cart{display:flex;flex-direction:column;gap:14px;margin:0}
.fm-pdp-info .variations{width:100%;border:0}
.fm-pdp-info .variations td,.fm-pdp-info .variations th{padding:6px 0;border:0;display:block;text-align:left}
.fm-pdp-info .variations label{font-size:12px;font-weight:500;color:var(--fg-mute)}
.fm-pdp-info .variations select{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);
  font-family:inherit;font-size:13.5px;background:#fff}
.fm-pdp-info .quantity input{
  padding:11px 10px;border-radius:999px;border:1px solid var(--line);width:84px;text-align:center}
.fm-pdp-info .single_add_to_cart_button{
  border-radius:999px;background:var(--fg-black);color:#fff;padding:15px 30px;
  font-size:14px;font-weight:500;border:0;cursor:pointer;width:100%;justify-content:center}
.fm-pdp-info .single_add_to_cart_button:hover{opacity:.9}
.fm-specs table,.fm-specs .shop_attributes{width:100%;border-collapse:collapse}
.fm-specs th,.fm-specs td{
  text-align:left;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.fm-specs th{color:var(--fg-mute);font-weight:400}
.fm-specs td p{margin:0}
.fm-glance-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;
  border-bottom:1px dashed var(--silver-soft,#D9D9D9);font-size:13.5px}
.fm-glance-row span{color:var(--fg-mute)}
@media (max-width:900px){
  .fm-pdp-gallery .woocommerce-product-gallery{grid-template-columns:1fr}
  .fm-pdp-gallery ol.flex-control-thumbs{flex-direction:row;flex-wrap:wrap}
}

/* "from" prefix on catalog cards, as in the design */
.fm-from{font-size:12px;color:var(--fg-mute);margin-right:4px}
.fm-results ul.products li.product .price del{opacity:.5;font-size:12.5px}
.fm-short-desc{font-size:14.5px;color:var(--fg-graphite);line-height:1.7}
.fm-short-desc p{margin:0 0 8px}
.fm-short-desc ul{margin:0;padding-left:18px}

/* =====================================================================
   FLAGMAN — WooCommerce skin
   Buttons, cart, checkout, account, loop cards, forms.
   Tokens come from the approved design (Flagman Store standalone).
   ===================================================================== */

/* ---------- Button system: one system, everywhere ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .woocommerce-message a.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce input[type=submit],
.wc-block-components-button,
.woocommerce .button.alt,
.woocommerce #place_order {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 22px;border-radius:999px;border:1px solid transparent;
  background:var(--fg-black);color:#fff;
  font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:1.2;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
  text-transform:none;letter-spacing:0;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce .button.alt:hover,
.woocommerce #place_order:hover{background:#1A1A1A;color:#fff;transform:translateY(-1px)}
/* secondary / outline */
.woocommerce a.button.wc-backward,
.woocommerce .return-to-shop .button,
.woocommerce button[name="update_cart"],
.woocommerce .woocommerce-message .button{
  background:#fff;color:var(--fg-black);border-color:var(--fg-black)
}
.woocommerce button[name="update_cart"]:disabled{opacity:.4;border-color:var(--line);color:var(--fg-mute)}
/* kill the theme's purple/coloured CTA */
.woocommerce .checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  background:var(--fg-black)!important;color:#fff!important;border-radius:999px!important;
  font-size:15px;padding:17px 28px;width:100%;text-align:center;display:flex
}
.woocommerce .checkout-button:hover{background:#1A1A1A!important}

/* ---------- Forms ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce table.cart td.actions .coupon input,
.woocommerce input[type=text],.woocommerce input[type=email],
.woocommerce input[type=tel],.woocommerce input[type=password],
.woocommerce input[type=number],.woocommerce textarea,.woocommerce select{
  width:100%;padding:13px 16px;border-radius:12px;border:1px solid var(--line);
  font-family:Inter,sans-serif;font-size:14px;background:#fff;color:var(--fg-black);
  outline:none;box-shadow:none;height:auto;line-height:1.4
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce input:focus,.woocommerce textarea:focus,.woocommerce select:focus{border-color:var(--fg-black)}
.woocommerce form .form-row label{font-size:12px;font-weight:500;color:var(--fg-mute);margin:0 0 6px}
.woocommerce .select2-container--default .select2-selection--single{height:auto;padding:10px 16px}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{top:12px;right:10px}
.woocommerce form .form-row abbr.required{color:#c0392b;text-decoration:none}

/* ---------- Product loop cards (shop, category, related) ---------- */
ul.products li.product{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;
  display:flex;flex-direction:column;gap:8px;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.04);
  transition:transform .22s ease,box-shadow .22s ease;text-align:left
}
ul.products li.product:hover{transform:translateY(-3px);box-shadow:0 1px 1px rgba(0,0,0,.03),0 18px 40px rgba(0,0,0,.09)}
ul.products li.product a img{border-radius:12px;margin:0 0 6px;aspect-ratio:1/1;object-fit:contain;background:#fff;width:100%}
ul.products li.product .woocommerce-loop-product__title{
  font-family:Inter,sans-serif!important;font-size:14px!important;font-weight:500;
  line-height:1.35;color:var(--fg-black);padding:0;margin:0
}
ul.products li.product .price{
  font-family:Questrial,sans-serif;font-size:15px;color:var(--fg-black);margin:0
}
ul.products li.product .price del{opacity:.5;font-size:12.5px}
ul.products li.product .star-rating{font-size:12px;margin:0}
ul.products li.product .button,
ul.products li.product .added_to_cart{margin-top:auto;width:100%;font-size:12.5px;padding:11px 18px}
ul.products li.product .onsale{
  background:var(--fg-black);color:#fff;border-radius:999px;padding:4px 10px;
  font-size:10.5px;font-weight:600;letter-spacing:.04em;min-height:0;min-width:0;
  line-height:1.4;top:14px;left:14px;margin:0;position:absolute
}

/* ---------- Cart ---------- */
.woocommerce-cart .woocommerce{max-width:1440px;margin:0 auto;padding:0 28px}
.woocommerce table.shop_table{
  border:1px solid var(--line);border-radius:18px;border-collapse:separate;
  border-spacing:0;overflow:hidden;background:#fff
}
.woocommerce table.shop_table th{
  background:var(--bg-soft);font-family:Inter,sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;color:var(--fg-mute);padding:14px 16px;border:0
}
.woocommerce table.shop_table td{padding:16px;border-top:1px solid var(--line);vertical-align:middle}
.woocommerce table.cart img{width:64px;border-radius:10px;border:1px solid var(--line)}
.woocommerce table.cart .product-name a{color:var(--fg-black);text-decoration:none;font-weight:500}
.woocommerce table.cart .product-name a:hover{text-decoration:underline}
.woocommerce table.cart .variation{font-size:12.5px;color:var(--fg-mute);margin:4px 0 0}
.woocommerce table.cart .variation dt,.woocommerce table.cart .variation dd{display:inline;margin:0}
.woocommerce a.remove{
  color:var(--fg-mute)!important;font-weight:400;border-radius:999px;
  width:24px;height:24px;line-height:22px;border:1px solid var(--line)
}
.woocommerce a.remove:hover{background:var(--fg-black)!important;color:#fff!important;border-color:var(--fg-black)}
.woocommerce .quantity .qty{
  width:74px;padding:10px;border-radius:999px;border:1px solid var(--line);text-align:center
}
.woocommerce table.cart td.actions{background:var(--bg-soft)}
.woocommerce table.cart td.actions .coupon{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.woocommerce table.cart td.actions .coupon input{width:auto;min-width:200px}
.woocommerce .cart-collaterals .cart_totals{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.04)
}
.woocommerce .cart_totals h2{font-family:Questrial,sans-serif;font-size:22px;margin:0 0 14px;letter-spacing:-.02em}
.woocommerce .cart_totals table.shop_table{border:0;border-radius:0}
.woocommerce .cart_totals table.shop_table th{background:transparent;text-transform:none;font-size:13.5px;padding:10px 0}
.woocommerce .cart_totals table.shop_table td{border-top:1px solid var(--line);padding:10px 0;text-align:right}
.woocommerce .cart_totals .order-total .amount{font-family:Questrial,sans-serif;font-size:22px;color:var(--fg-black)}
@media (min-width:1025px){
  .woocommerce-cart .cart-collaterals{position:sticky;top:110px}
}

/* ---------- Checkout ---------- */
.woocommerce-checkout .woocommerce{max-width:1440px;margin:0 auto;padding:0 28px}
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{
  font-family:Questrial,sans-serif;font-size:22px;letter-spacing:-.02em;
  color:var(--fg-black);margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--line)
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{float:none;width:100%}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start}
.woocommerce-checkout form.checkout #customer_details{grid-column:1}
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review{grid-column:2}
.woocommerce-checkout #order_review{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.04)
}
@media (min-width:1025px){ .woocommerce-checkout #order_review{position:sticky;top:110px} }
.woocommerce-checkout .form-row-first,.woocommerce-checkout .form-row-last{width:48.5%}
.woocommerce-checkout #payment{background:transparent;border-radius:0}
.woocommerce-checkout #payment ul.payment_methods{
  border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;margin:0 0 14px
}
.woocommerce-checkout #payment div.payment_box{
  background:var(--bg-soft);border-radius:12px;font-size:13px;color:var(--fg-graphite)
}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--bg-soft)}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{font-size:13px;color:var(--fg-graphite)}
.woocommerce-checkout #place_order{width:100%;font-size:15px;padding:17px 28px}
.woocommerce-checkout table.woocommerce-checkout-review-order-table{border:0}
.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td{padding:10px 0;border-top:1px solid var(--line)}
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th{background:transparent;border:0}
.woocommerce-checkout .order-total .amount{font-family:Questrial,sans-serif;font-size:22px}

/* notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews{
  border-radius:12px;border:1px solid var(--line);border-top:1px solid var(--line);
  background:var(--bg-soft);color:var(--fg-graphite);font-size:13.5px;padding:14px 18px
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{color:var(--fg-black)}
.woocommerce-error{background:#fdf2f2;border-color:#f3c9c9;color:#8a2020}

/* ---------- My Account ---------- */
.woocommerce-account .woocommerce{max-width:1440px;margin:0 auto;padding:0 28px}
.woocommerce-account .woocommerce-MyAccount-navigation{width:24%}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--line)}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{border-bottom:0}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:13px 18px;color:var(--fg-graphite);text-decoration:none;font-size:13.5px
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--bg-soft);color:var(--fg-black)}
.woocommerce-account .woocommerce-MyAccount-content{width:72%}
.woocommerce-account .u-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.woocommerce-account .col-1,.woocommerce-account .col-2{width:100%;float:none}
.woocommerce-account form.login,.woocommerce-account form.register{
  border:1px solid var(--line);border-radius:18px;padding:26px;background:#fff
}

/* ---------- Mobile sticky product action bar ---------- */
.fm-mobile-bar{display:none}
@media (max-width:880px){
  .fm-mobile-bar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:400;gap:10px;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(12px);
    border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(0,0,0,.08)
  }
  .fm-mobile-bar .fm-mb-price{display:flex;flex-direction:column;justify-content:center;min-width:92px}
  .fm-mobile-bar .fm-mb-price span{font-size:10.5px;color:var(--fg-mute);line-height:1.2}
  .fm-mobile-bar .fm-mb-price strong{font-family:Questrial,sans-serif;font-size:17px;font-weight:400;color:#000}
  .fm-mobile-bar a,.fm-mobile-bar button{
    flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;
    border-radius:999px;padding:13px 16px;font-size:13.5px;font-weight:500;
    border:1px solid var(--fg-black);background:var(--fg-black);color:#fff;text-decoration:none;cursor:pointer
  }
  .fm-mobile-bar .fm-mb-wa{background:#fff;color:var(--fg-black);flex:0 0 auto;padding:13px 18px}
  body.single-product{padding-bottom:78px}
  .flagman-chat-float,.flagman-mega{display:none!important}
}

/* ---------- Responsive, following the design's own breakpoints ---------- */
@media (max-width:1100px){
  .fm-results ul.products{grid-template-columns:repeat(3,1fr)}
  .woocommerce-checkout form.checkout{grid-template-columns:1fr;gap:28px}
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review{grid-column:1}
}
@media (max-width:880px){
  .fm-results ul.products,ul.products{grid-template-columns:repeat(2,1fr)!important}
  .fm-filters{position:static}
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content{width:100%}
  .woocommerce-account .u-columns{grid-template-columns:1fr}
  .woocommerce-cart .woocommerce,.woocommerce-checkout .woocommerce,
  .woocommerce-account .woocommerce{padding:0 20px}
  .woocommerce table.shop_table th{font-size:11px;padding:10px}
  .woocommerce table.shop_table td{padding:12px 10px}
}
@media (max-width:640px){
  .fm-results ul.products,ul.products{grid-template-columns:1fr!important}
  .woocommerce-checkout .form-row-first,.woocommerce-checkout .form-row-last{width:100%}
  .woocommerce table.cart img{width:48px}
  .woocommerce table.cart td.actions .coupon input{min-width:0;flex:1}
}

/* nothing should push a horizontal scrollbar */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%;height:auto}

/* ---------- Sticky header (design: .hdr sticky, translucent, blurred) ---------- */
.xpro-theme-builder-header.xtb-header-sticky,
.xpro-theme-builder-header{ position:relative; z-index:60 }
.xtb-header-sticky .flagman-headerbar,
.xpro-theme-builder-header .flagman-headerbar{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.92)!important;
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
/* the sticky child must be able to escape the header's own box */
.xpro-theme-builder-header,
.xpro-theme-builder-header .xpro-theme-builder-header-nav{ overflow:visible }
/* admin bar offset */
body.admin-bar .xpro-theme-builder-header .flagman-headerbar{ top:32px }
@media (max-width:782px){ body.admin-bar .xpro-theme-builder-header .flagman-headerbar{ top:46px } }
/* round icon controls, per the design's .icon-btn */
.flagman-headerbar .elementor-widget-icon a,
.flagman-headerbar .elementor-icon{
  width:40px;height:40px;border-radius:999px;background:#fff;border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;color:var(--fg-black);
  transition:border-color .15s ease,background .15s ease
}
.flagman-headerbar .elementor-widget-icon a:hover,
.flagman-headerbar .elementor-icon:hover{border-color:var(--fg-black);background:var(--bg-soft)}

/* ---------- Focus visibility (accessibility) ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--fg-black);outline-offset:3px;border-radius:4px
}
.fm-swatch:focus-visible{outline-offset:2px}

/* ---------- Blog empty state ---------- */
.fm-blog-empty{
  border:1px dashed var(--silver);border-radius:18px;padding:44px 28px;text-align:center;
  color:var(--fg-mute);font-size:14.5px;background:var(--bg-soft)
}
.fm-blog-empty strong{display:block;font-family:Questrial,sans-serif;font-size:22px;color:var(--fg-black);margin-bottom:6px}

/* contextual WhatsApp button (PDP) */
.fm-wa-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:999px;border:1px solid var(--fg-black);
  background:#fff;color:var(--fg-black);font-family:Inter,sans-serif;font-size:13px;
  font-weight:500;text-decoration:none;transition:all .15s ease
}
.fm-wa-btn:hover{background:var(--fg-black);color:#fff}

/* =====================================================================
   FIX PASS — gallery, checkout layout, badges, hover, search, spacing
   ===================================================================== */

/* ---- 1. PDP gallery: only grid when a thumbnail rail actually exists ----
   Single-image products never get flexslider, so there is no .flex-viewport
   and the main image was being squeezed into the 80px thumb column. */
.fm-pdp-gallery .woocommerce-product-gallery{
  display:block !important; grid-template-columns:none !important; max-width:100%
}
.fm-pdp-gallery .woocommerce-product-gallery:has(ol.flex-control-thumbs){
  display:grid !important; grid-template-columns:80px minmax(0,1fr) !important;
  gap:14px; align-items:start
}
.fm-pdp-gallery .woocommerce-product-gallery__wrapper{
  order:2; margin:0; width:100%;
  border-radius:var(--radius-lg); overflow:hidden; background:#fff
}
.fm-pdp-gallery .woocommerce-product-gallery:has(ol.flex-control-thumbs) .woocommerce-product-gallery__wrapper{
  border-radius:0; overflow:visible; background:transparent
}
.fm-pdp-gallery .flex-viewport{
  order:2; width:100%; border-radius:var(--radius-lg); overflow:hidden; background:#fff;
  box-shadow:var(--shadow-soft)
}
/* no-slider products still need a framed main image */
.fm-pdp-gallery .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper{
  box-shadow:var(--shadow-soft); padding:18px
}
.fm-pdp-gallery .woocommerce-product-gallery__image{width:100%}
.fm-pdp-gallery .woocommerce-product-gallery img{
  width:100% !important; height:auto !important; max-width:100%; display:block
}
.fm-pdp-gallery ol.flex-control-thumbs{order:1}

/* ---- 2. Checkout: order summary sits top-right, under its heading ---- */
@media (min-width:1025px){
  .woocommerce-checkout form.checkout{
    display:grid;
    grid-template-columns:1.25fr .75fr;
    grid-template-rows:auto auto 1fr;
    column-gap:40px; row-gap:0;
    align-items:start
  }
  .woocommerce-checkout form.checkout #customer_details{ grid-column:1; grid-row:1 / span 3 }
  .woocommerce-checkout form.checkout #order_review_heading{ grid-column:2; grid-row:1; margin-top:0 }
  .woocommerce-checkout form.checkout #order_review{ grid-column:2; grid-row:2; position:sticky; top:110px }
  .woocommerce-checkout form.checkout > .woocommerce-NoticeGroup{ grid-column:1 / -1; grid-row:auto }
}

/* checkout order table: thumbnail beside the product name */
.fm-order-line{display:flex;gap:12px;align-items:center}
.fm-order-thumb{
  width:52px;height:52px;flex:0 0 52px;border-radius:10px;border:1px solid var(--line);
  object-fit:contain;background:#fff;padding:3px
}
.fm-order-name{font-size:13.5px;line-height:1.35;color:var(--fg-black)}
.woocommerce-checkout-review-order-table .product-name{padding-right:10px}
.woocommerce-checkout-review-order-table .variation{font-size:12px;color:var(--fg-mute);margin:3px 0 0}
.woocommerce-checkout-review-order-table .variation dt,
.woocommerce-checkout-review-order-table .variation dd{display:inline;margin:0}

/* ---- 3. WooCommerce notices: icon inline with the text, not stacked above ---- */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 18px;margin:0 0 18px;list-style:none
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{
  position:static;top:auto;left:auto;margin:0;flex:0 0 auto;
  font-size:15px;line-height:1;display:inline-flex;align-items:center
}
.woocommerce-message .button,.woocommerce-info .button{
  margin:0 0 0 auto;flex:0 0 auto;padding:9px 18px;font-size:12.5px
}
.woocommerce-form-coupon-toggle .woocommerce-info{margin-bottom:18px}
.woocommerce-form-coupon-toggle .woocommerce-info a{
  color:var(--fg-black);text-decoration:underline;font-weight:500
}
.woocommerce-error li{display:flex;align-items:center;gap:8px;margin:0}

/* ---- 4. Cart: breathing room before the footer ---- */
.woocommerce-cart .woocommerce{padding-bottom:64px}
.woocommerce-cart .cart-collaterals{margin-top:32px}
.woocommerce-cart .cart_totals{margin-bottom:0}
.woocommerce-checkout .woocommerce,.woocommerce-account .woocommerce{padding-bottom:64px}
.woocommerce-cart .woocommerce-notices-wrapper:empty{display:none}

/* ---- 5. Cart count badge on the header icon ---- */
.flagman-headerbar a.fm-has-badge{position:relative;overflow:visible}
.fm-cart-count{
  position:absolute;top:-4px;right:-4px;
  min-width:18px;height:18px;padding:0 4px;
  background:var(--fg-black);color:#fff;border:2px solid #fff;border-radius:999px;
  font-family:Inter,sans-serif;font-size:10px;font-weight:600;line-height:14px;
  display:inline-flex;align-items:center;justify-content:center;pointer-events:none
}
.fm-cart-count.is-empty{display:none}

/* ---- 6. Button hover: always invert to dark bg + white text ----
   Forcing only the text colour produced white-on-white on outline buttons,
   so background, text and border are all set together. */
.elementor-button:hover,.elementor-button:focus-visible,
.elementor-button-link:hover,
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus-visible{
  background-color:#1A1A1A !important;
  color:#FFFFFF !important;
  border-color:#1A1A1A !important;
}
.elementor-button:hover .elementor-button-text,
.elementor-button:hover .elementor-button-icon,
.elementor-button:hover i,
.elementor-button:hover svg{ color:#FFFFFF !important; fill:#FFFFFF !important }

.fm-wa-btn:hover,.fm-swatch:hover,.fm-search-close:hover,.fm-search-tags a:hover{
  background:#1A1A1A;color:#fff;border-color:#1A1A1A
}
.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce .button.alt:hover,
.woocommerce #place_order:hover,.woocommerce .checkout-button:hover,
.woocommerce a.button.wc-backward:hover,.woocommerce .return-to-shop .button:hover,
.woocommerce button[name="update_cart"]:hover:not(:disabled){
  background:#1A1A1A !important;color:#fff !important;border-color:#1A1A1A !important
}
/* links that are not buttons keep their own colour */
a.fm-clear:hover{color:var(--fg-black);background:none}

/* ---- 7. Contact form spacing ---- */
form.flagman-form{gap:18px}
.flagman-form .fm-row{gap:18px;margin:0}
.flagman-form .fm-field{margin:0}
.flagman-form .fm-label{margin:0 0 7px}
.flagman-form p{margin:0}
form.flagman-form .wpcf7-form-control-wrap{margin:0}
.flagman-form .fm-upload{margin:4px 0}
.flagman-form .fm-actions{margin-top:6px}
.flagman-form input[type=text],.flagman-form input[type=email],
.flagman-form input[type=tel],.flagman-form select{padding:14px 16px}
.flagman-form textarea{padding:14px 16px;min-height:132px}
.flagman-form .wpcf7-response-output{margin:14px 0 0}

/* ---- 8. Search overlay ---- */
.fm-search-overlay{
  position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.45);
  padding:60px 24px;overflow-y:auto
}
.fm-search-overlay[hidden]{display:none}
body.fm-search-open{overflow:hidden}
.fm-search-panel{
  max-width:720px;margin:0 auto;background:#fff;border-radius:var(--radius);
  padding:22px;box-shadow:0 24px 60px rgba(0,0,0,.2)
}
.fm-search-form{
  display:flex;align-items:center;gap:10px;
  padding:6px 4px 16px;border-bottom:1px solid var(--line);margin:0
}
.fm-search-icon{color:var(--fg-mute);font-size:16px;flex:0 0 auto}
.fm-search-input{
  flex:1;border:0;outline:none;font-family:Inter,sans-serif;font-size:16px;
  color:var(--fg-black);background:transparent;padding:6px 0;min-width:0
}
.fm-search-input::placeholder{color:var(--silver)}
.fm-search-close{
  flex:0 0 auto;background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:7px 14px;font-family:Inter,sans-serif;font-size:12.5px;color:var(--fg-graphite);cursor:pointer
}
.fm-search-close:hover{background:var(--fg-black);color:#fff;border-color:var(--fg-black)}
.fm-search-popular{padding-top:14px}
.fm-search-eyebrow{
  display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fg-mute);margin-bottom:10px
}
.fm-search-tags{display:flex;gap:8px;flex-wrap:wrap}
.fm-search-tags a{
  border:1px solid var(--line);border-radius:999px;padding:8px 14px;
  font-size:12.5px;color:var(--fg-graphite);text-decoration:none;transition:all .15s ease
}
.fm-search-tags a:hover{background:var(--fg-black);color:#fff;border-color:var(--fg-black)}

/* ---- 9. Search results page: small thumbs, card grid ---- */
body.search .site-main,body.search-results .site-main,
body.search main.site-main{max-width:1440px;margin:0 auto;padding:40px 28px 64px}
body.search .page-header{margin-bottom:26px}
body.search .page-header h1,body.search h1.page-title{
  font-family:Questrial,sans-serif;font-size:36px;letter-spacing:-.02em;margin:0
}
body.search article,body.search .post,body.search .hentry{
  display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;margin:0 0 16px;box-shadow:var(--shadow-soft);
  transition:transform .2s ease,box-shadow .2s ease
}
body.search article:hover,body.search .post:hover{
  transform:translateY(-2px);box-shadow:var(--shadow-card)
}
body.search article img,body.search .post img,
body.search .post-thumbnail img,body.search .attachment-post-thumbnail{
  width:120px !important;height:120px !important;max-width:120px !important;
  object-fit:contain !important;border-radius:12px;border:1px solid var(--line);
  background:#fff;padding:6px;display:block;margin:0
}
body.search article > a:first-child,body.search .post-thumbnail{
  grid-column:1;margin:0;display:block;width:120px
}
body.search .entry-header,body.search .entry-content,
body.search .entry-summary,body.search .entry-footer{grid-column:2;margin:0;max-width:none}
body.search .entry-title{
  font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:1.35;margin:0 0 6px
}
body.search .entry-title a{color:var(--fg-black);text-decoration:none}
body.search .entry-title a:hover{text-decoration:underline}
body.search .entry-content,body.search .entry-summary{
  font-size:13.5px;color:var(--fg-mute);line-height:1.6
}
body.search .entry-content p{margin:0 0 6px}
body.search .entry-meta,body.search .entry-footer{font-size:12px;color:var(--fg-mute)}
@media (max-width:640px){
  body.search article,body.search .post,body.search .hentry{grid-template-columns:84px minmax(0,1fr);gap:14px}
  body.search article img,body.search .post img{width:84px !important;height:84px !important;max-width:84px !important}
}

/* form flow: the gap only works once the selector matches the <form> itself */
form.flagman-form{display:flex;flex-direction:column;gap:18px}
form.flagman-form > p{margin:0;display:contents}
form.flagman-form .fm-row{margin:0}
form.flagman-form .fm-upload{margin:2px 0}
form.flagman-form .fm-actions{margin-top:4px}

/* =====================================================================
   Product loop cards — WooCommerce core uses `.woocommerce ul.products
   li.product{padding:0}` which outranked our rule, so match its specificity.
   ===================================================================== */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
body.search ul.products li.product{
  /* core sets width:22.05% + float:left for its own float layout; inside our grid
     that percentage resolves against the grid cell and collapses the card */
  width:auto !important;float:none !important;clear:none !important;
  padding:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;flex-direction:column;gap:8px;
  box-shadow:var(--shadow-soft);
  transition:transform .22s ease,box-shadow .22s ease;
  text-align:left;margin:0
}
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover{
  transform:translateY(-3px);box-shadow:var(--shadow-card)
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link{
  display:flex;flex-direction:column;gap:6px;text-decoration:none
}
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img{
  margin:0 0 6px;border-radius:12px;aspect-ratio:1/1;object-fit:contain;
  background:#fff;width:100%;height:auto
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title{
  font-family:Inter,sans-serif !important;font-size:14px !important;font-weight:500;
  line-height:1.35;color:var(--fg-black);padding:0;margin:0
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price{
  font-family:Questrial,sans-serif;font-size:15px;color:var(--fg-black);margin:0
}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart,
.woocommerce-page ul.products li.product .button{
  margin-top:auto;width:100%;font-size:12.5px;padding:11px 18px;text-align:center
}
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:0;padding:0
}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product.first,
.woocommerce ul.products li.product.last{clear:none}
/* search results container needs the site gutter */
body.search.woocommerce-page .site-main,
body.search-results.woocommerce-page .site-main{
  max-width:var(--container);margin:0 auto;padding:40px var(--gutter) 64px
}
@media (max-width:1100px){
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:880px){
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr}
}

/* =====================================================================
   HOMEPAGE — Featured tabs, FAQ, pre-footer CTA (match the design)
   ===================================================================== */

/* ---- Featured: tab row as left-aligned pills ---- */
.fm-featured-tabs .e-n-tabs-heading{
  justify-content:flex-start !important;gap:8px;flex-wrap:wrap;
  border:0 !important;margin:0 0 26px
}
.fm-featured-tabs .e-n-tab-title{
  padding:10px 18px !important;border-radius:999px !important;
  background:#fff !important;border:1px solid var(--line) !important;
  color:var(--fg-graphite) !important;
  font-family:Inter,sans-serif !important;font-size:13.5px !important;font-weight:500 !important;
  transition:all .15s ease;min-height:0 !important
}
.fm-featured-tabs .e-n-tab-title:hover{border-color:var(--fg-black) !important;color:var(--fg-black) !important}
.fm-featured-tabs .e-n-tab-title[aria-selected="true"],
.fm-featured-tabs .e-n-tab-title.e-active{
  background:var(--fg-black) !important;border-color:var(--fg-black) !important;color:#fff !important
}
.fm-featured-tabs .e-n-tab-title-text{font-size:13.5px}
.fm-featured-tabs .e-n-tabs-content > .e-con{padding:0 !important}

/* ---- Featured: replace CubePortfolio's absolute layout with a real grid ----
   Real structure is:
     .xpro-product-grid-wrapper > .xpro-woo-product-grid-main.cbp
        > .cbp-wrapper-outer > .cbp-wrapper > .cbp-item
   cbp measures the container on load; inside a hidden tab panel it measures 0,
   sets an inline height and stacks every card. Make .cbp itself the grid. */
.xpro-product-grid-wrapper{display:block !important;height:auto !important}
.xpro-woo-product-grid-main.cbp,
.xpro-product-grid-wrapper .cbp{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:20px !important;
  height:auto !important;          /* overrides cbp's inline height */
  min-height:0 !important;
  position:static !important;
  overflow:visible !important
}
.xpro-product-grid-wrapper .cbp-wrapper-outer,
.xpro-product-grid-wrapper .cbp-wrapper{
  display:contents !important;height:auto !important;position:static !important
}
.xpro-woo-product-grid-item.cbp-item,
.xpro-woo-product-grid-item{
  position:static !important;left:auto !important;top:auto !important;
  width:auto !important;max-width:100% !important;height:auto !important;
  transform:none !important;opacity:1 !important;visibility:visible !important;
  display:block !important;box-sizing:border-box !important
}
.xpro-woo-product-grid-item *,
.xpro-product-grid-wrapper *{box-sizing:border-box}
.xpro-woo-product-grid-item .cbp-item-wrapper{
  display:flex;flex-direction:column;gap:10px;height:100%
}

/* card shell, matching the design */
.xpro-woo-product-grid-item{
  background:#fff !important;border:1px solid var(--line) !important;
  border-radius:var(--radius) !important;
  padding:14px !important;box-shadow:var(--shadow-soft);
  transition:transform .22s ease,box-shadow .22s ease
}
.xpro-woo-product-grid-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}

/* image panel — plain white, no grey fill */
.xpro-woo-product-grid-img,
.xpro-woo-product-img-section{
  background:#fff !important;border-radius:14px;overflow:hidden;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;position:relative;
  border:0 !important
}
.xpro-woo-product-grid-img img,
.xpro-woo-product-img-section img{
  width:100% !important;height:100% !important;object-fit:contain !important;
  padding:10px;mix-blend-mode:normal !important;background:transparent !important
}
.xpro-woo-product-grid-content-sec{
  display:flex;flex-direction:column;gap:6px;padding:4px 2px 0;flex:1
}
.xpro-woo-product-grid-title{
  font-family:Inter,sans-serif !important;font-size:14px !important;font-weight:500 !important;
  line-height:1.35 !important;color:var(--fg-black) !important;margin:0 !important
}
.xpro-woo-product-grid-price-wrapper .price,
.xpro-woo-product-grid-price-wrapper{
  font-family:Questrial,sans-serif !important;font-size:15px !important;color:var(--fg-black) !important
}
.xpro-woo-product-grid-price-wrapper .fm-from{font-size:12px;color:var(--fg-mute)}
.xpro-woo-product-grid-star-rating-wrapper{font-size:12px;color:var(--fg-graphite)}
.xpro-woo-product-grid-star-rating-wrapper .star-rating{font-size:12px}

/* ---- Badges ----
   Xpro nests three elements (outer wrapper > inner wrapper > flash). Styling all
   of them stacked three boxes on top of each other, so only the innermost flash
   is drawn and the wrappers are made transparent pass-throughs. */
.xpro-woo-product-grid-badges-wrapper,
.xpro-woo-product-grid-badges-innner-wrapper{
  position:absolute !important;top:10px !important;left:10px !important;
  background:transparent !important;border:0 !important;padding:0 !important;
  margin:0 !important;width:auto !important;height:auto !important;
  min-width:0 !important;min-height:0 !important;box-shadow:none !important;
  display:flex !important;gap:6px;z-index:3;border-radius:0 !important
}
.xpro-woo-product-grid-item .xpro-featured-flash-wrap,
.xpro-woo-product-grid-item .xpro-woo-featured-flash-btn,
.xpro-woo-product-grid-item .onsale{
  position:static !important;
  background:#fff !important;color:var(--fg-black) !important;
  border:1px solid var(--line) !important;border-radius:999px !important;
  padding:5px 12px !important;margin:0 !important;
  font-family:Inter,sans-serif !important;font-size:10.5px !important;
  font-weight:600 !important;letter-spacing:.03em;line-height:1.3 !important;
  width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;
  display:inline-flex !important;align-items:center;justify-content:center;
  box-shadow:none !important
}

/* the CTA row: Add to Cart + circular WhatsApp */
.xpro-woo-product-grid-item .xpro-woo-cta-btn,
.xpro-woo-product-grid-item .xpro-woo-product-grid-btn,
.xpro-woo-product-grid-item a.button{
  margin-top:auto;display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px !important;background:#fff !important;color:var(--fg-black) !important;
  border:1px solid var(--fg-black) !important;
  font-family:Inter,sans-serif !important;font-size:12.5px !important;font-weight:500 !important;
  padding:11px 18px !important;width:100%;text-align:center;transition:all .15s ease
}
.xpro-woo-product-grid-item .xpro-woo-cta-btn:hover,
.xpro-woo-product-grid-item a.button:hover{
  background:var(--fg-black) !important;color:#fff !important
}
.fm-card-actions{display:flex;gap:8px;align-items:center;margin-top:auto}
.fm-card-actions > *:first-child{flex:1}
.fm-card-wa{
  flex:0 0 38px;width:38px;height:38px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--fg-black);
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  transition:all .15s ease;font-size:14px
}
.fm-card-wa:hover{background:var(--fg-black);color:#fff;border-color:var(--fg-black)}
@media (max-width:1100px){ .xpro-woo-product-grid-main.cbp{grid-template-columns:repeat(3,minmax(0,1fr)) !important} }
@media (max-width:880px){ .xpro-woo-product-grid-main.cbp{grid-template-columns:repeat(2,minmax(0,1fr)) !important} }
@media (max-width:640px){ .xpro-woo-product-grid-main.cbp{grid-template-columns:1fr !important} }

/* ---- FAQ accordion, matching the design ---- */
.elementor-accordion{border:0}
.elementor-accordion .elementor-accordion-item{
  border:0 !important;border-top:1px solid var(--line) !important;background:transparent
}
.elementor-accordion .elementor-accordion-item:last-child{border-bottom:1px solid var(--line) !important}
.elementor-accordion .elementor-tab-title{
  padding:22px 40px 22px 0 !important;background:transparent !important;
  border:0 !important;position:relative;cursor:pointer
}
.elementor-accordion .elementor-tab-title a,
.elementor-accordion .elementor-tab-title .elementor-accordion-title{
  font-family:Inter,sans-serif !important;font-size:15.5px !important;font-weight:500 !important;
  color:var(--fg-black) !important;line-height:1.4
}
/* swap the chevron for the design's +/- control */
.elementor-accordion .elementor-tab-title .elementor-accordion-icon{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:999px;border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;margin:0;
  float:none;color:var(--fg-black)
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon svg,
.elementor-accordion .elementor-tab-title .elementor-accordion-icon i{display:none}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon::before{
  content:"+";font-family:Inter,sans-serif;font-size:16px;line-height:1;color:var(--fg-black)
}
.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon::before{content:"\2013"}
.elementor-accordion .elementor-tab-content{
  padding:0 40px 22px 0 !important;border:0 !important;background:transparent !important;
  font-family:Inter,sans-serif;font-size:14px;line-height:1.7;color:var(--fg-graphite)
}
.elementor-accordion .elementor-tab-content p{margin:0 0 10px}

/* ---- Pre-footer CTA as a rounded black card ---- */
.fm-cta-card{border-radius:28px !important;overflow:hidden}
.fm-cta-card .elementor-widget-heading .elementor-heading-title{max-width:820px;margin:0 auto}

/* ---------- Artwork upload ("Choose Image") ---------- */
.fm-artwork{
  margin:18px 0 20px;
  padding:16px 18px;
  border:1px solid var(--line,#E6E6E6);
  border-radius:14px;
  background:var(--bg-soft,#F5F5F5);
}
.fm-artwork__label{
  display:block;
  font-family:var(--font-body,'Inter',sans-serif);
  font-size:13px;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--fg-black,#000);
  margin:0 0 10px;
}
.fm-artwork__label .required{
  border:0;
  text-decoration:none;
  color:#B00020;
  margin-left:2px;
}
.fm-artwork__input{
  display:block;
  width:100%;
  font-family:var(--font-body,'Inter',sans-serif);
  font-size:13px;
  color:var(--fg-graphite,#333);
  background:#fff;
  border:1px dashed var(--silver,#BFBFBF);
  border-radius:10px;
  padding:11px 12px;
  cursor:pointer;
}
.fm-artwork__input:hover{ border-color:var(--fg-black,#000); }
.fm-artwork__input:focus-visible{
  outline:2px solid var(--fg-black,#000);
  outline-offset:2px;
  border-style:solid;
}
.fm-artwork__input::file-selector-button{
  font-family:inherit;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#fff;
  background:var(--charcoal,#1A1A1A);
  border:0;
  border-radius:999px;
  padding:8px 14px;
  margin-right:12px;
  cursor:pointer;
  transition:background .15s ease;
}
.fm-artwork__input::file-selector-button:hover{ background:#000; }
.fm-artwork__hint{
  margin:10px 0 0;
  font-family:var(--font-body,'Inter',sans-serif);
  font-size:11.5px;
  line-height:1.5;
  color:var(--fg-mute,#6B6B6B);
}
/* filename shown on the cart / checkout line */
.woocommerce-cart .fm-artwork,
.woocommerce-checkout .fm-artwork{ display:none; }

@media (max-width:640px){
  .fm-artwork{ padding:14px; }
  .fm-artwork__input::file-selector-button{ padding:7px 11px; margin-right:9px; }
}

/* ---------- inline notices on the single product page ---------- */
.fm-notices{ margin:0 0 16px; }
.fm-notices ul{ list-style:none; margin:0; padding:0; }
.fm-notices li,
.fm-notices .woocommerce-error,
.fm-notices .woocommerce-message,
.fm-notices .woocommerce-info{
  font-family:var(--font-body,'Inter',sans-serif);
  font-size:13px;
  line-height:1.5;
  padding:12px 14px;
  margin:0 0 8px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--line,#E6E6E6);
  border-left:3px solid var(--charcoal,#1A1A1A);
  color:var(--fg-graphite,#333);
}
.fm-notices .woocommerce-error,
.fm-notices ul.woocommerce-error li{
  border-left-color:#B00020;
  background:#FFF5F6;
  color:#7A0016;
}
.fm-notices a{ color:inherit; text-decoration:underline; }
