/*
Theme Name: BOLTON Signal
Theme URI: https://bolton-tech.com/
Author: BOLTON (built with Claude Code)
Author URI: https://bolton-tech.com/
Description: Bespoke cinematic, RFQ-first WordPress theme for BOLTON — technical procurement support for defence, military, aviation, marine and industrial MRO. Wave 7 homepage: A+B hybrid UAV/avionics HUD hero, Layer-1 visual-led homepage, three-risk positioning path, seven-name capability selector with per-pillar worlds, hybrid-commerce product-discovery workbench, visual procurement journey, layered documentation, markets selector, Knowledge Centre briefing, combined closing RFQ. Dual dark/light/System (mode-aware tokens, no-flash prepaint), reduced-motion + no-JS fallbacks, WooCommerce, RFQ security. Rollback baseline: v0.1.9.
Version: 0.3.14-portable
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bolton-signal
Domain Path: /languages
Tags: custom-colors, custom-menu, custom-logo, featured-images, full-width-template, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready

BOLTON Signal is a classic PHP theme with a theme.json design system and selective
Gutenberg editing. All real CSS lives in /assets/css/ as cascade layers, enqueued in
order by inc/enqueue.php:
  01-tokens.css → 02-base.css → 03-layout.css → 04-components.css
  → 05-templates.css → 06-woocommerce.css → 07-utilities.css
This style.css carries only the theme header (required by WordPress) plus the screen-
reader / skip-link safety net so accessibility never depends on the async layers.
*/

/* --- Accessibility safety net (must not depend on async layers) --- */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 0.75rem 1.25rem;
	background: #0A1A2F;
	color: #F4F7FB;
	font: 600 1rem/1.2 system-ui, sans-serif;
	text-decoration: none;
}
.skip-link:focus {
	left: 0.5rem;
	top: 0.5rem;
	outline: 3px solid #C8A24C;
}

/* --- Header logo guard (UNLAYERED -- must outrank WooCommerce core) ---
   WooCommerce core ships an UNLAYERED rule ".woocommerce-page img { height:auto;
   max-width:100% }". Cascade LAYERS always lose to unlayered declarations, so that
   rule defeats the theme's layered ".site-header__brand .custom-logo" size constraint
   on every WooCommerce page (my-account, cart, checkout, shop, single product),
   letting the logo render at its intrinsic 512px and inflating the header to ~525px.
   Re-assert the global header logo size here, UNLAYERED, so it wins on every
   template. Values mirror 03-layout.css (56 / 80 / 100). */
.site-header__brand .custom-logo { height: 56px; width: auto; max-width: 62vw; }
@media (min-width: 768px)  { .site-header__brand .custom-logo { height: 80px; } }
@media (min-width: 1024px) { .site-header__brand .custom-logo { height: 100px; } }

/* ===== My Account (WooCommerce) skin -- UNLAYERED so it beats WC core =====
   Same cascade-layer root cause as the logo guard: WooCommerce core ships its
   button + form skin UNLAYERED, which defeats the theme's LAYERED @layer woocommerce
   account rules (greying the CTAs). Re-assert the account CTAs + login/register cards
   here, unlayered, scoped to .woocommerce-account so the rest of the store is untouched. */
.woocommerce-account .woocommerce .button,
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce input.button,
.woocommerce-account .woocommerce .woocommerce-Button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	width: 100%; margin-top: .5rem; padding: .85em 1.6em;
	border: 1px solid transparent; border-radius: var(--bx-radius);
	background: var(--bx-btn-primary-bg); color: var(--bx-btn-primary-fg);
	font: inherit; font-weight: 650; line-height: 1.2; cursor: pointer; text-decoration: none;
}
.woocommerce-account .woocommerce .button:hover { background: var(--bx-btn-primary-hover-bg); color: var(--bx-btn-primary-fg); }
.woocommerce-account .woocommerce .button:focus-visible { outline: none; box-shadow: var(--bx-focus); }
.woocommerce-account .woocommerce button[name="register"] { background: transparent; color: var(--bx-accent-strong); border-color: var(--bx-surface-border); }
.woocommerce-account .woocommerce button[name="register"]:hover { background: var(--bx-surface); color: var(--bx-accent-strong); border-color: var(--bx-accent); }
.woocommerce-account #customer_login.col2-set { align-items: stretch; gap: clamp(1rem, 2.5vw, 1.4rem); }
.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	background: var(--bx-surface); border: 1px solid var(--bx-surface-border);
	border-radius: var(--bx-radius-lg); padding: clamp(1.1rem, 2.5vw, 1.6rem);
	display: flex; flex-direction: column;
}
.woocommerce-account #customer_login .col-1 h2,
.woocommerce-account #customer_login .col-2 h2 { margin-top: 0; }
.woocommerce-account #customer_login form { display: flex; flex-direction: column; flex: 1 1 auto; }
.woocommerce-account #customer_login .col-1 form,
.woocommerce-account #customer_login .col-2 form { background: transparent; border: 0; padding: 0; border-radius: 0; margin: 0; box-shadow: none; }
.woocommerce-account .woocommerce-LostPassword { margin-top: .6rem; font-size: .85rem; }
.woocommerce-account .woocommerce-LostPassword a { color: var(--bx-text-muted); }
.woocommerce-account .woocommerce-privacy-policy-text { color: var(--bx-text-muted); font-size: .82rem; }
.woocommerce-account .page-hero.section--tight { padding-block: clamp(1.2rem, 3vw, 2rem) 0; }
.woocommerce-account .entry-content.section { padding-block-start: clamp(1rem, 2.5vw, 1.4rem); }

