/* Waypoint component layer. Overrides the parent's markup (classes kept from its header/footer/
   templates) and WooCommerce classic templates. Tokens come from tokens.css.
   Written before seeing staging: the parent's own CSS values were not readable in the audit, so a
   few selectors carry !important where the parent is known to use it (buttons, header colors).
   Expect a tuning pass after the Phase 1 review. */

/* ---------- Layout ------------------------------------------------------------------------ */
.container { max-width: var(--wp-max); padding-left: var(--wp-gutter); padding-right: var(--wp-gutter); margin-left: auto; margin-right: auto; }
.waypoint-narrow, .entry-content > *:not(.alignwide):not(.alignfull) { max-width: var(--wp-narrow); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.skip-link:focus { position: fixed; top: var(--wp-space-1); left: var(--wp-space-1); z-index: 100000; width: auto; height: auto; clip: auto; padding: var(--wp-space-1) var(--wp-space-2); background: var(--wp-charcoal); color: var(--wp-cream); font-family: var(--wp-font-ui); }

/* Parent decoration we do not want, in case any template still emits it. */
#loading-area, #back2Top, .newsletter-area, .bdcrmbox, .breadcrumbbox, .ht-site-description { display: none !important; }

/* ---------- Header (child markup, see header.php) ---------------------------------------- */
header.waypoint-header { display: block; position: relative !important; top: auto; left: auto; width: 100%; height: auto !important; min-height: 0; padding: 0; margin: 0; background: var(--wp-bg-dark) !important; background-image: none !important; color: var(--wp-text-on-dark); border-bottom: var(--wp-rule-w) solid var(--wp-accent); box-shadow: none; z-index: 50; }
.waypoint-header__inner { display: flex !important; flex-direction: row; align-items: center; gap: var(--wp-space-3); min-height: 72px; padding-top: var(--wp-space-1); padding-bottom: var(--wp-space-1); }
.waypoint-header__brand { flex: 0 0 auto; display: flex; align-items: center; }
.waypoint-header__title { margin: 0; font-family: var(--wp-font-display); font-weight: 500; font-size: 1.75rem; text-transform: uppercase; letter-spacing: var(--wp-tracking-display); line-height: 1; }
.waypoint-header__title a { color: var(--wp-cream); text-decoration: none; }
.waypoint-header__title a:hover, .waypoint-header__title a:focus { color: var(--wp-cream); }
.waypoint-header .custom-logo-link { display: inline-block; line-height: 0; max-width: none; }
.waypoint-header img.custom-logo, .waypoint-header .custom-logo-link img { display: block; height: 56px !important; width: auto !important; max-width: none !important; max-height: 56px !important; margin: 0; }
.waypoint-logo { display: inline-block; line-height: 0; }
/* Woo's `.woocommerce-page img { height:auto; max-width:100% }` out-specifies a bare class, hence the id and !important. */
#masthead .waypoint-logo__lockup { display: block; height: 64px !important; width: auto !important; max-width: none !important; }
#masthead .waypoint-logo__mark { display: none !important; }
@media (max-width: 767px) { #masthead .waypoint-logo__lockup { height: 48px !important; } }

.waypoint-nav { flex: 1 1 auto; }
.waypoint-nav ul { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-wrap: wrap; align-items: center; gap: 0 var(--wp-space-3); float: none; text-align: left; }
.waypoint-nav li { position: relative; margin: 0 !important; padding: 0 !important; float: none !important; display: block; list-style: none !important; }
.waypoint-nav li::before, .waypoint-nav li::after { display: none !important; }
.waypoint-nav a { display: inline-block; float: none; padding: var(--wp-space-1) 0; font-family: var(--wp-font-ui); font-weight: 500; font-size: var(--wp-text-base); letter-spacing: var(--wp-tracking-ui); color: var(--wp-cream); text-decoration: none; border-bottom: 2px solid transparent; transition: border-color var(--wp-ease), color var(--wp-ease); }
.waypoint-nav a:hover, .waypoint-nav a:focus, .waypoint-nav .current-menu-item > a, .waypoint-nav .current-menu-ancestor > a, .waypoint-nav .current_page_item > a { color: var(--wp-cream); border-bottom-color: var(--wp-accent); }
.waypoint-nav .sub-menu, .waypoint-nav .children { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; flex-direction: column; align-items: stretch; gap: 0; background: var(--wp-charcoal); border-top: 2px solid var(--wp-accent); padding: var(--wp-space-1) 0; }
.waypoint-nav li:hover > .sub-menu, .waypoint-nav li:focus-within > .sub-menu, .waypoint-nav li:hover > .children, .waypoint-nav li:focus-within > .children { display: flex; }
.waypoint-nav .sub-menu a, .waypoint-nav .children a { display: block; padding: var(--wp-space-1) var(--wp-space-2); border-bottom: 0; }
.waypoint-nav .sub-menu a:hover, .waypoint-nav .children a:hover { background: rgba(245, 243, 239, 0.08); }

.waypoint-header__actions { display: flex; align-items: center; gap: var(--wp-space-2); margin-left: auto; }
.waypoint-cart-link { font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-cream); text-decoration: none; white-space: nowrap; border-bottom: 2px solid transparent; padding: var(--wp-space-1) 0; }
.waypoint-cart-link:hover, .waypoint-cart-link:focus { color: var(--wp-cream); border-bottom-color: var(--wp-accent); }
.waypoint-header__cta { white-space: nowrap; }

.waypoint-nav-toggle { display: none; align-items: center; gap: var(--wp-space-1); margin-left: auto; padding: var(--wp-space-1) !important; background: transparent !important; border: 2px solid transparent !important; color: var(--wp-cream) !important; font-family: var(--wp-font-ui) !important; font-weight: 500 !important; font-size: var(--wp-text-base) !important; cursor: pointer; border-radius: var(--wp-radius) !important; box-shadow: none !important; }
.waypoint-nav-toggle:hover, .waypoint-nav-toggle:focus-visible { border-color: var(--wp-accent) !important; background: transparent !important; color: var(--wp-cream) !important; }
.waypoint-nav-toggle__bars { display: inline-flex; flex-direction: column; justify-content: space-between; width: 22px; height: 16px; }
.waypoint-nav-toggle__bars i { display: block; height: 2px; background: var(--wp-cream); transition: transform var(--wp-ease), opacity var(--wp-ease); }
.waypoint-header.is-open .waypoint-nav-toggle__bars i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.waypoint-header.is-open .waypoint-nav-toggle__bars i:nth-child(2) { opacity: 0; }
.waypoint-header.is-open .waypoint-nav-toggle__bars i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 991px) {
  .waypoint-header__inner { flex-wrap: wrap; gap: var(--wp-space-2); }
  /* Parent's mobile rule `nav{overflow:hidden;height:100%;overflow-y:auto;background:#000;border-radius:5px}`
     (style.min.css, VERIFIED 2026-09-09) turns any <nav> into a small black scroll box. Neutralise. */
  nav.waypoint-nav { position: static !important; top: auto !important; left: auto !important; height: auto !important; max-height: none !important; overflow: visible !important; background: transparent !important; border-radius: 0 !important; }
  .waypoint-nav-toggle { display: inline-flex; order: 2; }
  .waypoint-header__actions { order: 3; margin-left: 0; }
  .waypoint-header .waypoint-header__cta { display: none; }   /* outranks the later .waypoint-btn display rule */
  .waypoint-nav { display: none; order: 4; flex: 0 0 100%; padding: var(--wp-space-1) 0 var(--wp-space-2); border-top: 1px solid rgba(245, 243, 239, 0.15); }
  .waypoint-header.is-open .waypoint-nav { display: block; }
  /* The parent's mobile nav rules also target bare ul/li/a: absolute-positioned list, padded links
     with !important (VERIFIED 2026-09-09: links painted at the screen edge, nav 25px tall). */
  nav.waypoint-nav ul, nav.waypoint-nav .menu > ul { position: static !important; top: auto !important; left: auto !important; width: auto !important; height: auto !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; transform: none !important; opacity: 1 !important; visibility: visible !important; background: transparent !important; flex-direction: column; align-items: stretch; gap: 0; }
  nav.waypoint-nav li { position: static !important; display: block !important; width: auto !important; }
  nav.waypoint-nav a { display: block !important; position: static !important; padding: 12px 0 !important; margin: 0 !important; font-size: var(--wp-text-md) !important; font-weight: 500 !important; line-height: 1.3 !important; color: var(--wp-cream) !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid rgba(245, 243, 239, 0.1) !important; text-transform: none !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
  nav.waypoint-nav a:hover, nav.waypoint-nav a:focus, nav.waypoint-nav .current-menu-item > a { border-bottom-color: var(--wp-accent) !important; }
  .waypoint-nav .sub-menu, .waypoint-nav .children { display: flex; position: static; min-width: 0; border-top: 0; padding: 0 0 0 var(--wp-space-2); }
}

/* ---------- Buttons ----------------------------------------------------------------------- */
/* Primary CTA: orange fill, bold charcoal >= 18.66px (3.3:1 passes only as large text).
   The bare `button` selector uses :where() so its exclusions add no specificity (a chain of :not()
   reached (0,6,1) and beat .waypoint-nav-toggle, VERIFIED on staging 2026-09-09). */
.button, button:where(:not(.js-nav-toggle, .plus, .minus, [class*="pswp"], .select2-selection__clear, .waypoint-nav-toggle)), input[type="submit"], input[type="button"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce .checkout-button, .woocommerce #place_order,
.wp-block-button__link, .waypoint-btn {
  display: inline-block; box-sizing: border-box;
  background: var(--wp-orange) !important; color: var(--wp-charcoal) !important;
  font-family: var(--wp-font-ui) !important; font-weight: 700 !important; font-size: var(--wp-text-cta) !important; line-height: 1.2;
  letter-spacing: var(--wp-tracking-ui); text-transform: none; text-decoration: none !important;
  padding: 14px 24px !important; border: 2px solid var(--wp-orange) !important; border-radius: var(--wp-radius) !important;
  cursor: pointer; transition: background-color var(--wp-ease), border-color var(--wp-ease), color var(--wp-ease);
  box-shadow: none !important;
}
.button:hover, .button:focus, button:where(:not(.js-nav-toggle, .plus, .minus, [class*="pswp"], .select2-selection__clear, .waypoint-nav-toggle)):hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #place_order:hover,
.wp-block-button__link:hover, .waypoint-btn:hover {
  background: var(--wp-orange-deep) !important; border-color: var(--wp-orange-deep) !important; color: var(--wp-cream) !important;
}
/* Secondary: outlined charcoal. Applied to Add to cart when Buy Now is present, and to .waypoint-btn--secondary. */
.waypoint-btn--secondary, .woocommerce div.product form.cart .single_add_to_cart_button:not(.waypoint-buy-now) {
  background: transparent !important; color: var(--wp-charcoal) !important; border-color: var(--wp-charcoal) !important;
}
.waypoint-btn--secondary:hover, .woocommerce div.product form.cart .single_add_to_cart_button:not(.waypoint-buy-now):hover {
  background: var(--wp-charcoal) !important; color: var(--wp-cream) !important; border-color: var(--wp-charcoal) !important;
}
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled],
.woocommerce .single_add_to_cart_button.disabled, .woocommerce .single_add_to_cart_button.wc-variation-selection-needed {
  opacity: 0.45; cursor: not-allowed;
}
/* Quantity (Jacques 2026-11-02): keep the parent +/- buttons, small and neutral; hide the browser's spinner arrows. */
form.cart .quantity .plus, form.cart .quantity .minus { background: var(--wp-sand); color: var(--wp-charcoal); border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius); font-family: var(--wp-font-ui); width: 36px; height: 40px; cursor: pointer; }
input.qty[type="number"] { -moz-appearance: textfield; appearance: textfield; }
input.qty[type="number"]::-webkit-inner-spin-button, input.qty[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- Forms ------------------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], input[type="url"], textarea, select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single {
  font-family: var(--wp-font-body); font-size: var(--wp-text-base); color: var(--wp-charcoal);
  background: var(--wp-white); border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius);
  padding: 10px 12px; min-height: 44px; box-shadow: none; transition: border-color var(--wp-ease);
}
input:focus, textarea:focus, select:focus { border-color: var(--wp-orange); outline: none; }
.woocommerce form .form-row label, form.cart label, .qty-label { font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-charcoal); }
.woocommerce form .form-row .required { color: var(--wp-orange-deep); }

/* ---------- Page title band (parent .page-main-header) ----------------------------------- */
.page-main-header { background: var(--wp-sand) !important; background-image: none !important; padding: var(--wp-space-5) 0; text-align: left; }
.page-main-header .ht-main-title { color: var(--wp-charcoal) !important; margin: 0; }
.page-main-header .h_titlebx, .page-main-header .container { background: transparent !important; border-radius: 0; padding-top: 0; padding-bottom: 0; }   /* parent paints .h_titlebx dark green (VERIFIED 2026-09-09) */
#innerpage-box, .innerpage-whitebox, .inner_contentbox { background: transparent !important; box-shadow: none !important; }
main#content, main#innerpage-box { padding-top: var(--wp-space-5); padding-bottom: var(--wp-space-8); }
.waypoint-home { padding: 0; }

/* ---------- Topographic contour pattern (decision 2026-09-09: hero, sand sections, footer) ---- */
/* Seamless 800px SVG tile, index contours every 5th line at 1.8px, others 0.8px. Drawn on a
   pseudo-element so opacity is independent of the content; scrolls with the page (no parallax). */
.waypoint-topo { position: relative; isolation: isolate; }
.waypoint-topo::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("/wp-content/themes/waypoint/img/topo-tile.svg") 0 0 / 800px 800px repeat; opacity: var(--wp-topo-opacity, 0.10); }
.waypoint-topo--dark::before { background-image: url("/wp-content/themes/waypoint/img/topo-tile-cream.svg"); opacity: var(--wp-topo-opacity-dark, 0.14); }

/* Hero: charcoal band, cream text, contour overlay. Phase 2 builds Home's hero as a Group block
   with this style (or the class waypoint-hero). */
.waypoint-hero, .wp-block-group.is-style-waypoint-hero { background-color: var(--wp-charcoal); color: var(--wp-cream); padding: var(--wp-space-8) 0; }
.waypoint-hero h1, .waypoint-hero h2, .waypoint-hero p, .wp-block-group.is-style-waypoint-hero h1, .wp-block-group.is-style-waypoint-hero h2, .wp-block-group.is-style-waypoint-hero p { color: var(--wp-cream); }
.waypoint-hero .waypoint-muted, .wp-block-group.is-style-waypoint-hero small { color: var(--wp-sand); }

/* ---------- Page content layout (no theme.json: constrain block content ourselves) ------------ */
/* Front page and page content: everything is centred to the content width except the full-bleed
   bands (hero, sand) which stretch and constrain their own children. */
main#content.waypoint-home, .waypoint-home { padding-top: 0 !important; padding-bottom: var(--wp-space-8); }   /* main#content out-specifies a bare class */
.waypoint-home > *, .entry-content > *, #content-box > * { max-width: var(--wp-max); margin-left: auto; margin-right: auto; padding-left: var(--wp-gutter); padding-right: var(--wp-gutter); box-sizing: border-box; }
.waypoint-home > * + *, .entry-content > * + * { margin-top: var(--wp-space-3); }
.waypoint-home > h2, .entry-content > h2 { margin-top: var(--wp-space-6); }
.waypoint-home > .is-style-waypoint-hero, .waypoint-home > .is-style-waypoint-alt, .entry-content > .is-style-waypoint-hero, .entry-content > .is-style-waypoint-alt, .waypoint-home > .alignfull, .entry-content > .alignfull { max-width: none; padding-left: 0; padding-right: 0; }
.is-style-waypoint-hero > *, .is-style-waypoint-alt > * { max-width: var(--wp-max); margin-left: auto; margin-right: auto; padding-left: var(--wp-gutter); padding-right: var(--wp-gutter); box-sizing: border-box; }
.is-style-waypoint-hero > * + *, .is-style-waypoint-alt > * + * { margin-top: var(--wp-space-2); }
.waypoint-home > .is-style-waypoint-hero:first-child { margin-top: 0; }
.is-style-waypoint-hero h1 { max-width: 24ch; }
.is-style-waypoint-hero p { max-width: var(--wp-narrow); font-size: var(--wp-text-md); }
.waypoint-home .wp-block-buttons, .entry-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--wp-space-2); }
.wp-block-buttons > .wp-block-button { margin: 0; }

/* Secondary (outline) button: the style class sits on the wrapper div, the CTA rule on the link. */
.wp-block-button.is-style-outline .wp-block-button__link, .wp-block-button.waypoint-btn--secondary .wp-block-button__link { background: transparent !important; color: var(--wp-charcoal) !important; border-color: var(--wp-charcoal) !important; }
.wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-button.waypoint-btn--secondary .wp-block-button__link:hover { background: var(--wp-charcoal) !important; color: var(--wp-cream) !important; }
.is-style-waypoint-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp-cream) !important; border-color: var(--wp-cream) !important; }
.is-style-waypoint-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp-cream) !important; color: var(--wp-charcoal) !important; }

/* ---------- Cards / blocks -------------------------------------------------------------- */
/* Parent style.css paints every H2 inside a Group block yellow with a red ::before outline
   (`.wp-block-group__inner-container h2 {background:#e2a822}` + `::before{border:1px solid #d33}`,
   VERIFIED 2026-09-09). Reset so block headings inherit the token styles. */
.wp-block-group__inner-container h2, .wp-block-group h2, .entry-content h2, .waypoint-home h2 { background: transparent !important; padding-top: 0; padding-bottom: 0; position: static; margin-bottom: var(--wp-space-2); font-size: var(--wp-h2) !important; }   /* parent forces 20px !important below 1200px */
.wp-block-group__inner-container h2::before, .wp-block-group h2::before, .entry-content h2::before, .waypoint-home h2::before { content: none !important; border: 0 !important; display: none !important; }
.wp-block-group__inner-container h2::after, .entry-content h2::after { content: none !important; display: none !important; }
.waypoint-card, .wp-block-group.is-style-waypoint-card { background: var(--wp-white); border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius-card); padding: var(--wp-space-3); }
.waypoint-section-alt, .wp-block-group.is-style-waypoint-alt { background: var(--wp-sand); padding: var(--wp-space-6) 0; }
.wp-block-cover .wp-block-cover__inner-container h1, .wp-block-cover h2 { color: var(--wp-cream); }
.wp-block-cover { border-radius: var(--wp-radius-img); }

/* ---------- Spec table ------------------------------------------------------------------- */
.waypoint-spec-table, .woocommerce table.shop_attributes { width: 100%; border-collapse: collapse; border: var(--wp-border-w) solid var(--wp-sand); font-size: var(--wp-text-base); }
.waypoint-spec-table th, .woocommerce table.shop_attributes th { font-family: var(--wp-font-ui); font-weight: 500; text-align: left; padding: var(--wp-space-1) var(--wp-space-2); width: 34%; color: var(--wp-charcoal); background: transparent; }
.waypoint-spec-table td, .woocommerce table.shop_attributes td { padding: var(--wp-space-1) var(--wp-space-2); font-style: normal; }
.waypoint-spec-table tr:nth-child(even) > *, .woocommerce table.shop_attributes tr:nth-child(even) > * { background: var(--wp-sand); color: var(--wp-charcoal); }
.woocommerce table.shop_attributes td p { margin: 0; }

/* ---------- WooCommerce: shop grid ------------------------------------------------------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--wp-space-3); margin: 0; padding: 0; list-style: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; background: var(--wp-white); border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius-card); overflow: hidden; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { border-radius: 0; margin: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product h2 { font-family: var(--wp-font-ui); font-weight: 500; font-size: var(--wp-text-md); text-transform: none; letter-spacing: var(--wp-tracking-ui); padding: var(--wp-space-2) var(--wp-space-2) 0; color: var(--wp-charcoal); }
.woocommerce ul.products li.product .price { font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-charcoal); padding: 0 var(--wp-space-2); font-size: var(--wp-text-base); }
.woocommerce ul.products li.product .button { margin: var(--wp-space-2); align-self: flex-start; }
.woocommerce ul.products li.product .star-rating, .woocommerce ul.products li.product .onsale { display: none; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { display: none; }   /* thin archive: 4 products */

/* ---------- WooCommerce: single product -------------------------------------------------- */
.woocommerce div.product .product_title { font-family: var(--wp-font-display); text-transform: uppercase; font-size: var(--wp-h2); letter-spacing: var(--wp-tracking-display); color: var(--wp-charcoal); margin-bottom: var(--wp-space-2); }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce div.product .woocommerce-variation-price .price { font-family: var(--wp-font-ui); font-weight: 500; font-size: var(--wp-text-lg); color: var(--wp-charcoal); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--wp-charcoal); }
.woocommerce div.product div.images img, .woocommerce div.product div.images .woocommerce-product-gallery__image, .woocommerce div.product div.images .flex-control-thumbs img { border-radius: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; outline: 2px solid var(--wp-orange); }
.woocommerce div.product .woocommerce-product-rating, .woocommerce div.product .product_meta { display: none; }

/* Variations table */
.woocommerce div.product form.cart table.variations { border: 0; margin-bottom: var(--wp-space-2); }
.woocommerce div.product form.cart table.variations th.label { font-family: var(--wp-font-ui); font-weight: 500; padding: var(--wp-space-1) var(--wp-space-2) var(--wp-space-1) 0; vertical-align: middle; white-space: nowrap; }
.woocommerce div.product form.cart table.variations td.value { padding: var(--wp-space-1) 0; }
.woocommerce div.product form.cart table.variations select { width: 100%; max-width: 360px; }
.woocommerce div.product form.cart .reset_variations { font-size: var(--wp-text-sm); color: var(--wp-orange-deep); }
.woocommerce div.product form.cart .woocommerce-variation-description { color: var(--wp-charcoal); }

/* Availability line (our filtered text) */
.woocommerce div.product .stock, .woocommerce div.product p.stock { font-family: var(--wp-font-ui); font-weight: 500; font-size: var(--wp-text-base); }
.woocommerce div.product .stock.in-stock { color: var(--wp-charcoal); }
.woocommerce div.product .stock.available-on-backorder, .woocommerce div.product .stock.out-of-stock { color: var(--wp-orange-deep); }

/* Button row: Add to cart (secondary) + Buy Now (primary) */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart, .woocommerce div.product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp-space-1) var(--wp-space-2); }
.woocommerce div.product form.cart .price-info, .woocommerce div.product form.cart .qty-label { flex: 0 0 100%; }
.woocommerce div.product form.cart .price-info:empty, .woocommerce div.product form.cart .total-price:empty { display: none; }
.woocommerce div.product form.cart div.quantity { display: inline-flex; align-items: center; margin: 0 !important; float: none !important; }
.woocommerce div.product form.cart div.quantity .qty { width: 64px; text-align: center; min-height: 40px; border-radius: 0; }
.woocommerce div.product form.cart .button { margin: 0 !important; float: none !important; }
.waypoint-buy-now { order: 3; }

/* Lead-time notice — sand panel with an orange rule. Product placement is directly above the buttons. */
.waypoint-lead-time { flex: 0 0 100%; box-sizing: border-box; margin: 0 0 var(--wp-space-2); padding: var(--wp-space-2) var(--wp-space-3); background: var(--wp-sand); border-left: var(--wp-rule-w) solid var(--wp-orange); border-radius: 0 var(--wp-radius) var(--wp-radius) 0; color: var(--wp-charcoal); font-size: var(--wp-text-base); }
.waypoint-lead-time p { margin: 0; }
.waypoint-lead-time p + p { margin-top: var(--wp-space-1); }
.waypoint-lead-time--cart, .waypoint-lead-time--checkout { margin-bottom: var(--wp-space-3); }

/* Compliance line */
.waypoint-compliance { font-size: var(--wp-text-sm); line-height: 1.5; }
.waypoint-compliance--product { color: var(--wp-grey); border-top: var(--wp-border-w) solid var(--wp-sand); padding-top: var(--wp-space-2); margin: var(--wp-space-5) 0 0; }
.waypoint-compliance--footer { color: var(--wp-sand); margin: var(--wp-space-1) 0 0; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 var(--wp-space-3); border-bottom: var(--wp-border-w) solid var(--wp-sand); display: flex; gap: var(--wp-space-3); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-grey); padding: var(--wp-space-1) 0; border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp-charcoal); border-bottom-color: var(--wp-orange); }
/* Hide only WooCommerce's own tab heading (first child), never the description's first section heading. */
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* ---------- WooCommerce: notices, cart, checkout ----------------------------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice { background: var(--wp-sand); color: var(--wp-charcoal); border-top: var(--wp-rule-w) solid var(--wp-orange); border-radius: 0 0 var(--wp-radius) var(--wp-radius); font-family: var(--wp-font-body); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--wp-orange-deep); }
.woocommerce-error { border-top-color: var(--wp-orange-deep); }
.woocommerce-error::before { color: var(--wp-orange-deep); }

.woocommerce table.shop_table { border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius-card); border-collapse: separate; }
.woocommerce table.shop_table th { font-family: var(--wp-font-ui); font-weight: 500; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: var(--wp-border-w) solid var(--wp-sand); }
.woocommerce table.shop_table img { border-radius: 0; }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout #order_review_heading, .woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font-family: var(--wp-font-ui); font-size: var(--wp-h3); text-transform: none; letter-spacing: var(--wp-tracking-ui); }
.woocommerce .cart-collaterals .cross-sells, .woocommerce .cart-collaterals .up-sells, .woocommerce .related.products, .woocommerce .upsells.products { display: none !important; }   /* no upsells at launch */
.woocommerce-checkout #payment { background: var(--wp-white); border: var(--wp-border-w) solid var(--wp-sand); border-radius: var(--wp-radius-card); }
.woocommerce-checkout #payment div.payment_box { background: var(--wp-sand); color: var(--wp-charcoal); }
.woocommerce-checkout #payment div.payment_box p, .woocommerce-checkout #payment div.payment_box small { color: var(--wp-charcoal); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--wp-sand); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--wp-sand); }
.woocommerce a.remove { color: var(--wp-orange-deep) !important; }
.woocommerce a.remove:hover { background: var(--wp-orange-deep) !important; color: var(--wp-cream) !important; }

/* ---------- Footer ------------------------------------------------------------------------ */
.footer-area { background: var(--wp-bg-dark) !important; background-image: none !important; color: var(--wp-text-on-dark); }
.footer-area .bottom-area, .footer-area .fbox, .footer-area .container, .footer-area .single-footer { background: transparent !important; background-image: none !important; }
.footer-area { padding: var(--wp-space-6) 0 var(--wp-space-4); border-top: var(--wp-rule-w) solid var(--wp-accent); margin-top: var(--wp-space-8); }
.footer-area .fbox .row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--wp-space-4); }
.footer-area .s-footer { width: auto !important; float: none !important; padding: 0; }
.footer-area .single-footer h2, .footer-area .single-footer h3, .footer-area .widget-title { font-family: var(--wp-font-ui); font-size: var(--wp-text-md); text-transform: uppercase; letter-spacing: 0.04em; color: var(--wp-cream); margin-bottom: var(--wp-space-2); }
.footer-area, .footer-area p, .footer-area li { color: var(--wp-cream); }
.footer-area a { color: var(--wp-cream); text-decoration: none; border-bottom: 1px solid transparent; }
.footer-area a:hover, .footer-area a:focus { color: var(--wp-cream); border-bottom-color: var(--wp-orange); }
.footer-area .ft-brd { border-top: var(--wp-border-w) solid rgba(245, 243, 239, 0.15); margin: var(--wp-space-4) 0; }
.waypoint-footer-bottom { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--wp-space-1) var(--wp-space-3); padding: 0; }
.waypoint-legal-nav { flex: 0 0 100%; }
.waypoint-legal-menu { list-style: none; margin: 0 0 var(--wp-space-1); padding: 0; display: flex; flex-wrap: wrap; gap: var(--wp-space-3); }
.waypoint-legal-menu a { font-family: var(--wp-font-ui); font-size: var(--wp-text-sm); }
.waypoint-copyright { flex: 0 0 100%; margin: 0; font-size: var(--wp-text-sm); color: var(--wp-sand); }

/* ---------- Responsive ------------------------------------------------------------------- */
@media (max-width: 991px) {
}
@media (max-width: 767px) {
  .woocommerce div.product form.cart .button, .waypoint-buy-now { flex: 1 1 100%; text-align: center; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* Shop archive (child override, full width) and the Titanium waitlist block */
.waypoint-shop__title { font-family: var(--wp-font-display); text-transform: uppercase; font-size: var(--wp-h2); letter-spacing: var(--wp-tracking-display); color: var(--wp-charcoal); margin: var(--wp-space-4) 0 var(--wp-space-3); }
.waypoint-waitlist { margin-top: var(--wp-space-3); padding: var(--wp-space-3); background: var(--wp-sand); border-radius: 4px; color: var(--wp-charcoal); }
.waypoint-waitlist__lead { margin-top: 0; }

/* ---------------------------------------------------------------------------------------------
   v6 catalog (2026-10-15): design picker, sign-up form, shop-card summary, tabs, admin photo list
   --------------------------------------------------------------------------------------------- */
.waypoint-lead-time[hidden], .waypoint-waitlist[hidden] { display: none !important; }

/* Variations table → stacked label + picker */
.woocommerce div.product form.cart table.variations, .woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr, .woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td { display: block; width: 100%; padding: 0; border: 0; background: transparent; }
.woocommerce div.product form.cart table.variations th.label { margin-bottom: var(--wp-space-1); }
.woocommerce div.product form.cart .reset_variations { display: none !important; }
.waypoint-swatches__select { display: none; }

.waypoint-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: var(--wp-space-1); margin: 0 0 var(--wp-space-2); }
.waypoint-swatch { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-height: 44px; margin: 0; padding: 6px; background: #fff !important; color: var(--wp-charcoal) !important; border: var(--wp-border-w) solid var(--wp-sand) !important; border-radius: 4px !important; box-shadow: none; font: inherit; text-align: left; text-transform: none; letter-spacing: normal; cursor: pointer; transition: border-color var(--wp-ease), box-shadow var(--wp-ease); }
.waypoint-swatch:hover { border-color: var(--wp-charcoal) !important; }
.waypoint-swatch:focus-visible { outline: 2px solid var(--wp-orange-deep); outline-offset: 2px; }
.waypoint-swatch[aria-checked="true"] { border-color: var(--wp-orange) !important; box-shadow: 0 0 0 1px var(--wp-orange); }
.waypoint-swatch__img { display: block; aspect-ratio: 156 / 126; overflow: hidden; border-radius: 2px; }
.waypoint-swatch__img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; }
.waypoint-swatch__tile { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-family: var(--wp-font-ui); font-size: 0.8125rem; letter-spacing: 0.06em; }
.waypoint-swatches--machined .waypoint-swatch__tile, .waypoint-swatches--clear .waypoint-swatch__tile { background: linear-gradient(135deg, #dcdedf, #b8bbbe); color: var(--wp-charcoal); }
.waypoint-swatches--black .waypoint-swatch__tile { background: linear-gradient(135deg, #3b3c3e, #1e1f21); color: #eceae6; }
.waypoint-swatch__name { font-family: var(--wp-font-ui); font-weight: 500; font-size: 0.875rem; line-height: 1.2; }
.waypoint-swatch__meta { font-size: 0.8125rem; line-height: 1.2; color: var(--wp-grey); }
.waypoint-swatch__note { font-size: 0.75rem; line-height: 1.2; color: var(--wp-grey); }
.waypoint-swatch.is-out .waypoint-swatch__img, .waypoint-swatch.is-hold .waypoint-swatch__img { opacity: 0.55; }

/* Unavailable design: the sign-up form replaces quantity and buttons */
form.variations_form.waypoint-unavailable .woocommerce-variation-add-to-cart { display: none !important; }
.woocommerce div.product .woocommerce-variation-availability p.stock { font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-charcoal); }
.woocommerce div.product .woocommerce-variation-description p { margin: 0 0 var(--wp-space-1); }

.waypoint-waitlist { scroll-margin-top: 96px; }
.waypoint-waitlist__title { display: inline; }
.waypoint-sibling { margin: var(--wp-space-2) 0 0; font-family: var(--wp-font-ui); font-weight: 500; }
.waypoint-sibling a { color: var(--wp-orange-deep); text-decoration: underline; text-underline-offset: 3px; }

/* Shop cards */
.waypoint-card-meta { margin: 4px 0 var(--wp-space-1); font-size: 0.875rem; color: var(--wp-grey); }
.woocommerce ul.products li.product .woocommerce-placeholder, .woocommerce div.product div.images .woocommerce-placeholder { background: var(--wp-sand); }

/* Product tabs: the parent paints the active tab red-orange; flatten to a brand underline */
.woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { background: transparent !important; color: var(--wp-grey) !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp-charcoal) !important; border-bottom-color: var(--wp-orange) !important; }

/* Admin-only photo checklist */

/* Audit fixes (2026-10-15) */
/* Picker tiles: the parent's button rules (14px 24px padding, 32px line-height) squeezed the photo area */
.woocommerce div.product form.cart .waypoint-swatch { padding: 6px !important; line-height: 1.2 !important; font-size: 1rem !important; min-width: 0 !important; height: auto !important; font-weight: 400 !important; }
.woocommerce div.product form.cart .waypoint-swatch__name { overflow-wrap: anywhere; }
/* Only one can be bought (stock of 1, or sold individually): WooCommerce hides the number field, so hide
   the parent's "Quantity :" label and its - / + buttons with it. */
.woocommerce div.product form.cart .quantity:has(input.qty[type="hidden"]), .woocommerce div.product form.cart .qty-label:has(+ .quantity input.qty[type="hidden"]) { display: none !important; }
/* The parent fills every button orange on hover, focus and tap; design tiles stay white (their grey text is unreadable on orange). */
.woocommerce div.product form.cart .waypoint-swatch:hover, .woocommerce div.product form.cart .waypoint-swatch:focus, .woocommerce div.product form.cart .waypoint-swatch:active { background: #fff !important; color: var(--wp-charcoal) !important; }
.woocommerce div.product form.cart table.variations th.label { text-align: left !important; padding: 0 !important; }
@media (max-width: 480px) { .waypoint-swatches { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Shop grid: Woo's float clearfix pseudo-elements become empty grid cells */
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
/* Buttons inside sand bands need air before the next paragraph */
.is-style-waypoint-alt .wp-block-buttons { margin-bottom: var(--wp-space-3); }
/* 404 */
.waypoint-404 { padding: var(--wp-space-6, 64px) var(--wp-space-2); max-width: 720px; }
.waypoint-404 h1 { font-family: var(--wp-font-display); text-transform: uppercase; letter-spacing: var(--wp-tracking-display); font-size: var(--wp-h1, 3rem); color: var(--wp-charcoal); margin: 0 0 var(--wp-space-2); }
.waypoint-404 .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--wp-space-2); margin-top: var(--wp-space-3); }
/* Footer contact */
.waypoint-footer-contact { margin: var(--wp-space-2) 0 var(--wp-space-1); font-family: var(--wp-font-ui); }
.waypoint-footer-contact a { color: var(--wp-cream); text-decoration: underline; text-underline-offset: 3px; }
.waypoint-footer-contact span { margin: 0 var(--wp-space-1); color: var(--wp-cream); }

/* Custom artwork upload (2026-10-15) */
.waypoint-artwork[hidden] { display: none !important; }
.waypoint-artwork { margin: 0 0 var(--wp-space-2); padding: var(--wp-space-2); border: var(--wp-border-w) solid var(--wp-sand); border-radius: 4px; background: #fff; min-width: 0; }
.waypoint-artwork legend { padding: 0 6px; font-family: var(--wp-font-ui); font-weight: 500; color: var(--wp-charcoal); }
.waypoint-artwork__pick { display: block; margin: 0 0 var(--wp-space-1); }
.waypoint-artwork__pick-label { display: block; font-family: var(--wp-font-ui); font-weight: 500; margin-bottom: 4px; }
.waypoint-artwork__pick input[type="file"] { width: 100%; padding: 10px; border: 2px dashed var(--wp-sand); border-radius: 4px; background: var(--wp-cream); font-size: 0.9375rem; cursor: pointer; }
.waypoint-artwork__pick input[type="file"]:focus-visible { outline: 2px solid var(--wp-orange-deep); outline-offset: 2px; }
.waypoint-artwork__hint, .waypoint-artwork__note, .waypoint-artwork__vector { font-size: 0.875rem; color: var(--wp-grey); margin: 0 0 var(--wp-space-1); }
.waypoint-artwork__vector a { color: var(--wp-orange-deep); }
.waypoint-artwork__preview canvas { display: block; width: 100%; height: auto; aspect-ratio: 156 / 126; border-radius: 0; margin: var(--wp-space-1) 0; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.waypoint-artwork__controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp-space-2); font-family: var(--wp-font-ui); font-size: 0.9375rem; }
.waypoint-artwork__controls label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.waypoint-artwork__controls input[type="range"] { width: 160px; accent-color: var(--wp-orange-deep); }
.waypoint-artwork__checks { list-style: none; margin: var(--wp-space-1) 0; padding: 0; font-size: 0.875rem; }
.waypoint-artwork__checks li { padding-left: 1.4em; position: relative; margin-bottom: 4px; color: var(--wp-charcoal); }
.waypoint-artwork__checks li::before { position: absolute; left: 0; font-weight: 700; }
.waypoint-artwork__checks li.is-ok::before { content: "✓"; color: #2e6b34; }
.waypoint-artwork__checks li.is-warn::before { content: "!"; color: var(--wp-orange-deep); }
.waypoint-artwork__checks li.is-bad::before { content: "✕"; color: #a12a1f; }
.waypoint-artwork__rights { display: flex; gap: 10px; align-items: flex-start; margin: var(--wp-space-1) 0; font-size: 0.9375rem; line-height: 1.4; cursor: pointer; }
.waypoint-artwork__rights input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; }
.waypoint-artwork__rights a { color: var(--wp-orange-deep); text-decoration: underline; }
.waypoint-artwork__error { margin: 0 0 var(--wp-space-1); padding: 8px 12px; border-left: 4px solid #a12a1f; background: #fbeceb; color: #6e1d15; font-size: 0.9375rem; }
img.waypoint-artwork-thumb { display: block; width: 156px; height: auto; margin: 4px 0; border-radius: 0; }

/* The parent hides every .single_add_to_cart_button (it used its own .buy-now-button, removed in the child),
   so Add to cart and our Buy Now never showed. More specific + !important wins. Found 2026-10-15. */
.woocommerce div.product form.cart button.single_add_to_cart_button { display: inline-flex !important; align-items: center; justify-content: center; }

/* Formatting audit (2026-10-29) */
/* Lists: the parent's `#content-box ul { margin:0; padding-left:10px; list-style:none }` pinned lists to the
   left edge of the page and removed bullets. Lists now sit in the text column with bullets, text aligned
   to the paragraphs' left edge + one indent. */
#content-box .entry-content ul.wp-block-list, #content-box .entry-content ol.wp-block-list { list-style: disc outside; padding: 0 0 0 1.25em; margin: 0 0 var(--wp-space-2); font-size: inherit; }
#content-box .entry-content ol.wp-block-list { list-style-type: decimal; }
#content-box .entry-content > ul.wp-block-list, #content-box .entry-content > ol.wp-block-list { margin-left: 0 !important; margin-right: auto !important; padding-left: 1.25em !important; padding-right: 0 !important; }
#content-box .entry-content ul.wp-block-list li, #content-box .entry-content ol.wp-block-list li { margin: 0 0 6px; padding: 0; list-style: inherit; }
#content-box .entry-content ul.wp-block-list li::before, #content-box .entry-content ul.wp-block-list li::after { content: none !important; display: none !important; }
/* Shop cards: same layout on every card. Button pinned to the bottom and centred like the card text. */
.woocommerce ul.products li.product { text-align: center; }
.woocommerce ul.products li.product .button { margin: auto var(--wp-space-2) var(--wp-space-2) !important; align-self: center; }
.woocommerce ul.products li.product .price { margin-top: 0; margin-bottom: var(--wp-space-2); }

/* One left edge (2026-10-29): page titles, headings, text, lists, cards and forms on interior pages and in
   product descriptions start at the header logo's edge (the 1280 px container's text edge), with the
   720 px reading width left-aligned instead of centred. Removes the parent's title-band and page insets. */
.h_titlebx { padding-left: 0 !important; }
#content-box.innerpage-whitebox, #content-box article.page { padding-left: 0 !important; padding-right: 0 !important; }
#content-box .entry-content > *:not(.alignwide):not(.alignfull):not(.wp-block-group):not(ul):not(ol),
.woocommerce div.product .woocommerce-Tabs-panel > *:not(.wp-block-group):not(ul):not(ol) { margin-left: 0 !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
#content-box .entry-content > .wp-block-group, .woocommerce div.product .woocommerce-Tabs-panel > .wp-block-group { margin-left: 0 !important; margin-right: auto !important; }
.woocommerce div.product .woocommerce-Tabs-panel > ul, .woocommerce div.product .woocommerce-Tabs-panel > ol { margin-left: 0 !important; padding-left: 1.25em !important; max-width: var(--wp-narrow); }
/* WooCommerce screens (cart, checkout, account) use the full container, not the reading width. */
#content-box .entry-content > .woocommerce { max-width: 100% !important; }

/* Product gallery arrows (2026-10-29): the parent draws them with Font Awesome glyphs (f053/f054), and Font Awesome
   is dequeued, so browsers showed the raw code in a box. Self-drawn chevrons in round buttons; the "Previous" /
   "Next" link text stays for screen readers. */
.woocommerce div.product div.images .flex-direction-nav { position: absolute; top: 50%; left: 0; right: 0; height: 0; margin: 0; padding: 0; list-style: none; z-index: 5; pointer-events: none; }
.woocommerce div.product div.images .flex-direction-nav li { list-style: none; margin: 0; padding: 0; }
.woocommerce div.product div.images .flex-direction-nav a { visibility: visible !important; pointer-events: auto; position: absolute; top: -22px; display: block; width: 44px; height: 44px; border-radius: 50%; background: rgba(245, 243, 239, 0.92); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); font-size: 0 !important; line-height: 0; color: transparent !important; overflow: hidden; text-decoration: none; opacity: 1; transition: background var(--wp-ease); }
.woocommerce div.product div.images .flex-direction-nav .flex-prev { left: 12px; }
.woocommerce div.product div.images .flex-direction-nav .flex-next { right: 12px; }
.woocommerce div.product div.images .flex-direction-nav a:hover { background: var(--wp-cream); }
.woocommerce div.product div.images .flex-direction-nav a:focus-visible { outline: 2px solid var(--wp-orange-deep); outline-offset: 2px; }
.woocommerce div.product div.images .flex-direction-nav a.flex-disabled { opacity: 0.35; cursor: default; }
.woocommerce div.product div.images .flex-direction-nav .flex-prev::after, .woocommerce div.product div.images .flex-direction-nav .flex-next::before { content: none !important; display: none !important; }
.woocommerce div.product div.images .flex-direction-nav .flex-prev::before, .woocommerce div.product div.images .flex-direction-nav .flex-next::after { content: "" !important; font-family: inherit !important; position: absolute; top: 50%; left: 50%; width: 11px; height: 11px; margin: 0; border-top: 2px solid var(--wp-charcoal); border-right: 2px solid var(--wp-charcoal); }
.woocommerce div.product div.images .flex-direction-nav .flex-prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.woocommerce div.product div.images .flex-direction-nav .flex-next::after { transform: translate(-70%, -50%) rotate(45deg); }
/* Thumbnails: five per row and wrapping, instead of one row that ran past the photo's edge. */
.woocommerce div.product div.images .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--wp-space-1); width: 100% !important; margin: var(--wp-space-1) 0 0 !important; padding: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; cursor: pointer; }

/* Footer links: a comfortable tap height on phones (audit 2026-10-29: they were 20 px tall). */
.waypoint-legal-menu a, .waypoint-footer-contact a { display: inline-block; padding-block: 8px; }
