/*
 Theme Name:   BxPrecision Print
 Theme URI:    https://print.bxprecision.com.au
 Description:  BxPrecision child theme for the 3D printing quote/order system.
 Author:       BxPrecision
 Author URI:   https://bxprecision.com.au
 Template:     twentytwentyfour
 Version:      1.6.8
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  bxprecision-print
*/

/*
 * Colours and typography are set via theme.json — this file only handles
 * things theme.json cannot: plugin overrides, interactive states, login page.
 */

/* Google Fonts: Inter */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  --bx-bg:      #141414;
  --bx-surface: #1e1e1e;
  --bx-card:    #262626;
  --bx-border:  #333;
  --bx-text:    #d4d4d4;
  --bx-muted:   #999;
  --bx-heading: #f0f0f0;
  --bx-orange:  #e07a18;
  --bx-orange-hover: #f28a22;
  --bx-orange-dark:  #c96a10;
  --bx-radius:  6px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--bx-bg);
  color: var(--bx-text);
  -webkit-font-smoothing: antialiased;
}

/* Catch any block that still has a white/light background preset applied */
.has-base-background-color    { background-color: var(--bx-bg) !important; }
.has-base-2-background-color  { background-color: var(--bx-surface) !important; }
.has-contrast-color            { color: var(--bx-heading) !important; }
.has-contrast-2-color          { color: var(--bx-text) !important; }
.has-contrast-3-color          { color: var(--bx-muted) !important; }

/* --------------------------------------------------------------------------
   Header / nav
   -------------------------------------------------------------------------- */

.wp-block-template-part {
  background: transparent;
}

/* Sticky nav bar blur */
header.wp-block-template-part > .wp-block-group {
  background: rgba(20, 20, 20, 0.95) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--bx-border);
}

/* Nav links */
.wp-block-navigation a,
.wp-block-navigation .wp-block-page-list a {
  color: var(--bx-muted) !important;
  transition: color 0.2s;
}
.wp-block-navigation a:hover,
.wp-block-navigation .wp-block-page-list a:hover,
.wp-block-navigation .current-menu-item > a {
  color: var(--bx-heading) !important;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

footer.wp-block-template-part > .wp-block-group {
  border-top: 1px solid var(--bx-border) !important;
}
footer.wp-block-template-part p,
footer.wp-block-template-part li,
footer.wp-block-template-part a {
  color: var(--bx-muted);
}
footer.wp-block-template-part a:hover {
  color: var(--bx-orange);
}

/* Hide WooCommerce sorting dropdown and result count on shop */
.woocommerce-ordering,
.woocommerce-result-count {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Scrollbar
   -------------------------------------------------------------------------- */

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bx-bg); }
::-webkit-scrollbar-thumb { background: #3a3a3a; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #484848; }

/* --------------------------------------------------------------------------
   Upload button restyle
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Reduce wasted vertical space on the quote page
   -------------------------------------------------------------------------- */

/* Shrink the 3D canvas so the quote controls are visible without scrolling */
#p3d-viewer,
.p3d-canvas-wrapper {
  max-height: 300px !important;
  min-height: 180px !important;
}
#p3d-viewer canvas {
  max-height: 300px !important;
  width: 100% !important;
  object-fit: contain;
}

/* Tighten block-level gaps on the quote page */
body.page .wp-site-blocks > *:not(footer) {
  margin-block-start: 0 !important;
}
/* Keep the 64px nav clearance from nav-footer.css — don't zero it */

/* Reduce padding around the post content area */
body.page .wp-block-post-content {
  padding-top: 0 !important;
  padding-bottom: 0.25rem !important;
}

/* Kill top margin on the main content group after header */
body.page .wp-block-group,
body.page .wp-block-post-content.is-layout-constrained {
  margin-block-start: 0 !important;
}

/* Remove spacer blocks on the quote page */
body.page .wp-block-spacer {
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Page title — branded orange, enough top space to clear fixed nav */
body.page .wp-block-post-title,
body.page h1.wp-block-post-title {
  margin-top: 0.25rem !important;
  margin-bottom: 0.5rem !important;
  padding-top: 0 !important;
  color: var(--bx-orange) !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
}

/* Tighten the plugin wrapper */
.p3d-wrapper {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* Stack layout: full-width viewer on top, controls below */
.p3d-wrapper {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
  overflow: visible;
}

/* Override the plugin's float-based column layout */
div.p3d-images {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  /* Neutralise the sticky2 plugin — it adjusts top on scroll, which
     causes the preview to squish under the details panel in our
     stacked single-column layout. */
  top: 0 !important;
}
div.p3d-details {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  position: relative;
  z-index: 1;
}

/* Notices span full width */
.p3d-wrapper .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}

.p3d-images {
  margin-bottom: 0 !important;
}

/* Remove gap under the viewer canvas */
#p3d-viewer {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Compact the plugin's info rows */
.p3d-info {
  margin-top: 3px !important;
  margin-bottom: 3px !important;
}

/* Hide the separate "Upload Model" button — the overlay handles it */
#p3d-pickfiles {
  display: none !important;
}

/* Upload overlay — dock to bottom of canvas */
#p3d-model-message {
  background: none !important;
  opacity: 1 !important;
  filter: none !important;
  padding: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
  margin: 0 !important;
  text-align: center;
  box-sizing: border-box !important;
  overflow: hidden;
}

/* Compact upload prompt — full-width bar docked to bottom */
#p3d-model-message-upload {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.6rem 1.2rem !important;
  margin: 0 !important;
  border: none !important;
  border-top: 1px solid var(--bx-border) !important;
  border-radius: 0 !important;
  background: var(--bx-surface) !important;
  box-sizing: border-box !important;
  transition: border-color 0.25s;
  text-align: center;
  width: 100%;
}

#p3d-model-message-upload:hover {
  border-color: var(--bx-orange) !important;
}

/* Hide the old upload icon */
#p3d-model-message-upload-icon {
  display: none !important;
}

/* Small inline upload icon */
#p3d-model-message-upload::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: var(--bx-orange);
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  flex-shrink: 0;
}

#p3d-model-message-upload-txt {
  color: var(--bx-muted) !important;
  font-size: 0.85rem !important;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   3DPrint Pro plugin — layout fix + dark theme overrides
   -------------------------------------------------------------------------- */

/*
 * Twenty Twenty-Four applies .is-layout-flow / .is-layout-constrained which
 * sets > * + * { margin-block-start } and can override display/float on
 * children.  We neutralise those inside the plugin wrapper so the plugin's
 * own float-based layout works correctly.
 */
#p3d-container,
#p3d-container *,
#p3d-wrapper,
#p3d-wrapper *,
.p3d-wrapper,
.p3d-wrapper * {
  --wp--style--block-gap: 0px;
}

/* Remove WP flow spacing inside the plugin */
#p3d-container.is-layout-flow > *,
#p3d-container .is-layout-flow > *,
#p3d-wrapper.is-layout-flow > *,
#p3d-wrapper .is-layout-flow > *,
.p3d-wrapper.is-layout-flow > *,
.p3d-wrapper .is-layout-flow > * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

/* Prevent WP constrained layout from overriding widths */
#p3d-container .is-layout-constrained > *,
#p3d-wrapper .is-layout-constrained > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Ensure the plugin's inner layout works — override any flex/grid from theme */
#p3d-container,
#p3d-wrapper {
  display: block !important;
}
/* .p3d-wrapper uses grid — see above */

/* Scale/dimensions/rotation rows rely on float:left with % widths */
#p3d-scale-controls,
#p3d-dim-controls,
#p3d-rotation-controls,
#p3d-unit-controls {
  display: block !important;
  overflow: hidden;
  clear: both;
}

#p3d-scale-text,
#p3d-rotation-text,
#p3d-dimensions-text {
  float: left !important;
  width: 20% !important;
  line-height: 30px;
}

#p3d-scale-slider {
  float: left !important;
  width: 50% !important;
  margin-top: 5px;
}

#p3d-scale-input {
  float: left !important;
  width: 30% !important;
  white-space: nowrap;
  display: flex !important;
  align-items: center;
}

#p3d-scale-dimensions,
#p3d-rotation-dimensions {
  float: left !important;
  width: 80% !important;
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
}

/* Dimension inputs */
input.p3d-dim-input,
#scale_x, #scale_y, #scale_z,
#rotation_x, #rotation_y, #rotation_z,
#p3d-slider-range-value {
  width: 3em !important;
  height: 30px !important;
  padding: 0 4px !important;
  box-shadow: none !important;
  display: inline-block !important;
}

/* Clearfix for float containers inside the plugin */
.p3d-info::after,
#p3d-container::after {
  content: "" !important;
  display: table !important;
  clear: both !important;
}

/*
 * The Get-a-Quote page: widen the content column so the plugin isn't
 * squeezed into the 620px default.  Target the post-content block on
 * pages that contain the plugin.
 */
body.page .wp-block-post-content.is-layout-constrained > * {
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.page .wp-block-post-content.is-layout-constrained > .alignwide {
  max-width: var(--wp--style--global--wide-size) !important;
}
body.page .wp-block-post-content.is-layout-constrained > .alignfull {
  max-width: none !important;
}

/* Main containers */
#p3d-container,
#p3d-wrapper,
.p3d-wrapper {
  max-width: 1100px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: var(--bx-text) !important;
  font-family: 'Inter', sans-serif !important;
}

/* Upload / drop zone */
.p3d-images,
#p3d-pickfiles,
.p3d-canvas-wrapper,
#p3d-viewer {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  border-radius: var(--bx-radius) !important;
  color: var(--bx-muted) !important;
}
#p3d-viewer canvas {
  border-color: var(--bx-border) !important;
}

/* Upload message overlay */
#p3d-model-message {
  background-color: var(--bx-card) !important;
  color: var(--bx-text) !important;
}

/* Info / details panels */
.p3d-info,
.p3d-details,
#p3d-stl-info,
#p3d-weight,
#p3d-price {
  color: var(--bx-text) !important;
}

/* Fieldsets */
fieldset.p3d-fieldset {
  border-color: var(--bx-border) !important;
  background: var(--bx-card) !important;
  border-radius: var(--bx-radius) !important;
  color: var(--bx-text) !important;
}
fieldset.p3d-fieldset legend {
  border-color: var(--bx-border) !important;
  color: var(--bx-heading) !important;
  background: var(--bx-card) !important;
}

/* Headings */
#p3d-container h1,
#p3d-container h2,
#p3d-container h3,
#p3d-container h4,
#p3d-container h5 {
  color: var(--bx-heading) !important;
  font-family: 'Inter', sans-serif !important;
}

/* Multi-step accordion */
#p3d-multistep div[data-acc-step]:not(.open) {
  background: var(--bx-surface) !important;
}
#p3d-multistep div[data-acc-step]:not(.open) h5 {
  color: var(--bx-muted) !important;
}
#p3d-multistep div[data-acc-step]:not(.open) .p3d-badge-primary {
  background: var(--bx-border) !important;
}
#p3d-multistep div[data-acc-step].open {
  background: var(--bx-card) !important;
}

/* Tables */
#p3d-container table {
  background: var(--bx-surface) !important;
}
#p3d-container table.p3d-stats th,
#p3d-container table.p3d-stats td {
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}
#p3d-container th {
  background: var(--bx-bg) !important;
  color: var(--bx-muted) !important;
}
#p3d-container td {
  color: var(--bx-text) !important;
}

/* Dropdown lists */
.p3d-dropdown-li {
  background-color: var(--bx-card) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}
ul.p3d-list li:hover {
  background-color: var(--bx-surface) !important;
}
.p3d-selected-li {
  color: var(--bx-orange) !important;
  border-color: var(--bx-orange) !important;
}

/* List group items */
.p3d-list-group-item {
  background-color: var(--bx-card) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}

/* Inputs */
#p3d-container input[type="text"],
#p3d-container input[type="number"],
#p3d-container input[type="email"],
#p3d-container select,
#p3d-container textarea,
.p3d-dropdown-searchable {
  background: var(--bx-surface) !important;
  border: 1px solid var(--bx-border) !important;
  color: var(--bx-heading) !important;
  border-radius: 4px !important;
  font-family: 'Inter', sans-serif !important;
}
#p3d-container input:focus,
#p3d-container select:focus,
#p3d-container textarea:focus {
  outline: none !important;
  border-color: var(--bx-orange) !important;
}

/* Buttons */
#p3d-container input[type="submit"],
#p3d-container button[type="submit"],
#p3d-container .p3d-btn,
.p3d-btn-primary,
.p3d-bulk-button,
.variations_button input[type="submit"],
.single_add_to_cart_button {
  background: var(--bx-orange-dark) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-family: 'Inter', sans-serif !important;
  transition: background 0.2s !important;
  box-shadow: none !important;
  text-shadow: none !important;
  cursor: pointer;
}
#p3d-container input[type="submit"]:hover,
#p3d-container button[type="submit"]:hover,
#p3d-container .p3d-btn:hover,
.p3d-btn-primary:hover,
.p3d-bulk-button:hover,
.variations_button input[type="submit"]:hover,
.single_add_to_cart_button:hover {
  background: var(--bx-orange-hover) !important;
}

/* Price highlight */
#p3d-container [class*="price"],
#p3d-container [id*="price"],
#p3d-container [id*="total"],
.p3d-order-placed {
  color: var(--bx-orange) !important;
  font-weight: 600;
}

/* Plupload file list (bulk uploader) */
#p3d-bulk-uploader_filelist,
.plupload_filelist {
  background: var(--bx-card) !important;
  color: var(--bx-text) !important;
}
.plupload_filelist_header,
.plupload_filelist_footer {
  background: var(--bx-surface) !important;
  color: var(--bx-text) !important;
}
.plupload_filelist li.plupload_delete {
  background: var(--bx-card) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}

/* Bulk stats */
table.p3d-stats-bulk {
  background: var(--bx-card) !important;
  color: var(--bx-text) !important;
}
.p3d-stats-bulk select:disabled,
.p3d-stats-bulk input:disabled {
  background-color: var(--bx-surface) !important;
  color: var(--bx-muted) !important;
}

/* Apply-to-all button */
.p3d-apply-to-all {
  background-color: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}

/* Select2 dropdowns */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background-color: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-heading) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--bx-heading) !important;
}
.select2-dropdown {
  background-color: var(--bx-card) !important;
  border-color: var(--bx-border) !important;
}
.select2-container--default .select2-results__option {
  color: var(--bx-text) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--bx-surface) !important;
  color: var(--bx-heading) !important;
}
.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: var(--bx-surface) !important;
}
.select2-search--dropdown .select2-search__field {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-heading) !important;
}

/* Cutting instructions table */
#p3d-cutting-instructions-table tbody td {
  background-color: var(--bx-surface) !important;
  color: var(--bx-text) !important;
}
#p3d-cutting-instructions-table tbody tr:nth-child(2n) td {
  background-color: var(--bx-card) !important;
}

/* Tooltips */
.p3d-tooltip-info {
  background: var(--bx-card) !important;
  color: var(--bx-text) !important;
}

/* noUiSlider */
.noUi-connect { background: var(--bx-orange) !important; }
.noUi-target  { background: var(--bx-surface) !important; border-color: var(--bx-border) !important; }
.noUi-handle  { background: var(--bx-heading) !important; border-color: var(--bx-border) !important; }

/* Fullscreen viewer */
#p3d-fullscreen {
  background-color: var(--bx-bg) !important;
}

/* WooCommerce overrides for 3D Print product pages */
.woocommerce #p3d-container .quantity .qty {
  background: var(--bx-surface) !important;
  color: var(--bx-heading) !important;
  border-color: var(--bx-border) !important;
}

/* --------------------------------------------------------------------------
   WooCommerce cart & checkout — dark theme
   -------------------------------------------------------------------------- */

/* Inputs, selects, textareas */
.woocommerce input[type="text"],
.woocommerce input[type="number"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="url"],
.woocommerce input[type="password"],
.woocommerce input[type="search"],
.woocommerce select,
.woocommerce textarea,
.woocommerce-cart input[type="text"],
.woocommerce-cart input[type="number"],
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select .wc-block-components-select__container select {
  background: var(--bx-surface) !important;
  border: 1px solid var(--bx-border) !important;
  color: var(--bx-heading) !important;
  border-radius: 4px !important;
}
.wc-block-components-textarea::placeholder {
  color: var(--bx-muted) !important;
}
.woocommerce input:focus,
.woocommerce select:focus,
.woocommerce textarea:focus,
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus {
  background: var(--bx-surface) !important;
  border-color: var(--bx-orange) !important;
  box-shadow: inset 0 0 0 .5px var(--bx-orange) !important;
  color: var(--bx-heading) !important;
  outline: none !important;
}

/* Quantity inputs on cart */
.woocommerce .quantity .qty {
  background: var(--bx-surface) !important;
  color: var(--bx-heading) !important;
  border-color: var(--bx-border) !important;
}

/* Tables (cart items) */
.woocommerce table.shop_table,
.woocommerce-cart table.shop_table {
  background: var(--bx-card) !important;
  border-color: var(--bx-border) !important;
  border-radius: var(--bx-radius) !important;
}
.woocommerce table.shop_table th {
  background: var(--bx-surface) !important;
  color: var(--bx-muted) !important;
  border-color: var(--bx-border) !important;
}
.woocommerce table.shop_table td {
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}
.woocommerce table.shop_table td.product-name a {
  color: var(--bx-heading) !important;
}
.woocommerce table.shop_table td.product-name a:hover {
  color: var(--bx-orange) !important;
}

/* Cart totals / collaterals */
.woocommerce .cart_totals,
.woocommerce .cart-collaterals {
  color: var(--bx-text) !important;
}
.woocommerce .cart_totals h2 {
  color: var(--bx-heading) !important;
}

/* Coupon input area */
.woocommerce .coupon input[type="text"] {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-heading) !important;
}

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.wc-block-cart__submit-button,
.wc-block-components-button {
  background: var(--bx-orange-dark) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-family: 'Inter', sans-serif !important;
  transition: background 0.2s !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button:hover {
  background: var(--bx-orange-hover) !important;
  color: #fff !important;
}

/* Remove item link */
.woocommerce a.remove {
  color: var(--bx-muted) !important;
}
.woocommerce a.remove:hover {
  background: transparent !important;
  color: #e45 !important;
}

/* Notices / messages */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info {
  background: var(--bx-surface) !important;
  border-top-color: var(--bx-orange) !important;
  color: var(--bx-text) !important;
}
.woocommerce .woocommerce-error {
  background: var(--bx-surface) !important;
  border-top-color: #e45 !important;
  color: var(--bx-text) !important;
}
.woocommerce .woocommerce-message a,
.woocommerce .woocommerce-info a {
  color: var(--bx-orange) !important;
}

/* Price / totals */
.woocommerce .cart_totals .order-total .amount,
.woocommerce table.shop_table .product-subtotal,
.woocommerce table.shop_table .amount {
  color: var(--bx-orange) !important;
  font-weight: 600;
}

/* Block-based cart/checkout (WooCommerce Blocks) */
.wc-block-cart .wc-block-components-product-name,
.wc-block-checkout .wc-block-components-product-name {
  color: var(--bx-heading) !important;
}
.wc-block-cart .wc-block-components-product-metadata,
.wc-block-checkout .wc-block-components-product-metadata {
  color: var(--bx-muted) !important;
}
.wc-block-components-totals-wrapper,
.wc-block-components-panel,
.wc-block-components-order-summary {
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}
.wc-block-components-totals-item__value {
  color: var(--bx-orange) !important;
}
.wc-block-components-quantity-selector input {
  background: var(--bx-surface) !important;
  color: var(--bx-heading) !important;
  border-color: var(--bx-border) !important;
}
.wc-block-components-quantity-selector button {
  background: var(--bx-card) !important;
  color: var(--bx-text) !important;
  border-color: var(--bx-border) !important;
}

/* Shipping radio options — dark theme + orange accent */
.wc-block-components-radio-control .wc-block-components-radio-control__input {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
  border-color: var(--bx-orange) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked:before {
  background: var(--bx-orange) !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:focus {
  outline-color: var(--bx-orange) !important;
}
/* Selected option highlight border */
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  box-shadow: inset 0 0 0 1.5px var(--bx-orange) !important;
}
/* Outer border around the radio group */
.wc-block-components-radio-control--highlight-checked:after {
  border-color: var(--bx-border) !important;
}
/* Divider lines between options */
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option:after,
.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option:after {
  background: var(--bx-border) !important;
}

/* Checkout shipping method toggle buttons */
.wc-block-checkout__shipping-method-option {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-text) !important;
}
.wc-block-checkout__shipping-method-option:hover,
.wc-block-checkout__shipping-method-option:focus-within {
  background: var(--bx-card) !important;
}
.wc-block-checkout__shipping-method-option.wc-block-checkout__shipping-method-option--selected {
  background: var(--bx-card) !important;
  border-color: var(--bx-orange) !important;
}
.wc-block-checkout__shipping-method-option-icon {
  fill: var(--bx-orange) !important;
}

/* Address card (shipping/billing summary) */
.wc-block-components-address-card,
.wc-block-components-address-card address,
.wc-block-components-address-card__address-section,
.wc-block-components-address-card__address-section--secondary {
  color: var(--bx-text) !important;
}
.wc-block-components-address-card .wc-block-components-address-card__edit {
  color: var(--bx-orange) !important;
}

/* --------------------------------------------------------------------------
   Material Guide — matches bxprecision.com.au/3d-printing grid
   -------------------------------------------------------------------------- */

.material-guide {
  max-width: 1100px !important;
  width: 100% !important;
  margin: 0 auto 0 !important;
  margin-block-start: 0 !important;
  padding: 0;
  clear: both;
}

.material-guide-heading {
  font-size: 1.3rem !important;
  font-weight: 700;
  color: var(--bx-heading) !important;
  margin-bottom: 1rem;
}

.materials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.material-card {
  background: var(--bx-card);
  border: 1px solid var(--bx-border);
  padding: 1.25rem;
  border-radius: 6px;
}

.material-card h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--bx-heading);
  margin: 0 0 0.25rem;
}

.material-card .material-rec {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--bx-orange);
  margin: 0 0 0.5rem;
}

.material-card p {
  font-size: 0.82rem;
  color: var(--bx-muted);
  margin: 0;
  line-height: 1.5;
}

.material-guide-summary {
  margin-top: 1.25rem;
  padding: 1rem 1.25rem;
  background: var(--bx-surface);
  border: 1px solid var(--bx-border);
  border-radius: 6px;
}

.material-guide-summary p {
  font-size: 0.88rem;
  color: var(--bx-text);
  margin: 0;
  line-height: 1.6;
}

.material-guide-summary strong {
  color: var(--bx-heading);
}

.material-guide-note {
  margin-top: 0.75rem !important;
  font-size: 0.85rem;
  color: var(--bx-muted);
}

.material-guide-note a {
  color: var(--bx-orange);
  text-decoration: none;
  font-weight: 600;
}

.material-guide-note a:hover {
  color: var(--bx-orange-hover);
  text-decoration: underline;
}

@media (max-width: 768px) {
  .materials-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .materials-grid {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Lead-time notice banner
   -------------------------------------------------------------------------- */

.bxp-lead-time-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  max-width: 1100px;
  margin: 70px auto 0;          /* 70px clears the fixed nav */
  padding: 0.75rem 1.25rem;
  background: var(--bx-surface);
  border: 1px solid var(--bx-orange-dark);
  border-left: 4px solid var(--bx-orange);
  border-radius: var(--bx-radius);
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--bx-text);
}

.bxp-lead-time-banner .bxp-lead-time-icon {
  color: var(--bx-orange);
  font-size: 1.15rem;
  line-height: 1.4;
  flex-shrink: 0;
}

.bxp-lead-time-banner strong {
  color: var(--bx-heading);
}

.bxp-lead-time-banner a {
  color: var(--bx-orange);
  text-decoration: none;
  font-weight: 600;
}

.bxp-lead-time-banner a:hover {
  color: var(--bx-orange-hover);
  text-decoration: underline;
}

@media (max-width: 1140px) {
  .bxp-lead-time-banner {
    margin-left: 1rem;
    margin-right: 1rem;
  }
}

/* --------------------------------------------------------------------------
   Login page
   -------------------------------------------------------------------------- */

body.login {
  background: var(--bx-bg) !important;
  font-family: 'Inter', sans-serif !important;
}
body.login #login {
  background: var(--bx-card);
  border: 1px solid var(--bx-border);
  border-radius: var(--bx-radius);
  padding: 2rem;
  margin-top: 80px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.5);
}
body.login h1 a {
  background-image: none !important;
  width: auto !important;
  height: auto !important;
  text-indent: 0 !important;
  display: block;
  text-align: center;
  font-family: 'Inter', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--bx-heading);
  text-decoration: none;
  letter-spacing: -0.01em;
}
body.login .input {
  background: var(--bx-surface) !important;
  border-color: var(--bx-border) !important;
  color: var(--bx-heading) !important;
  border-radius: 4px !important;
  font-family: 'Inter', sans-serif !important;
}
body.login #wp-submit {
  background: var(--bx-orange-dark) !important;
  border: none !important; box-shadow: none !important; text-shadow: none !important;
  font-weight: 600 !important; border-radius: 4px !important;
  width: 100%; padding: 0.85rem !important;
  font-family: 'Inter', sans-serif !important;
  transition: background 0.2s !important;
}
body.login #wp-submit:hover { background: var(--bx-orange-hover) !important; }
body.login #nav a,
body.login #backtoblog a { color: var(--bx-orange) !important; }
body.login .message { background: var(--bx-surface) !important; border-color: var(--bx-border) !important; color: var(--bx-text) !important; }
