/* SBA GMC Product Page v1.2.2 - adapted from the approved template.
   Colour variables are set inline from Settings (presets or custom). */
.sba-gmc{--sba-ink:#111827;--sba-mut:#6b7280;--sba-line:#e5e7eb;--sba-brand:#0f766e;--sba-btn-bg:#0f766e;--sba-btn-text:#fff;--sba-sale-bg:#ecfdf5;--sba-sale-text:#0b5d57;--sba-bg:#fff;--sba-soft:#f8fafc;--sba-ok:#15803d;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--sba-ink);background:var(--sba-bg);max-width:1120px;margin:0 auto;padding:16px;box-sizing:border-box}
.sba-gmc *{box-sizing:border-box}
.sba-gmc a{color:var(--sba-brand)}
.sba-gmc-crumbs{font-size:13px;color:var(--sba-mut);margin:4px 0 14px}
.sba-gmc-crumbs a{color:var(--sba-mut);text-decoration:none}
.sba-gmc-grid{display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:860px){.sba-gmc-grid{grid-template-columns:1.05fr 1fr;gap:36px}}
.sba-gmc-gallery{position:relative}
.sba-gmc-main-img{width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--sba-line);border-radius:12px;background:var(--sba-soft)}
.sba-gmc-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.sba-gmc-thumb{border:1px solid var(--sba-line);background:#fff;border-radius:8px;padding:0;cursor:pointer;overflow:hidden;width:72px;height:72px}
.sba-gmc-thumb img{width:72px;height:72px;object-fit:cover;display:block}
.sba-gmc-thumb.is-active{border-color:var(--sba-ink);outline:2px solid var(--sba-ink);outline-offset:-2px}
.sba-gmc-sale-flash{position:absolute;top:12px;left:12px;background:var(--sba-sale-bg);color:var(--sba-sale-text);border:1px solid currentColor;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px}
.sba-gmc-brand{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--sba-mut);margin:0 0 4px}
.sba-gmc h1.sba-gmc-title{font-size:26px;line-height:1.25;margin:0 0 8px;font-weight:700}
@media(min-width:860px){.sba-gmc h1.sba-gmc-title{font-size:32px}}
.sba-gmc-rating{font-size:14px;color:var(--sba-mut);margin:0 0 12px}
.sba-gmc-stars{color:#f59e0b;letter-spacing:2px}
.sba-gmc-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0 4px}
.sba-gmc-price .sba-gmc-now,.sba-gmc-price>.price{font-size:30px;font-weight:800}
.sba-gmc-price .sba-gmc-now .amount{font-size:30px}
.sba-gmc-was{font-size:18px;color:var(--sba-mut);text-decoration:line-through}
.sba-gmc-save{font-size:13px;font-weight:700;color:var(--sba-sale-text);background:var(--sba-sale-bg);border:1px solid currentColor;padding:2px 8px;border-radius:999px}
.sba-gmc-tax{font-size:13px;color:var(--sba-mut);margin:0 0 12px}
.sba-gmc-stock{font-size:14px;font-weight:600;color:var(--sba-ok);margin:0 0 14px}
.sba-gmc-stock.out{color:#b91c1c}
.sba-gmc-shortdesc{font-size:15px;line-height:1.6;color:#374151;margin:0 0 8px}
/* Native WooCommerce add-to-cart form, styled to the approved design.
   Layout (v1.1.4): CSS GRID with two equal columns and explicit
   placement, because flex kept breaking this in the wild (when the
   desktop quantity was made 50% wide in v1.1.3, flex pulled Add to
   Cart up beside it and pushed Buy Now full-width below). Grid pins
   every piece: quantity on its own row (full width on mobile, first
   column = 50% on desktop), Add to Cart + Buy Now always side by
   side, equal width, on the row below. The colour rules use
   !important on purpose: theme and quick-buy stylesheets load after
   this file and were overriding the Settings colours. */
.sba-gmc-cart form.cart{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 8px;align-items:stretch}
.sba-gmc-cart form.cart .quantity{grid-column:1/-1;float:none;margin:0;width:100%}
@media(min-width:860px){.sba-gmc-cart form.cart .quantity{grid-column:1/2}}
/* Quantity box (v2.5.1, store owner's direction): the box fills
   its grid column and matches the Buy Now button's size exactly -
   same height, padding, font size and radius - instead of the old
   small 74px input sitting inside a wide column. */
.sba-gmc-cart .quantity input.qty{width:100%;box-sizing:border-box;padding:14px 18px;border:1px solid var(--sba-line);border-radius:10px;font-size:17px;font-weight:600;text-align:center;min-height:52px}
.sba-gmc-cart form.cart .single_add_to_cart_button{grid-column:1/-1;float:none;background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;font-size:17px;font-weight:700;border:none;border-radius:10px;padding:14px 18px;min-height:52px;cursor:pointer;text-align:center;white-space:nowrap}
.sba-gmc-cart form.cart:has(.quantity) .single_add_to_cart_button{grid-row:2}
.sba-gmc-cart form.cart:has(.wc-buy-now-btn) .single_add_to_cart_button:not(.wc-buy-now-btn){grid-column:1/2}
/* Buy Now (quick-buy plugins put it inside the same form) shares the buttons row */
.sba-gmc-cart form.cart .wc-buy-now-btn{grid-column:2/3;float:none;background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;font-size:17px;font-weight:700;border:none;border-radius:10px;padding:14px 18px;min-height:52px;cursor:pointer;text-align:center;white-space:nowrap;filter:brightness(1.12)}
.sba-gmc-cart form.cart:has(.quantity) .wc-buy-now-btn{grid-row:2}
.sba-gmc-cart form.cart .wc-buy-now-btn:hover{filter:brightness(1.02)}
/* Our own Buy Now (v2.3.0) takes the exact slot the third-party button used */
.sba-gmc-cart form.cart:has(.sba-buy-now-btn) .single_add_to_cart_button:not(.sba-buy-now-btn){grid-column:1/2}
.sba-gmc-cart form.cart .sba-buy-now-btn{grid-column:2/3;float:none;background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;font-size:17px;font-weight:700;border:none;border-radius:10px;padding:14px 18px;min-height:52px;cursor:pointer;text-align:center;white-space:nowrap;filter:brightness(1.12)}
.sba-gmc-cart form.cart:has(.quantity) .sba-buy-now-btn{grid-row:2}
.sba-gmc-cart form.cart .sba-buy-now-btn:hover{filter:brightness(1.02)}
/* Cards + shop listings */
.sba-card-buy{background:transparent!important;color:var(--sba-btn-bg)!important;border:2px solid var(--sba-btn-bg);margin-top:8px}
.sba-card-buy:hover{background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;filter:none}
.sba-loop-buy{margin-left:8px}
.sba-gmc-cart form.cart .single_add_to_cart_button:hover{filter:brightness(.92)}
.sba-gmc-cart form.cart .single_add_to_cart_button.disabled{opacity:.55;cursor:not-allowed}
/* Variable products: Woo wraps quantity + buttons in this inner div, same grid */
.sba-gmc-cart form.cart table.variations{grid-column:1/-1}
.sba-gmc-cart form.cart .single_variation_wrap{grid-column:1/-1}
.sba-gmc-cart .woocommerce-variation-add-to-cart{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.sba-gmc-cart .woocommerce-variation-add-to-cart .quantity{grid-column:1/-1;float:none;margin:0;width:100%}
@media(min-width:860px){.sba-gmc-cart .woocommerce-variation-add-to-cart .quantity{grid-column:1/2}}
.sba-gmc-cart form.cart .group_table{grid-column:1/-1}
.sba-gmc-cart table.variations{width:100%;border:none;margin:0 0 6px}
/* Variations compact rows (v1.1.5): label and options share ONE row
   per attribute instead of stacking on two lines, so a 3-attribute
   product takes 3 short rows, not 6 tall ones. One-tap swatch buttons
   stay (they convert better than dropdowns: every option visible, no
   extra tap); only long option lists (9+) keep the dropdown. */
.sba-gmc-cart table.variations tr{display:flex;align-items:flex-start;gap:10px}
.sba-gmc-cart table.variations th{border:none;padding:11px 0 4px;text-align:left;vertical-align:top;flex:0 0 88px;font-size:13px}
.sba-gmc-cart table.variations td{border:none;padding:4px 0;text-align:left;vertical-align:top;flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
@media(max-width:859px){.sba-gmc-cart table.variations th{flex-basis:70px}}
.sba-gmc-cart table.variations select{border:1px solid var(--sba-line);border-radius:8px;padding:10px;font-size:16px;min-height:48px;width:100%;max-width:340px;background:#fff;color:var(--sba-ink)}
/* Variation swatches: JS turns Woo's selects into one-tap buttons (select stays in the DOM for Woo) */
.sba-gmc-swatches{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.sba-gmc-swatches button{border:1px solid var(--sba-line);background:#fff;color:var(--sba-ink);border-radius:8px;padding:9px 14px;font-size:14px;cursor:pointer;min-height:44px;min-width:44px}
.sba-gmc-swatches button[aria-pressed="true"]{border-color:var(--sba-ink);outline:2px solid var(--sba-ink);outline-offset:-2px;font-weight:700}
.sba-gmc-swatches button.is-unavailable{opacity:.4;text-decoration:line-through}
.sba-gmc-cart select.sba-gmc-has-swatches{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sba-gmc :focus-visible,.sba-gmc-sticky :focus-visible{outline:3px solid var(--sba-brand);outline-offset:2px}
#sba-gmc-buybox{scroll-margin-top:16px}
.sba-gmc-cart .woocommerce-variation-price{font-size:22px;font-weight:800;margin:6px 0}
.sba-gmc-cart .woocommerce-variation-availability{font-size:14px;font-weight:600}
.sba-gmc-cart .reset_variations{font-size:13px}
.sba-gmc-cart .group_table td{border:none;padding:4px 8px 4px 0}
.sba-gmc-cart a.added_to_cart{display:block;grid-column:1/-1;text-align:center;font-weight:700;margin-top:4px}
.sba-gmc-secure{font-size:13px;color:var(--sba-mut);text-align:center;margin:6px 0 10px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.sba-gmc-lock{flex:0 0 auto}
.sba-gmc-pay-badges{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:center}
.sba-gmc-pay-badge{border:1px solid var(--sba-line);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;background:#fff;color:#374151;display:inline-flex;align-items:center;gap:5px;line-height:1.2}
.sba-pay-stripe{color:#635bff}
.sba-pay-paypal{color:#003087;font-style:italic}
.sba-pay-visa{color:#1a1f71;font-style:italic;letter-spacing:.04em}
.sba-pay-amex{background:#2e77bc;color:#fff;border-color:#2e77bc}
.sba-pay-apple_pay{color:#111}
.sba-mc{position:relative;width:24px;height:14px;display:inline-block}
.sba-mc-a,.sba-mc-b{position:absolute;top:1px;width:13px;height:13px;border-radius:50%}
.sba-mc-a{left:0;background:#eb001b}
.sba-mc-b{left:10px;background:#f79e1b;opacity:.9}
.sba-gmc-policies{margin:8px 0 14px;font-size:14px}
.sba-gmc-policy{margin:4px 0}
/* Policies in ONE line under the buy buttons, centered (v1.1.1) */
.sba-gmc-policies-line{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;justify-content:center;text-align:center;margin:2px 0 16px;font-size:14px}
.sba-gmc-policies-line .sba-gmc-policy{margin:0;display:inline-flex;align-items:center;gap:6px}
.sba-gmc-policies-line .sba-gmc-policy + .sba-gmc-policy:before{content:"\00B7";color:var(--sba-mut);font-weight:700;margin-right:4px}
.sba-gmc-acc{border-top:1px solid var(--sba-line)}
.sba-gmc-acc details{border-bottom:1px solid var(--sba-line);padding:12px 2px}
.sba-gmc-acc summary{font-weight:700;font-size:16px;cursor:pointer;list-style:none;padding:12px 0;min-height:48px;display:flex;align-items:center}
.sba-gmc-acc p,.sba-gmc-acc li{font-size:15px;line-height:1.6;color:#374151}
.sba-gmc-spec{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0}
.sba-gmc-spec td{border:1px solid var(--sba-line);padding:8px 10px}
.sba-gmc-spec td:first-child{font-weight:600;width:38%;background:var(--sba-soft)}
.sba-gmc-meta{font-size:13px;color:var(--sba-mut);margin:10px 0 0}
.sba-gmc-trust{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}
@media(min-width:860px){.sba-gmc-trust{grid-template-columns:repeat(4,1fr)}}
.sba-gmc-trust>div{border:1px solid var(--sba-line);border-radius:10px;padding:12px;text-align:center;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.sba-gmc-trust span{display:block;font-weight:400;color:var(--sba-mut);margin-top:3px}
/* Reviews: centered, designed column (overrides theme floats inside our wrapper only) */
.sba-gmc-reviews{margin:36px auto 24px;max-width:760px;text-align:center}
.sba-gmc-reviews h2,.sba-gmc-reviews .woocommerce-Reviews-title{text-align:center;font-size:26px;margin:0 0 10px}
.sba-gmc-reviews .woocommerce-noreviews{text-align:center;color:var(--sba-mut)}
.sba-gmc-reviews #review_form_wrapper{margin-top:14px}
.sba-gmc-reviews .comment-reply-title{display:block;text-align:center;font-size:19px;font-weight:700;margin:0 0 14px}
.sba-gmc-reviews form.comment-form{display:flex;flex-direction:column;align-items:center;gap:12px}
.sba-gmc-reviews form.comment-form p{margin:0;width:100%;max-width:640px;float:none;text-align:center}
.sba-gmc-reviews form.comment-form label{display:block;text-align:center;font-weight:600;margin:0 0 6px}
.sba-gmc-reviews .comment-form-rating{display:flex;flex-direction:column;align-items:center}
/* Simple star rating (v1.1.1): WooCommerce's JS-built star widget is
   hidden inside our reviews block; five plain star buttons built by
   our own JS are the chooser instead. The native select stays as the
   no-JS fallback and is hidden only once the buttons exist. */
.sba-gmc-reviews .comment-form-rating p.stars{display:none!important}
.sba-gmc-reviews .comment-form-rating select.sba-gmc-rate-hide{display:none!important}
.sba-gmc-reviews .comment-form-rating select{border:1px solid var(--sba-line);border-radius:10px;padding:10px 14px;font-size:16px;background:#fff}
.sba-gmc-rate{display:flex;gap:4px;justify-content:center;align-items:center}
.sba-gmc-rate button{background:none;border:none;padding:2px;cursor:pointer;font-size:32px;line-height:1;color:#d1d5db;min-width:44px;min-height:44px}
.sba-gmc-rate button.is-on{color:#f59e0b}
.sba-gmc-rate button:focus-visible{outline:2px solid var(--sba-brand);outline-offset:2px;border-radius:6px}
.sba-gmc-reviews form.comment-form textarea,.sba-gmc-reviews form.comment-form input[type="text"],.sba-gmc-reviews form.comment-form input[type="email"],.sba-gmc-reviews form.comment-form input[type="url"]{width:100%;max-width:640px;border:1px solid var(--sba-line);border-radius:10px;padding:12px;font-size:16px;background:#fff;float:none}
.sba-gmc-reviews form.comment-form textarea{min-height:140px}
.sba-gmc-reviews form.comment-form textarea:focus,.sba-gmc-reviews form.comment-form input:focus{outline:2px solid var(--sba-brand);outline-offset:0;border-color:var(--sba-brand)}
.sba-gmc-reviews .comment-form-cookies-consent{display:flex;gap:8px;align-items:flex-start;justify-content:center;text-align:left}
.sba-gmc-reviews .comment-form-cookies-consent label{display:inline;text-align:left;font-weight:400}
.sba-gmc-reviews form.comment-form .form-submit{text-align:center}
.sba-gmc-reviews form.comment-form input[type="submit"],.sba-gmc-reviews form.comment-form button[type="submit"]{background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;border:none;border-radius:10px;padding:14px 36px;font-size:16px;font-weight:700;min-height:52px;cursor:pointer;float:none}
.sba-gmc-reviews form.comment-form input[type="submit"]:hover,.sba-gmc-reviews form.comment-form button[type="submit"]:hover{filter:brightness(.92)}
.sba-gmc-reviews ol.commentlist{list-style:none;padding:0;margin:22px 0;text-align:center}
.sba-gmc-reviews ol.commentlist li{margin:0 0 18px;padding:16px;border:1px solid var(--sba-line);border-radius:12px;background:var(--sba-soft)}
.sba-gmc-reviews ol.commentlist .comment-text{margin:0}
.sba-gmc-reviews ol.commentlist img.avatar{float:none;margin:0 auto 8px;display:block;border-radius:50%}
.sba-gmc-reviews .star-rating{float:none;margin:6px auto;color:#f59e0b}
.sba-gmc-trust-icon{width:27px;height:27px;color:var(--sba-brand);display:block;margin:0 auto 7px}
.sba-gmc-pad{height:0}
@media(max-width:859px){.sba-gmc-pad{height:calc(76px + env(safe-area-inset-bottom))}}
/* Mobile round (v1.1.2, store owner's direction): compact trust cards
   that still look attractive and trusted, and buy buttons sized so
   Add to Cart + Buy Now sit side by side on the second line (below
   the quantity line) without their text wrapping. The quantity line,
   the two-line buttons and the centered policy line come from the
   v1.1.1 rules above, which apply at every width. */
@media(max-width:859px){
.sba-gmc-trust{gap:8px;margin:14px 0}
.sba-gmc-trust>div{padding:9px 6px 8px;font-size:12px;border-radius:9px;background:var(--sba-soft)}
.sba-gmc-trust-icon{width:20px;height:20px;margin-bottom:4px}
.sba-gmc-trust span{font-size:11px;margin-top:2px}
.sba-gmc-cart form.cart .single_add_to_cart_button,.sba-gmc-cart form.cart .wc-buy-now-btn{font-size:16px;padding:13px 8px}
/* Mobile quantity width (v1.1.6, store owner's direction): the
   quantity selector takes the first grid column, so it is exactly
   as wide as the Add to Cart button below it, instead of shrinking
   to its content on phones. */
.sba-gmc-cart form.cart .quantity,.sba-gmc-cart .woocommerce-variation-add-to-cart .quantity{grid-column:1/2;width:100%}
.sba-gmc-secure{font-size:12px}
.sba-gmc-policies-line{font-size:13px}
}
/* Desktop quantity width: handled by the grid rules in the buy form
   section above (v1.1.4). The v1.1.3 flex-basis approach was removed:
   in a flex row a 50% quantity no longer forces its own line, so the
   buttons climbed up beside it. Grid placement cannot do that. */
.sba-gmc-sticky{--sba-btn-bg:#0f766e;--sba-btn-text:#fff;position:fixed;left:0;right:0;bottom:0;z-index:999;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -4px 16px rgba(0,0,0,.08);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;transition:transform .25s ease}
.sba-gmc-sticky.is-hidden{transform:translateY(110%)}
@media(prefers-reduced-motion:reduce){.sba-gmc-sticky{transition:none}}
.sba-gmc-sticky .p{font-size:18px;font-weight:800;white-space:nowrap}
.sba-gmc-sticky .p small{display:block;font-size:11px;color:#15803d;font-weight:600}
.sba-gmc-sticky .sba-gmc-sticky-btn{flex:1;text-align:center;background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;font-weight:700;font-size:16px;padding:13px;border-radius:10px;text-decoration:none}
@media(min-width:860px){.sba-gmc-sticky{display:none}}
/* Shortcode embeds + product cards (v1.2.0, for Elementor homepages) */
.sba-gmc.sba-gmc-embed{padding:0;background:transparent}
.sba-gmc-embed h2.sba-gmc-title{font-size:26px;line-height:1.25;margin:0 0 8px;font-weight:700}
@media(min-width:860px){.sba-gmc-embed h2.sba-gmc-title{font-size:32px}}
.sba-gmc.sba-gmc-cards-wrap{padding:0;background:transparent}
.sba-gmc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:860px){.sba-gmc-cards{grid-template-columns:repeat(var(--sba-cols,4),1fr);gap:18px}}
.sba-card{border:1px solid var(--sba-line);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:6px}
.sba-card-img{position:relative;display:block}
.sba-card-img img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;display:block}
.sba-card-title{font-size:15px;font-weight:600;margin:2px 0 0;line-height:1.35}
.sba-card-title a{color:var(--sba-ink);text-decoration:none}
.sba-card-rating{margin:0;font-size:13px;color:var(--sba-mut)}
.sba-card-price{margin:auto 0 0;font-size:17px;font-weight:800}
.sba-card-btn{margin-top:0;display:block;text-align:center;background:var(--sba-btn-bg)!important;color:var(--sba-btn-text)!important;font-weight:700;font-size:15px;padding:12px 10px;border-radius:10px;text-decoration:none;min-height:48px;line-height:1.3}
.sba-card-btn:hover{filter:brightness(.92)}
