/*
Theme Name: Vaultline
Theme URI: https://example.com/vaultline
Author: Your Name
Author URI: https://example.com
Description: A fast, secure block theme for selling digital products with WooCommerce. Full drag-and-drop editing through the WordPress Site Editor, no page builder required.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vaultline
Tags: e-commerce, full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready
*/

/* -------------------------------------------------------------
   Most styling lives in theme.json. This file covers only what
   theme.json cannot express: focus states, motion preferences,
   and a few WooCommerce touch-ups.
   ------------------------------------------------------------- */

/* Visible keyboard focus on every interactive element. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Skip link. */
.skip-link:focus {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	padding: 0.75rem 1.25rem;
	z-index: 999;
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* -------------------------------------------------------------
   File-spec card — the hero device. Metadata about the download
   presented the way a license or manifest would present it.
   ------------------------------------------------------------- */
.vaultline-spec {
	border: 1px solid var(--wp--preset--color--line);
	border-top: 3px solid var(--wp--preset--color--gold);
	background: var(--wp--preset--color--paper);
	padding: var(--wp--preset--spacing--40);
}

.vaultline-spec dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.6rem 1.5rem;
	font-size: var(--wp--preset--font-size--small);
}

.vaultline-spec dt {
	color: var(--wp--preset--color--slate);
	margin: 0;
}

.vaultline-spec dd {
	margin: 0;
	text-align: right;
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--ink);
}

.vaultline-spec dd + dt {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: 0.6rem;
}

.vaultline-spec dt + dd {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: 0.6rem;
}

.vaultline-spec dl > dt:first-of-type,
.vaultline-spec dl > dt:first-of-type + dd {
	border-top: 0;
	padding-top: 0;
}

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

/* Price gets the accent — it is the thing being decided on. */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
}

/* Product cards: quiet, no shadow, one hairline. */
.woocommerce ul.products li.product {
	border: 1px solid var(--wp--preset--color--line);
	padding: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--paper);
}

.woocommerce ul.products li.product a img {
	margin-bottom: var(--wp--preset--spacing--30);
}

/* Sale badge as a seal rather than a sticker. */
.woocommerce span.onsale {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	border-radius: 0;
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	padding: 0.35em 0.9em;
	min-height: 0;
	min-width: 0;
	line-height: 1.6;
}

/* Buttons inherit the theme rather than WooCommerce defaults. */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	border-radius: 2px;
	font-weight: 500;
	padding: 0.85em 1.6em;
	transition: background 150ms ease;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--paper);
}

/* Downloads table on the My Account page — this is where a
   digital customer actually lives, so give it room. */
.woocommerce table.shop_table {
	border-radius: 0;
	border-color: var(--wp--preset--color--line);
}

.woocommerce table.shop_table th {
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

.woocommerce-message,
.woocommerce-info {
	border-top-color: var(--wp--preset--color--gold);
}

.woocommerce-error {
	border-top-color: #B3261E;
}

/* Hide shipping-oriented UI that never applies to downloads. */
.woocommerce .woocommerce-shipping-fields,
.woocommerce .shipping_address {
	display: none;
}
