/*
Theme Name: CVPmedia Shop
Template: twentytwentyfive
Description: CVPmedia central store theme. Dark, cinematic child theme of Twenty Twenty-Five that matches cvpmedia.ca.
Version: 1.0.2
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: cvpmedia-shop
*/

:root {
	--cvpm-black: #070708;
	--cvpm-ink: #0e0e10;
	--cvpm-line: rgba(244, 240, 234, .16);
	--cvpm-text: #f4f0ea;
	--cvpm-muted: #b4aea6;
	--cvpm-red: #a42931;
	--cvpm-red-hi: #d8434c;
}

body {
	background: var(--cvpm-black);
	color: var(--cvpm-text);
	-webkit-font-smoothing: antialiased;
}
body::before {
	content: "";
	position: fixed; inset: 0; z-index: -2; pointer-events: none;
	background:
		radial-gradient(60% 40% at 50% 0%, rgba(164, 41, 49, .22), transparent 70%),
		var(--cvpm-black);
}
a { text-underline-offset: .2em; }

/* Header */
.cvpm-header {
	padding: 1.25rem clamp(1rem, 4vw, 3rem);
	border-bottom: 1px solid var(--cvpm-line);
	align-items: center;
	gap: 1rem;
}
.cvpm-logo img { display: block; width: 120px; height: auto; }
.cvpm-nav { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; align-items: center; }
.cvpm-nav a {
	color: var(--cvpm-text); text-decoration: none;
	font-size: .9rem; font-weight: 600; letter-spacing: .1em;
	padding: .5rem 0; border-bottom: 1px solid transparent;
}
.cvpm-nav a:hover, .cvpm-nav a:focus-visible { color: var(--cvpm-red-hi); border-color: var(--cvpm-red); }
.wc-block-mini-cart__button { color: var(--cvpm-text); }
.wc-block-mini-cart__badge { background: var(--cvpm-red); color: var(--cvpm-text); }

/* Headings and rule */
/* Headings are never forced to capitals: brand names must always read CVPmedia, CVPcoaching, CVPassists. */
h1, h2, .wp-block-post-title { letter-spacing: .06em; }
.cvpm-eyebrow { color: var(--cvpm-red-hi); font-size: .8rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; }

/* Buttons */
.wp-element-button, .wp-block-button__link, .wc-block-components-button:not(.is-link), button.single_add_to_cart_button, .button, input[type="submit"] {
	background: var(--cvpm-red); color: var(--cvpm-text); border: 1px solid var(--cvpm-red);
	border-radius: 2px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; font-size: .8rem;
	transition: background .25s, border-color .25s;
}
.wp-element-button:hover, .wp-block-button__link:hover, .wc-block-components-button:not(.is-link):hover, .button:hover, input[type="submit"]:hover {
	background: var(--cvpm-red-hi); border-color: var(--cvpm-red-hi); color: var(--cvpm-text);
}
:focus-visible { outline: 2px solid var(--cvpm-red-hi); outline-offset: 3px; }

/* Forms (checkout, account, coupons) */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], select, textarea,
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__input, .wc-block-components-textarea {
	background: var(--cvpm-ink) !important; color: var(--cvpm-text) !important;
	border: 1px solid var(--cvpm-line) !important; border-radius: 2px;
}
.wc-block-components-text-input label, .wc-block-components-form .wc-block-components-text-input.is-active label { color: var(--cvpm-muted); }
.wc-block-components-checkout-step__heading, .wc-block-components-title { text-transform: uppercase; letter-spacing: .12em; }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: var(--cvpm-line) !important; }
.wc-block-components-radio-control-accordion-option, .wc-block-components-radio-control__option { border-color: var(--cvpm-line) !important; }
.wc-block-components-notice-banner { background: var(--cvpm-ink); }

/* Product grid and tables */
.wc-block-product, .wp-block-woocommerce-product-collection li { background: transparent; }
.wc-block-components-product-price, .price { color: var(--cvpm-text); }
table, th, td { border-color: var(--cvpm-line) !important; }

/* Seller notices */
.cvpm-seller, .cvpm-seller-note { color: var(--cvpm-muted); font-size: .9rem; letter-spacing: .04em; }
.cvpm-seller-note { border-left: 3px solid var(--cvpm-red); background: var(--cvpm-ink); padding: .9rem 1.1rem; margin: 0 0 1.5rem; }

/* Brand landing banner (category description) */
.cvpm-brand-banner { text-align: center; padding: 2rem 0 1rem; }
.cvpm-brand-banner img { margin: 0 auto 1rem; max-width: 260px; height: auto; }
.cvpm-brand-banner p { color: var(--cvpm-muted); max-width: 36rem; margin: 0 auto; }

/* Footer */
.cvpm-footer { border-top: 1px solid var(--cvpm-line); padding: 2rem 1rem 2.5rem; text-align: center; color: var(--cvpm-muted); font-size: .85rem; letter-spacing: .06em; }
.cvpm-footer a { color: var(--cvpm-muted); text-decoration: none; margin: 0 .6rem; }
.cvpm-footer a:hover { color: var(--cvpm-red-hi); }
.cvpm-footer p { margin: .4rem 0; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Notices (cart and checkout) */
.wc-block-components-notice-banner { color: var(--cvpm-text) !important; background: var(--cvpm-ink) !important; border-color: var(--cvpm-line) !important; }
.wc-block-components-notice-banner.is-success { border-color: #5fb37c !important; }
.wc-block-components-notice-banner.is-error { border-color: var(--cvpm-red-hi) !important; }
.wc-block-components-notice-banner.is-info { border-color: var(--cvpm-muted) !important; }
.wc-block-components-notice-banner > svg { background-color: transparent !important; }
.wc-block-components-notice-banner a, .wc-block-components-notice-banner .wc-block-components-button { color: var(--cvpm-text) !important; }
.woocommerce-message, .woocommerce-error, .woocommerce-info { background: var(--cvpm-ink); color: var(--cvpm-text); border-top-color: var(--cvpm-red); }

/* Checkout header */
.cvpm-header--checkout { display: flex; justify-content: space-between; }

/* Coming soon page */
.cvpm-coming { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem 1.5rem; }
.cvpm-coming img { width: clamp(200px, 26vw, 320px); height: auto; margin: 0 auto 2.5rem; }
.cvpm-coming h1 { margin: .25rem 0 1rem; font-size: clamp(1.8rem, 5vw, 3.2rem); letter-spacing: .09em; }
.cvpm-coming p { color: var(--cvpm-muted); max-width: 32rem; margin: 0 auto; }
.cvpm-coming .cvpm-eyebrow { color: var(--cvpm-red-hi); margin: 0 0 1rem; }
.cvpm-coming-parent { margin-top: 3rem !important; font-size: .95rem; letter-spacing: .1em; }
.cvpm-coming-parent a { color: var(--cvpm-text); text-decoration: none; border-bottom: 1px solid var(--cvpm-red); }
