/* Galaxyboxx shop: product cards, shop and category pages, the product page, notices. WooCommerce blocks. */

/* ---------- Shared ---------- */
.woocommerce-breadcrumb, .wc-block-breadcrumbs{font-size:.8125rem;color:var(--wp--preset--color--muted);margin-block:0 var(--wp--preset--spacing--30)}
.woocommerce-breadcrumb a, .wc-block-breadcrumbs a{color:var(--wp--preset--color--muted);text-decoration:none}
.woocommerce-breadcrumb a:hover, .wc-block-breadcrumbs a:hover{color:var(--wp--preset--color--cyan)}

.gb-shop > *, .gb-product > *{margin-block-start:0}
.gb-shop .wp-block-query-title{margin:0 0 var(--wp--preset--spacing--30)}
.gb-shop .wp-block-term-description{color:#CBD5E1;max-width:80ch;margin-bottom:var(--wp--preset--spacing--40)}

.gb-shop__bar{align-items:center;gap:1rem;margin-bottom:var(--wp--preset--spacing--40);padding:.75rem 1rem;background:var(--wp--preset--color--surface);border:1px solid var(--wp--custom--line);border-radius:var(--wp--custom--radius--medium)}
.gb-shop__bar .woocommerce-result-count{margin:0;color:var(--wp--preset--color--muted);font-size:.875rem}
.gb-shop__bar .woocommerce-ordering{margin:0}
.woocommerce-ordering select, .wc-block-components-sort-select__select{
  appearance:none;padding:.5rem 2.25rem .5rem .75rem;min-height:40px;
  background:var(--wp--preset--color--well) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2300E5FF' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .75rem center;
  color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);font:inherit;font-size:.875rem;
}

/* ---------- Product cards (product collection block) ---------- */
.wc-block-product-template{gap:1.25rem !important;padding:0;margin:0;list-style:none}
.wc-block-product-template .wc-block-product{
  display:flex;flex-direction:column;gap:.625rem;margin:0;padding:.75rem .75rem 1rem;
  background:var(--wp--preset--color--surface);border:1px solid var(--wp--custom--line);border-radius:var(--wp--custom--radius--medium);
  transition:border-color .2s var(--wp--custom--ease), transform .2s var(--wp--custom--ease);
}
.wc-block-product-template .wc-block-product:hover{border-color:rgba(0,229,255,.45);transform:translateY(-2px)}
.wc-block-product-template .wc-block-product > *{margin:0 !important}
.wc-block-product .wc-block-components-product-image{position:relative;background:var(--wp--preset--color--well);border-radius:var(--wp--custom--radius--small);overflow:hidden;aspect-ratio:1}
.wc-block-product .wc-block-components-product-image a{display:block;height:100%}
.wc-block-product .wc-block-components-product-image img{display:block;width:100%;height:100% !important;object-fit:contain !important;padding:.5rem}
.wc-block-product .wp-block-post-title{font-family:var(--wp--preset--font-family--display);font-weight:600;line-height:1.3;letter-spacing:0;flex:1}
.wc-block-product .wp-block-post-title a{color:var(--wp--preset--color--text);text-decoration:none}
.wc-block-product .wp-block-post-title a:hover{color:var(--wp--preset--color--cyan)}
.wc-block-components-product-price, .gb-product .price{font-family:var(--wp--preset--font-family--display);font-weight:700;color:var(--wp--preset--color--cyan)}
.wc-block-components-product-price del, .price del{color:var(--wp--preset--color--muted);font-weight:400;margin-right:.375rem}
.wc-block-components-product-price ins, .price ins{text-decoration:none}
.wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link{display:flex;justify-content:center;width:100%;padding:.625rem 1rem;min-height:44px;align-items:center}
.wc-block-product .wp-block-woocommerce-product-button .added_to_cart{display:block;margin-top:.5rem;text-align:center;font-size:.875rem}
.wc-block-components-product-sale-badge, .wc-block-product .onsale{position:absolute;top:.5rem;right:.5rem;z-index:1;padding:.2rem .5rem;background:var(--wp--preset--color--amber);color:#0F1015;border:0;border-radius:var(--wp--custom--radius--small);font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}

/* Page numbers */
.wp-block-query-pagination{margin-top:var(--wp--preset--spacing--50);gap:.375rem;font-family:var(--wp--preset--font-family--display);font-weight:700}
.wp-block-query-pagination a, .wp-block-query-pagination .current, .wp-block-query-pagination .dots{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .75rem;border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);color:var(--wp--preset--color--text);text-decoration:none}
.wp-block-query-pagination .dots{border-color:transparent}
.wp-block-query-pagination a:hover{border-color:var(--wp--preset--color--cyan);color:var(--wp--preset--color--cyan)}
.wp-block-query-pagination .current{background:var(--wp--preset--color--cyan);border-color:var(--wp--preset--color--cyan);color:var(--wp--preset--color--canvas)}
.wp-block-query-pagination-numbers{display:flex;flex-wrap:wrap;gap:.375rem}

/* ---------- Product page ---------- */
.gb-product__top{gap:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding:var(--wp--preset--spacing--40);background:var(--wp--preset--color--surface);border:1px solid var(--wp--custom--line);border-radius:var(--wp--custom--radius--medium)}
.gb-product__summary > *{margin-block:0 1rem}
.gb-product__summary .wp-block-post-title{font-size:var(--wp--preset--font-size--x-large);margin-bottom:.5rem}
.gb-product__summary .wp-block-post-excerpt{color:#CBD5E1}
.gb-product__summary .wp-block-post-excerpt p{margin:0 0 .5rem}

/* Gallery: one picture until the slider script takes over, so the page does not jump while loading */
.woocommerce-product-gallery{position:relative;opacity:1 !important}
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:nth-child(n+2){display:none}
.woocommerce-product-gallery__wrapper{margin:0}
.woocommerce-product-gallery__image{background:var(--wp--preset--color--well);border-radius:var(--wp--custom--radius--small);overflow:hidden}
.woocommerce-product-gallery__image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;padding:1rem}
.woocommerce-product-gallery .flex-viewport{border-radius:var(--wp--custom--radius--small)}
.woocommerce-product-gallery .flex-control-thumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none}
.woocommerce-product-gallery .flex-control-thumbs li{width:72px;margin:0;float:none}
.woocommerce-product-gallery .flex-control-thumbs img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:var(--wp--preset--color--well);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);opacity:.6;cursor:pointer}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1;border-color:var(--wp--preset--color--cyan)}
.woocommerce-product-gallery__trigger{position:absolute;top:.75rem;right:.75rem;z-index:2;display:grid;place-items:center;width:44px;height:44px;background:rgba(15,16,21,.8);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);text-decoration:none}

/* Buying */
.gb-product .stock{display:inline-block;margin:0 0 1rem;padding:.25rem .625rem;border-radius:var(--wp--custom--radius--small);font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase}
.gb-product .stock.in-stock{background:rgba(52,211,153,.14);color:#6EE7B7}
.gb-product .stock.out-of-stock{background:rgba(255,77,0,.16);color:#FFB199}
.gb-product .stock.available-on-backorder{background:rgba(255,215,0,.14);color:var(--wp--preset--color--gold)}
.gb-product form.cart{display:flex;flex-wrap:wrap;align-items:stretch;gap:.75rem;margin:0 0 1.25rem}
.gb-product form.cart .quantity{margin:0}
.gb-product form.cart .qty{width:5rem;height:100%;min-height:48px;padding:0 .5rem;text-align:center;background:var(--wp--preset--color--well);color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);font:inherit;font-weight:700}
.gb-product form.cart .single_add_to_cart_button{flex:1 1 12rem;min-height:48px;cursor:pointer}
/* Waiting for a choice: readable, but plainly not ready (no see-through text) */
.gb-product form.cart .single_add_to_cart_button.disabled{opacity:1 !important;background:var(--wp--preset--color--well) !important;color:var(--wp--preset--color--muted) !important;outline:1px dashed var(--wp--custom--line-control);outline-offset:-1px;cursor:not-allowed}
.gb-product form.variations_form{display:block}
.gb-product table.variations{width:100%;margin:0 0 1rem;border-collapse:collapse}
.gb-product table.variations :where(th, td){display:block;padding:0;text-align:left}
.gb-product table.variations label{display:block;margin:0 0 .375rem;font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase}
.gb-product table.variations select{width:100%;min-height:48px;margin-bottom:.75rem;padding:0 .75rem;background:var(--wp--preset--color--well);color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);font:inherit}
.gb-product .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:.75rem}
.gb-product .reset_variations{font-size:.875rem}
.wp-block-woocommerce-product-meta{padding-top:1rem;border-top:1px solid var(--wp--custom--line);font-size:.8125rem;color:var(--wp--preset--color--muted)}
.wp-block-woocommerce-product-meta .wp-block-group{gap:.25rem 1.25rem}
.wp-block-woocommerce-product-meta a{color:#CBD5E1}

/* Description and reviews */
.wp-block-woocommerce-product-details{margin-bottom:var(--wp--preset--spacing--50)}
.woocommerce-tabs ul.tabs, .woocommerce-tabs ul.wc-tabs{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin:0 0 1.25rem;padding:0;list-style:none;border-bottom:1px solid var(--wp--custom--line-control)}
.woocommerce-tabs ul.tabs li{margin:0;padding:0;border:0;background:none}
.woocommerce-tabs ul.tabs li a{display:block;padding:.75rem 0;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--wp--preset--color--muted);font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.875rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.woocommerce-tabs ul.tabs li.active a, .woocommerce-tabs ul.tabs li a:hover{color:var(--wp--preset--color--cyan);border-bottom-color:var(--wp--preset--color--cyan)}
.woocommerce-tabs .woocommerce-Tabs-panel{color:#CBD5E1;max-width:80ch}
.woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child{font-size:var(--wp--preset--font-size--medium);color:var(--wp--preset--color--text)}

/* ---------- Notices ---------- */
.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error{
  margin:0 0 var(--wp--preset--spacing--30);padding:.875rem 1rem;list-style:none;
  background:var(--wp--preset--color--surface) !important;color:var(--wp--preset--color--text) !important;
  border:1px solid var(--wp--custom--line-control) !important;border-left:3px solid var(--wp--preset--color--cyan) !important;border-radius:var(--wp--custom--radius--small);
}
.wc-block-components-notice-banner.is-error, .woocommerce-error{border-left-color:#FF8A66 !important}
.wc-block-components-notice-banner.is-success, .woocommerce-message{border-left-color:#34D399 !important}
.wc-block-components-notice-banner a, .woocommerce-message a, .woocommerce-info a{color:var(--wp--preset--color--cyan)}

@media (max-width:781px){
  .wc-block-product-template{gap:.75rem !important}
  .gb-product__top{padding:var(--wp--preset--spacing--30)}
  .gb-shop__bar{padding:.625rem .75rem}
}

/* Phones: two cards across, so a list of products is not one long column */
@media (max-width:600px){
  .wc-block-product-template{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr))}
  .wc-block-product-template .wc-block-product{padding:.5rem .5rem .75rem;max-width:none !important;width:auto !important}
  .wc-block-product .wp-block-post-title{font-size:.9375rem}
}

/* Only the first tab's panel shows until the tab script takes over, so the page does not jump while loading */
.woocommerce-tabs .woocommerce-Tabs-panel ~ .woocommerce-Tabs-panel{display:none}

/* ---------- Product carousel: a product collection with the class gb-carousel ---------- */
.gb-carousel{position:relative}
/* The row is its own scrolling box. Hidden screen-reader text inside a card (a price range, for one) is placed
   absolutely; without this it was measured against the page and made the whole page scroll sideways. */
.gb-carousel .wc-block-product-template{position:relative}
.gb-carousel .wc-block-product-template{
  display:flex !important;flex-wrap:nowrap !important;gap:1.25rem !important;
  overflow-x:auto;overscroll-behavior-x:contain;
  padding:2px 2px .75rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;
}
.gb-carousel .wc-block-product-template > .wc-block-product{flex:0 0 calc((100% - 3 * 1.25rem) / 4) !important;width:auto !important;max-width:none !important;min-width:0;scroll-snap-align:start}
.gb-carousel .wc-block-product:hover{transform:none}
.gb-carousel__nav{display:flex;justify-content:flex-end;gap:.5rem;margin:0 0 .75rem}
.gb-carousel__nav[hidden]{display:none}
.gb-carousel__btn{display:grid;place-items:center;width:44px;height:44px;padding:0;background:var(--wp--preset--color--surface);color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);cursor:pointer}
.gb-carousel__btn--prev svg{transform:rotate(180deg)}
.gb-carousel__btn:hover:not(:disabled){border-color:var(--wp--preset--color--cyan);color:var(--wp--preset--color--cyan)}
.gb-carousel__btn:disabled{color:var(--wp--preset--color--muted);cursor:default;border-color:var(--wp--custom--line)}
@media (max-width:1100px){.gb-carousel .wc-block-product-template > .wc-block-product{flex-basis:calc((100% - 2 * 1.25rem) / 3) !important}}
@media (max-width:781px){.gb-carousel .wc-block-product-template{gap:.75rem !important}.gb-carousel .wc-block-product-template > .wc-block-product{flex-basis:calc((100% - .75rem) / 2) !important}}
@media (max-width:480px){.gb-carousel .wc-block-product-template > .wc-block-product{flex-basis:72% !important}}
@media (prefers-reduced-motion:no-preference){.gb-carousel .wc-block-product-template{scroll-behavior:smooth}}

/* ---------- A row of products with its heading: the same on the home page and every page with a row ---------- */
.gb-rail{margin-block:var(--wp--preset--spacing--50)}
.wp-block-group > .gb-rail:first-child, main > .gb-rail:first-child{margin-block-start:0}
.wp-block-group > .gb-rail:last-child, main > .gb-rail:last-child{margin-block-end:0}
.gb-rail + .gb-rail{margin-block-start:var(--wp--preset--spacing--60)}
.gb-rail__head{display:flex;flex-direction:column;align-items:flex-start;gap:11px;margin-bottom:1rem}
.gb-rail__head > *{margin:0}
.gb-rail__head :where(h2, h3){font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:clamp(22px,2.8vw,32px);line-height:1.12;letter-spacing:-.01em;color:var(--wp--preset--color--text)}
/* the label above a row's heading is the shop's one orange label (.gb-kicker in base.css): a short line in front */
.gb-rail__head .gb-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0;padding:0;border:0;border-radius:0;width:auto;font-family:var(--wp--preset--font-family--body);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:normal;max-width:100%;color:#FF7A40}
.gb-rail__head .gb-eyebrow::before{content:'';flex:none;width:28px;height:2px;background:#FF4D00}


/* ---------- Landing pages: eyebrow line, floating pictures, a buy box for one product ---------- */
.gb-eyebrow{margin:0 0 .25rem;font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wp--preset--color--cyan)}
.gb-floating{gap:var(--wp--preset--spacing--40);margin-block:var(--wp--preset--spacing--40)}
.gb-floating .gb-float{margin:0;flex:0 1 320px}
@media (prefers-reduced-motion:no-preference){
  .gb-float{animation:gb-float 6s ease-in-out infinite}
  .gb-float:nth-child(even){animation-delay:-3s}
}
@keyframes gb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.gb-buy{padding:var(--wp--preset--spacing--40);background:var(--wp--preset--color--surface);border:1px solid var(--wp--custom--line);border-radius:var(--wp--custom--radius--medium)}
.gb-buy form.cart{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0 0}
.gb-buy .qty{width:5rem;min-height:48px;text-align:center;background:var(--wp--preset--color--well);color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);font:inherit;font-weight:700}
.gb-buy .single_add_to_cart_button{flex:1 1 12rem;min-height:48px;cursor:pointer}
.gb-buy table.variations{width:100%;border-collapse:collapse}
.gb-buy table.variations :where(th, td){display:block;padding:0;text-align:left}
.gb-buy table.variations select{width:100%;min-height:48px;margin:.375rem 0 .75rem;padding:0 .75rem;background:var(--wp--preset--color--well);color:var(--wp--preset--color--text);border:1px solid var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--small);font:inherit}
/* Landing page banner: logo above the title */
.gb-page-hero .wp-block-image{margin:0 0 1rem}
.gb-page-hero .wp-block-image img{max-height:110px;width:auto}
.gb-empty{padding:1rem 1.25rem;background:var(--wp--preset--color--surface);border:1px dashed var(--wp--custom--line-control);border-radius:var(--wp--custom--radius--medium);color:var(--wp--preset--color--muted)}
.gb-page-hero :where(h1, h2, p){text-align:left !important}
.gb-page-hero h1 a{color:inherit;text-decoration:none}

/* ---------- Badges over product pictures ---------- */
.gb-badge{position:absolute;top:.5rem;left:.5rem;z-index:1;padding:.2rem .5rem;border-radius:var(--wp--custom--radius--small);font-family:var(--wp--preset--font-family--display);font-weight:700;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;pointer-events:none}
.gb-badge--new{background:var(--wp--preset--color--cyan);color:var(--wp--preset--color--canvas)}
.gb-badge--soldout{background:rgba(15,16,21,.88);color:#FFB199;border:1px solid rgba(255,138,102,.5)}
.wc-block-product:has(.gb-badge--soldout) .wc-block-components-product-image img{opacity:.55}
.wc-block-product:has(.gb-badge--soldout) .wp-block-woocommerce-product-button .wp-block-button__link{background:var(--wp--preset--color--well);color:var(--wp--preset--color--text);outline:1px solid var(--wp--custom--line-control);outline-offset:-1px}
.wc-block-components-product-stock-indicator{font-size:.8125rem;color:var(--wp--preset--color--muted)}
.wc-block-components-product-stock-indicator--in-stock{color:#6EE7B7}
.wc-block-components-product-stock-indicator--out-of-stock{color:#FFB199}

/* Product gallery: hold its final shape from the first paint, so nothing below it moves when the slider starts.
   Every picture sits in a square, and a gallery with more than one picture keeps room for its row of thumbnails. */
.woocommerce-product-gallery .flex-viewport{height:auto !important;aspect-ratio:1}
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)):not(:has(.flex-control-thumbs))::after{content:'';display:block;height:calc(72px + .75rem)}

/* Cards snap into place only once someone has used the carousel. Snapping from the first paint makes the browser
   scroll the row by itself while the page loads, and Chrome then stops measuring when the main content appeared. */
.gb-carousel.is-used .wc-block-product-template{scroll-snap-type:x mandatory}

/* ---------- Product page: tidy edges ---------- */
/* the option box fills its column and its words are not cut off */
.gb-product table.variations :where(th, td), .gb-buy table.variations :where(th, td){width:100%;padding:0 !important;box-sizing:border-box}
.gb-product table.variations select, .gb-buy table.variations select{width:100%;height:48px;margin:0 0 .75rem;padding-block:0;line-height:1.2;box-sizing:border-box}
/* a product sold one at a time has no quantity box: its empty holder no longer pushes the button to the right */
.gb-product form.cart .quantity:has(input[type="hidden"]), .gb-buy form.cart .quantity:has(input[type="hidden"]){display:none !important}
/* related products: room above and below the heading, and cards that read like every other card */
.gb-product .wp-block-woocommerce-product-collection{margin-block-start:var(--wp--preset--spacing--60)}
.gb-product .wp-block-woocommerce-product-collection > :is(h2, h3){margin:0 0 1rem;font-size:clamp(22px,2.8vw,32px);line-height:1.12;letter-spacing:-.01em}
.gb-product .wp-block-woocommerce-product-collection .wc-block-product :is(.wp-block-post-title, .wp-block-woocommerce-product-price, .wc-block-components-product-price){text-align:left !important}
.gb-rail > :last-child, .wp-block-woocommerce-product-collection > :last-child{margin-block-end:0}
/* every "buy" and account button is the same height as the rest */
.gb-product .single_add_to_cart_button, .gb-buy .single_add_to_cart_button{height:48px;min-height:48px;padding-block:0}
.gb-account :is(button, .button){min-height:48px}
main .wc-block-grid__product :is(.wp-block-button__link, .wp-element-button, .button){min-height:44px}
.gb-empty{margin-block-end:0 !important}
.gb-product table.variations :where(tbody, tr), .gb-buy table.variations :where(tbody, tr){display:block;width:100%}
