/* Havok theme: styles theme.json can't express. */

input, select, textarea, button { box-sizing: border-box; max-width: 100%; }

body {
	background-image:
		radial-gradient(ellipse 80% 50% at 50% 0%, rgba(30, 55, 25, 0.5) 0%, transparent 70%);
	background-attachment: fixed;
}

::selection { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--base); }

:focus-visible { outline: 2px solid var(--wp--preset--color--gold-light); outline-offset: 2px; }

/* Header */
.havok-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
	backdrop-filter: blur(8px);
	background-color: rgba(9, 16, 10, 0.9) !important;
}
.admin-bar .havok-header { top: var(--wp-admin--admin-bar--height, 32px); }
.havok-header .wp-block-site-title a { color: var(--wp--preset--color--gold); text-decoration: none; }
.havok-header .wp-block-navigation a { text-decoration: none; }
.havok-header .wp-block-navigation a:hover { color: var(--wp--preset--color--gold-light); }
@media (max-width: 600px) {
	.havok-site-title { display: none; }
}

/* Small caps label above headings */
.havok-eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0;
}

/* Hero */
.havok-hero h1 { text-shadow: 0 0 60px rgba(200, 144, 42, 0.3); }
.havok-hero .havok-lede {
	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
	font-style: italic;
	font-weight: 300;
	opacity: 0.85;
}
.havok-hero-logo img {
	max-width: min(300px, 70vw);
	height: auto;
	filter: drop-shadow(0 0 28px rgba(200, 144, 42, 0.22));
	animation: havok-breathe 6s ease-in-out infinite;
}
@keyframes havok-breathe {
	0%, 100% { filter: drop-shadow(0 0 28px rgba(200, 144, 42, 0.22)); }
	50% { filter: drop-shadow(0 0 44px rgba(200, 144, 42, 0.38)); }
}
@media (prefers-reduced-motion: reduce) {
	.havok-hero-logo img { animation: none; }
}

/* Outline buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--gold-light);
	border: 1px solid var(--wp--preset--color--gold);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--base);
}

/* Department cards */
.havok-dept {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-top: 3px solid var(--havok-accent, var(--wp--preset--color--gold));
	border-radius: 6px;
	padding: var(--wp--preset--spacing--50);
}
.havok-dept--print { --havok-accent: var(--wp--preset--color--teal); }
.havok-dept--laser { --havok-accent: var(--wp--preset--color--ember); }

.havok-band { border-top: 1px solid var(--wp--preset--color--line); }
.havok-steps h3 { color: var(--wp--preset--color--gold-light); }

/* Footer */
.havok-footer { border-top: 1px solid var(--wp--preset--color--line); }
.havok-footer .wp-block-site-title a { color: var(--wp--preset--color--gold); text-decoration: none; }
.havok-footer-heading {
	font-size: 0.85rem !important;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
}
.havok-footer-links { list-style: none; padding-left: 0; }
.havok-footer-links li { margin: 0.35rem 0; }
.havok-footer-links a { color: var(--wp--preset--color--cream); text-decoration: none; }
.havok-footer-links a:hover { color: var(--wp--preset--color--gold-light); }

/* ---------- WooCommerce ---------- */

/* Product grids (shortcode + blocks) */
.woocommerce ul.products li.product,
.wc-block-product,
.wc-block-grid__product {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 0.75rem 0.75rem 1rem;
	transition: border-color 0.2s, transform 0.2s;
}
.woocommerce ul.products li.product:hover,
.wc-block-product:hover { border-color: var(--wp--preset--color--gold); transform: translateY(-2px); }
.woocommerce ul.products li.product img { border-radius: 4px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	color: var(--wp--preset--color--cream);
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.wc-block-components-product-price {
	color: var(--wp--preset--color--gold-light) !important;
	font-weight: 600;
}
.woocommerce ul.products li.product a { text-decoration: none; }

.woocommerce span.onsale {
	background: var(--wp--preset--color--ember);
	color: #fff;
}

/* Classic buttons emitted by WooCommerce templates */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	letter-spacing: 0.06em;
	border-radius: 4px;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--wp--preset--color--gold-light); color: var(--wp--preset--color--base); }

/* Form fields on a dark background */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], input[type="date"], select, textarea,
.wc-block-components-text-input input,
.wc-block-components-textarea {
	background: var(--wp--preset--color--surface-2) !important;
	color: var(--wp--preset--color--cream) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 4px;
	font-family: inherit;
	font-size: 1rem;
	padding: 0.6em 0.75em;
}
input:focus, select:focus, textarea:focus { border-color: var(--wp--preset--color--gold) !important; }
.wc-block-components-text-input label,
.wc-block-components-form .wc-block-components-text-input label { color: var(--wp--preset--color--muted) !important; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner {
	background: var(--wp--preset--color--surface-2) !important;
	color: var(--wp--preset--color--cream) !important;
	border-color: var(--wp--preset--color--gold) !important;
}

/* Tables (cart, orders, my account) */
.woocommerce table.shop_table { border-color: var(--wp--preset--color--line); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--wp--preset--color--line); }

/* Single product */
.woocommerce div.product .product_title { color: var(--wp--preset--color--gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--wp--preset--color--surface-2); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--wp--preset--color--cream); }

/* Mini-cart drawer */
.wc-block-mini-cart__drawer .components-modal__content,
.wc-block-mini-cart__drawer .wc-block-components-drawer__content {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--cream);
}
.wc-block-mini-cart__badge { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--base); }

/* Personalization + quote form (havok-shop plugin) */
.havok-field { margin: 0 0 1rem; }
.havok-field label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.havok-field .havok-hint { display: block; font-size: 0.9rem; color: var(--wp--preset--color--muted); margin-top: 0.25rem; }
.havok-field label .havok-hint { display: inline; margin: 0 0 0 0.4em; font-weight: 400; }
.havok-field input, .havok-field select, .havok-field textarea { width: 100%; box-sizing: border-box; }
.havok-field input[type="file"] { background: none !important; border: 0 !important; padding-left: 0; }
.havok-quote-form { max-width: 760px; }
.havok-quote-form .havok-grid { display: grid; gap: 0 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.havok-quote-form .havok-hp { position: absolute; left: -9999px; }
.havok-notice {
	padding: 1rem 1.25rem;
	border: 1px solid var(--wp--preset--color--gold);
	border-radius: 6px;
	background: var(--wp--preset--color--surface-2);
	margin-bottom: 1.5rem;
}
.havok-notice--error { border-color: var(--wp--preset--color--ember); }
