/* ==========================================================================
   Store Optimizer - conversion-focused WooCommerce layer (camera retail)
   Loaded after the theme so these rules win without !important spam.
   ========================================================================== */
:root{
  --so-ink:#0f172a;          /* primary dark  */
  --so-ink-2:#1e293b;
  --so-body:#334155;
  --so-muted:#64748b;
  --so-line:#e2e8f0;
  --so-bg:#ffffff;
  --so-bg-2:#f8fafc;
  --so-bg-3:#f1f5f9;
  --so-cta:#ffc21f;          /* primary CTA - amber, high contrast on dark */
  --so-cta-h:#f0b100;
  --so-cta-ink:#0f172a;
  --so-accent:#0052b1;       /* links / secondary actions */
  --so-accent-h:#003d85;
  --so-ok:#16a34a;
  --so-sale:#e11d48;
  --so-radius:10px;
  --so-radius-lg:16px;
  --so-shadow:0 1px 2px rgba(15,23,42,.06), 0 4px 12px rgba(15,23,42,.06);
  --so-shadow-lg:0 12px 32px rgba(15,23,42,.14);
  --so-max:1430px;
  --so-font:'Poppins',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ---------- base / rhythm ---------- */
body{font-family:var(--so-font);color:var(--so-body);background:var(--so-bg);}
h1,h2,h3,h4,h5,.heading-font{font-family:var(--so-font);color:var(--so-ink);font-weight:700;letter-spacing:-.015em;}
a{color:var(--so-accent);}
a:hover{color:var(--so-accent-h);}
.container,.row{max-width:var(--so-max);}
.so-section{padding:56px 0;}
.so-section-title{text-align:center;margin-bottom:34px;}
.so-section-title h2{font-size:clamp(22px,2.4vw,32px);margin:0 0 8px;}
.so-section-title p{color:var(--so-muted);margin:0;font-size:15px;}

/* ---------- buttons: one clear hierarchy ---------- */
.button,button,input[type=submit],
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.wc-block-components-button{
  font-family:var(--so-font);font-weight:600;letter-spacing:.01em;
  border-radius:var(--so-radius);text-transform:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
/* primary = the money button */
.button.primary,.button.alt,
.woocommerce a.button.alt,.woocommerce button.button.alt,
.single_add_to_cart_button,.woocommerce button.button.alt.single_add_to_cart_button,
.checkout-button,.wc-proceed-to-checkout .checkout-button,
#place_order,.woocommerce #place_order{
  background:var(--so-cta)!important;color:var(--so-cta-ink)!important;
  border:0!important;box-shadow:0 2px 0 rgba(0,0,0,.08);
  font-weight:700;font-size:16px;padding:14px 26px;min-height:52px;
}
.button.primary:hover,.button.alt:hover,.single_add_to_cart_button:hover,
.checkout-button:hover,#place_order:hover{
  background:var(--so-cta-h)!important;color:var(--so-cta-ink)!important;
  transform:translateY(-1px);box-shadow:var(--so-shadow-lg);
}
/* secondary */
.button.secondary,.button.is-outline{
  background:transparent;color:var(--so-ink);border:2px solid var(--so-line);font-weight:600;
}
.button.secondary:hover,.button.is-outline:hover{border-color:var(--so-ink);background:var(--so-bg-3);color:var(--so-ink);}
/* full width where it matters */
.single_add_to_cart_button,.wc-proceed-to-checkout .checkout-button,#place_order{width:100%;justify-content:center;text-align:center;}

/* ---------- header / nav ---------- */
.header-main{border-bottom:1px solid rgba(255,255,255,.08);}
.header-nav a.nav-top-link,.header li>a{font-weight:600;font-size:14px;letter-spacing:.01em;}
.nav>li>a:hover{color:var(--so-cta)!important;}
.so-topbar{background:var(--so-ink);color:#e2e8f0;font-size:13px;}
.so-topbar .so-topbar-in{max-width:var(--so-max);margin:0 auto;padding:9px 15px;display:flex;gap:22px;
  align-items:center;justify-content:center;flex-wrap:wrap;}
.so-topbar strong{color:var(--so-cta);}
.so-topbar span{display:inline-flex;align-items:center;gap:7px;}

/* ---------- product cards ---------- */
.products .product-small.col{padding-bottom:8px;}
.products .product-small .box{
  background:var(--so-bg);border:1px solid var(--so-line);border-radius:var(--so-radius-lg);
  overflow:hidden;height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.products .product-small .box:hover{transform:translateY(-4px);box-shadow:var(--so-shadow-lg);border-color:#cbd5e1;}
.products .product-small .box-image{background:#fff;padding:14px;}
.products .product-small .box-image img{mix-blend-mode:multiply;transition:transform .3s ease;}
.products .product-small .box:hover .box-image img{transform:scale(1.05);}
.products .product-small .box-text{padding:14px 16px 18px;text-align:left;}
.products .product-small .product-title a{
  color:var(--so-ink);font-weight:600;font-size:14px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px;
}
.products .product-small .product-title a:hover{color:var(--so-accent);}
.products .price,.product-page-price{color:var(--so-ink);font-weight:800;}
.products .price .amount{font-size:18px;}
.products del,.product-page-price del{color:var(--so-muted);font-weight:500;opacity:.8;}
.products ins,.product-page-price ins{text-decoration:none;color:var(--so-sale);}
.products .star-rating{margin:2px 0 6px;}
/* badges */
.badge-container .badge-inner,.product .badge-inner{
  background:var(--so-sale)!important;color:#fff!important;border-radius:999px;
  font-weight:700;font-size:11px;letter-spacing:.04em;padding:0 10px;box-shadow:none;
}
/* add-to-cart on card */
.products .product-small .add-to-cart-button a{
  display:block;width:100%;text-align:center;background:var(--so-bg-3);color:var(--so-ink);
  border-radius:8px;font-weight:600;font-size:13px;padding:9px 12px;border:1px solid var(--so-line);
}
.products .product-small .add-to-cart-button a:hover{background:var(--so-cta);border-color:var(--so-cta);color:var(--so-cta-ink);}

/* ---------- single product ---------- */
.product-title.product_title{font-size:clamp(20px,2.4vw,30px);line-height:1.25;margin-bottom:10px;}
.product-page-price{font-size:28px;}
.product-page-price .amount{color:var(--so-ink);}
.product-info .woocommerce-product-rating{margin-bottom:10px;}
.product-main{padding:34px 0;}
.product-gallery .woocommerce-product-gallery__image img{border-radius:var(--so-radius-lg);}
.so-buybox{border:1px solid var(--so-line);border-radius:var(--so-radius-lg);padding:18px;background:var(--so-bg);box-shadow:var(--so-shadow);}
.so-stock{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--so-ok);margin-bottom:6px;}
.so-stock::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--so-ok);box-shadow:0 0 0 3px rgba(22,163,74,.18);}
.so-ship{font-size:14px;color:var(--so-body);margin:2px 0 14px;}
.so-ship b{color:var(--so-ink);}
/* trust row */
.so-trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;
  border-top:1px solid var(--so-line);padding-top:16px;}
.so-trust div{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--so-body);line-height:1.4;}
.so-trust svg{flex:0 0 18px;margin-top:1px;color:var(--so-accent);}
.so-trust b{display:block;color:var(--so-ink);font-size:13px;}
/* payment icons */
.so-pay{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--so-line);}
.so-pay span{font-size:12px;color:var(--so-muted);margin-right:2px;}
.so-pay i{display:inline-block;height:24px;padding:0 9px;line-height:24px;border:1px solid var(--so-line);
  border-radius:5px;font-size:10px;font-style:normal;font-weight:700;color:var(--so-ink);background:#fff;letter-spacing:.02em;}

/* sticky mobile add-to-cart */
.so-sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--so-line);
  box-shadow:0 -6px 20px rgba(15,23,42,.10);padding:10px 14px;display:none;gap:12px;align-items:center;}
.so-sticky-atc .so-sa-price{font-weight:800;color:var(--so-ink);font-size:17px;white-space:nowrap;}
.so-sticky-atc .so-sa-title{font-size:12px;color:var(--so-muted);display:block;max-width:38vw;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.so-sticky-atc a{flex:1;background:var(--so-cta);color:var(--so-cta-ink);font-weight:700;text-align:center;
  border-radius:9px;padding:13px 16px;font-size:15px;}
@media(max-width:849px){.so-sticky-atc{display:flex;} body.single-product{padding-bottom:74px;}}

/* ---------- cart ---------- */
.so-ship-bar{background:var(--so-bg-2);border:1px solid var(--so-line);border-radius:var(--so-radius);
  padding:14px 16px;margin-bottom:20px;}
.so-ship-bar p{margin:0 0 9px;font-size:14px;color:var(--so-ink);font-weight:600;}
.so-ship-bar .so-track{height:8px;border-radius:99px;background:var(--so-bg-3);overflow:hidden;}
.so-ship-bar .so-fill{height:100%;background:linear-gradient(90deg,var(--so-cta),var(--so-ok));border-radius:99px;transition:width .4s ease;}
.woocommerce-cart table.shop_table{border:1px solid var(--so-line);border-radius:var(--so-radius-lg);overflow:hidden;}
.woocommerce-cart table.shop_table th{background:var(--so-bg-2);color:var(--so-ink);font-weight:700;font-size:13px;letter-spacing:.03em;}
.cart_totals,.cart-sidebar,.woocommerce-checkout-review-order{
  background:var(--so-bg-2);border:1px solid var(--so-line);border-radius:var(--so-radius-lg);padding:20px;}
.cart_totals h3,.woocommerce-checkout-review-order h3{font-size:17px;margin-top:0;}
.cart_totals .order-total .amount{font-size:22px;color:var(--so-ink);}

/* ---------- checkout ---------- */
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{margin-bottom:18px;}
.woocommerce-checkout h3{font-size:18px;padding-bottom:10px;border-bottom:2px solid var(--so-line);}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,
.woocommerce form .form-row select,.select2-container--default .select2-selection--single{
  border:1px solid var(--so-line)!important;border-radius:9px!important;min-height:48px;padding:12px 14px;
  font-size:15px;background:#fff;box-shadow:none;transition:border-color .15s ease, box-shadow .15s ease;}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{border-color:var(--so-accent)!important;
  box-shadow:0 0 0 3px rgba(0,82,177,.14)!important;outline:0;}
.woocommerce form .form-row label{font-weight:600;color:var(--so-ink);font-size:13px;margin-bottom:6px;}
#payment,.woocommerce-checkout #payment{background:var(--so-bg-2);border:1px solid var(--so-line);border-radius:var(--so-radius-lg);}
#payment ul.payment_methods li{border-bottom:1px solid var(--so-line);padding:14px 16px;}
.so-secure{display:flex;gap:9px;align-items:center;justify-content:center;font-size:13px;color:var(--so-muted);
  margin-top:12px;}
.so-secure svg{color:var(--so-ok);}
/* checkout progress */
.so-steps{display:flex;gap:0;justify-content:center;margin:0 0 26px;flex-wrap:wrap;}
.so-steps div{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--so-muted);padding:0 16px;}
.so-steps div span{width:24px;height:24px;border-radius:50%;background:var(--so-bg-3);color:var(--so-muted);
  display:grid;place-items:center;font-size:12px;font-weight:700;}
.so-steps div.is-on{color:var(--so-ink);}
.so-steps div.is-on span{background:var(--so-cta);color:var(--so-cta-ink);}

/* ---------- category / shop header ---------- */
.shop-page-title,.page-title-inner{padding:22px 0;}
.woocommerce-breadcrumb{font-size:13px;color:var(--so-muted);}
.woocommerce-breadcrumb a{color:var(--so-muted);}
.woocommerce-breadcrumb a:hover{color:var(--so-accent);}
.so-usp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 auto;max-width:var(--so-max);
  padding:22px 15px;}
.so-usp .so-u{display:flex;gap:12px;align-items:center;background:var(--so-bg);border:1px solid var(--so-line);
  border-radius:var(--so-radius);padding:14px 16px;}
.so-usp .so-u b{display:block;color:var(--so-ink);font-size:14px;}
.so-usp .so-u small{color:var(--so-muted);font-size:12.5px;}
.so-usp .so-u svg{flex:0 0 22px;color:var(--so-accent);}
@media(max-width:849px){.so-usp{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:549px){.so-usp{grid-template-columns:1fr;} .so-trust{grid-template-columns:1fr;}}

/* ---------- misc polish ---------- */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  border-radius:var(--so-radius);border:1px solid var(--so-line);border-top:3px solid var(--so-accent);
  background:var(--so-bg-2);color:var(--so-ink);}
.woocommerce-message{border-top-color:var(--so-ok);}
.woocommerce-error{border-top-color:var(--so-sale);}
.footer-wrapper,.footer{background:var(--so-ink);}
.absolute-footer{background:var(--so-ink);color:#94a3b8;}
img{image-rendering:auto;}

/* ==========================================================================
   Fixes from automated desktop/mobile screenshot audit
   ========================================================================== */

/* horizontal overflow: product gallery slider + reviews row broke the mobile
   viewport (gallery slides measured at 375..736px inside a 390px view).      */
@media (max-width:849px){
  html,body{overflow-x:hidden;max-width:100%;}
  .woocommerce-product-gallery,.product-gallery,.product-images{overflow:hidden;max-width:100%;}
  .woocommerce-product-gallery__wrapper,.product-gallery-slider{max-width:100%;}
  .woocommerce-Reviews.row,.woocommerce-Reviews .row{margin-left:0;margin-right:0;}
  .woocommerce-Reviews .col,.woocommerce-Reviews .col.large-12{padding-left:0;padding-right:0;}
}

/* mobile typography was oversized - tighten to a readable scale */
@media (max-width:549px){
  .product-main .woocommerce-product-details__short-description,
  .woocommerce-Tabs-panel p,.entry-content p{font-size:15px;line-height:1.65;}
  .product-title.product_title{font-size:21px;}
  .product-page-price{font-size:24px;}
  .so-section{padding:34px 0;}
  .so-topbar .so-topbar-in{gap:10px;font-size:12px;padding:8px 12px;}
}

/* tap targets: footer + utility links were under 32px on mobile */
@media (max-width:849px){
  .footer a,.absolute-footer a,.footer-wrapper li>a{display:inline-block;padding:6px 0;min-height:32px;line-height:20px;}
}

/* sticky add-to-cart: keep it clear of the footer and readable */
.so-sticky-atc{align-items:center;}
.so-sticky-atc>div{min-width:0;}
.so-sticky-atc .so-sa-price{font-size:18px;line-height:1.2;}
.so-sticky-atc a{max-width:52%;}

/* category tiles: keep image + label balanced (grid rebuilt earlier) */
.product-category-grid{align-items:stretch;}
.product-card img{background:#fff;}

/* gallery grid on the home page - was collapsing without column config */
.gallery-col .box-image img{border-radius:10px;}

/* logo sizing so the wordmark is legible but not dominant */
.header-main .logo img{max-height:46px;width:auto;}
@media(max-width:849px){.header-main .logo img{max-height:34px;}}

/* ==========================================================================
   Product-card action buttons.
   The theme forces min-width:130px on BOTH "Add to cart" and "Buy Now" and
   floats them inline-block, so in a 3-up grid they exceed the card width and
   the labels wrap to one word per line. Lay them out as a proper 2-up row.
   ========================================================================== */
.products .price-wrapper{display:flex;flex-wrap:wrap;align-items:center;}
.products .price-wrapper>.price{flex:1 1 100%;margin-bottom:10px;}
.products .onfourth-cart-btn,
.products .onfourth-buy-now{
  display:flex!important;flex:1 1 0!important;min-width:0!important;
  margin:0!important;text-align:center;
}
.products .onfourth-cart-btn{margin-right:8px!important;}
.products .onfourth-cart-btn .button,
.products .onfourth-buy-now .buy-now-button{
  min-width:0!important;width:100%!important;
  padding:11px 6px!important;font-size:13px!important;line-height:1.15!important;
  min-height:44px!important;white-space:nowrap!important;
  display:flex!important;align-items:center;justify-content:center;
  border-radius:9px!important;letter-spacing:0;
}
/* primary action = amber, matching the single-product CTA */
.products .onfourth-cart-btn .button{
  background:var(--so-cta)!important;color:var(--so-cta-ink)!important;border:0!important;font-weight:700!important;
}
.products .onfourth-cart-btn .button:hover{background:var(--so-cta-h)!important;color:var(--so-cta-ink)!important;}
/* secondary action = outlined */
.products .onfourth-buy-now .buy-now-button{
  background:#fff!important;color:var(--so-ink)!important;border:2px solid var(--so-line)!important;font-weight:600!important;
}
.products .onfourth-buy-now .buy-now-button:hover{
  background:var(--so-ink)!important;color:#fff!important;border-color:var(--so-ink)!important;
}
/* narrow columns: stack instead of squeezing */
@media (max-width:1099px) and (min-width:850px){
  .products .onfourth-cart-btn,.products .onfourth-buy-now{flex:1 1 100%!important;margin-right:0!important;}
  .products .onfourth-buy-now{margin-top:8px!important;}
}
@media (max-width:549px){
  .products .onfourth-cart-btn .button,.products .onfourth-buy-now .buy-now-button{font-size:13px!important;min-height:42px!important;}
}

/* shop sidebar: readable widget styling now that it holds real filters */
.shop-sidebar .widget,.product-sidebar .widget{margin-bottom:26px;}
.shop-sidebar .widget-title,.product-sidebar .widget-title{
  font-size:14px;font-weight:700;color:var(--so-ink);letter-spacing:.04em;
  text-transform:uppercase;padding-bottom:9px;border-bottom:2px solid var(--so-line);margin-bottom:12px;display:block;}
.shop-sidebar ul li,.product-sidebar ul li{border:0;padding:5px 0;font-size:14px;}
.shop-sidebar ul li a{color:var(--so-body);}
.shop-sidebar ul li a:hover{color:var(--so-accent);}
.widget_price_filter .price_slider_amount .button{
  background:var(--so-ink)!important;color:#fff!important;font-size:12px;padding:8px 16px;min-height:0;}
.widget_price_filter .ui-slider .ui-slider-range{background:var(--so-cta);}
.widget_price_filter .ui-slider .ui-slider-handle{background:var(--so-ink);border:0;}
