/**
 * Novu Keys — brand details v1.
 * A restrained accent system: crisp green signals, neutral shadows, no glow.
 */

:root {
	--novu-brand-green: var(--fwc-accent, #00e676);
	--novu-brand-green-hover: var(--fwc-accent-hover, #00c853);
	--novu-brand-green-dark: var(--fwc-accent-dark, #00a846);
	--novu-brand-green-soft: #e8f8ef;
	--novu-brand-ink: #111514;
	--novu-brand-motion: 200ms cubic-bezier(.2, .7, .2, 1);
}

::selection {
	color: #07110b;
	background: color-mix(in srgb, var(--novu-brand-green) 62%, #fff);
}

/* Accessible focus becomes a consistent brand signal. */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--novu-brand-green) !important;
	outline-offset: 3px;
}

:where(input, select, textarea):not([type='checkbox']):not([type='radio']):not([type='range']):not([type='submit']):focus {
	border-color: var(--novu-brand-green-dark) !important;
	box-shadow: 0 0 0 3px rgba(var(--fwc-accent-rgb), .11) !important;
}

:where(input[type='checkbox'], input[type='radio'], input[type='range']) {
	accent-color: var(--novu-brand-green-dark);
}

/* Home headings receive the same small signature used by the hero and footer. */
.home #los-mas-elegidos-por-nuestra-comunidad .stk-block-heading__text,
.home .novu-home-section-heading .wp-block-heading {
	display: flex !important;
	align-items: center;
	gap: 12px;
}

.home #los-mas-elegidos-por-nuestra-comunidad .stk-block-heading__text::before,
.home .novu-home-section-heading .wp-block-heading::before {
	width: 19px;
	height: 1px;
	flex: 0 0 auto;
	background: var(--novu-brand-green-dark);
	content: '';
}

/* Editorial links: a crisp underline replaces color haze. */
.home :is(.novu-home-view-all, .stk-6cf7637 .stk-button) {
	box-shadow: inset 0 -1px 0 transparent !important;
	transition: color var(--novu-brand-motion), box-shadow var(--novu-brand-motion), transform var(--novu-brand-motion) !important;
}

.home :is(.novu-home-view-all, .stk-6cf7637 .stk-button):hover,
.home :is(.novu-home-view-all, .stk-6cf7637 .stk-button):focus-visible {
	box-shadow: inset 0 -1px 0 var(--novu-brand-green-dark) !important;
}

/* Key commerce CTAs: ink first, green only as the interaction state. */
.woocommerce .single_add_to_cart_button.button {
	min-height: 48px !important;
	padding: 13px 28px !important;
	color: #fff !important;
	background: var(--novu-brand-ink) !important;
	border: 1px solid var(--novu-brand-ink) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
	font-size: .88rem !important;
	font-weight: 600 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	transition: color var(--novu-brand-motion), background-color var(--novu-brand-motion), border-color var(--novu-brand-motion), transform var(--novu-brand-motion) !important;
}

.woocommerce .single_add_to_cart_button.button:hover,
.woocommerce .single_add_to_cart_button.button:focus-visible {
	color: #07110b !important;
	background: var(--novu-brand-green) !important;
	border-color: var(--novu-brand-green) !important;
	transform: translateY(-1px);
}

.woocommerce .button.novu-buynow-single {
	min-height: 48px !important;
	padding: 13px 28px !important;
	color: var(--novu-brand-ink) !important;
	background: transparent !important;
	border: 1px solid #aeb6b2 !important;
	border-radius: 6px !important;
	box-shadow: none !important;
	font-size: .88rem !important;
	font-weight: 500 !important;
	transition: color var(--novu-brand-motion), background-color var(--novu-brand-motion), border-color var(--novu-brand-motion), transform var(--novu-brand-motion) !important;
}

.woocommerce .button.novu-buynow-single:hover,
.woocommerce .button.novu-buynow-single:focus-visible {
	color: var(--novu-brand-ink) !important;
	background: var(--novu-brand-green-soft) !important;
	border-color: var(--novu-brand-green-dark) !important;
	transform: translateY(-1px);
}

body.woocommerce-checkout #place_order,
#search-modal button.wp-element-button {
	color: #fff !important;
	background: var(--novu-brand-ink) !important;
	border-color: var(--novu-brand-ink) !important;
	box-shadow: none !important;
	transition: color var(--novu-brand-motion), background-color var(--novu-brand-motion), border-color var(--novu-brand-motion), transform var(--novu-brand-motion) !important;
}

body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout #place_order:focus-visible,
#search-modal button.wp-element-button:hover,
#search-modal button.wp-element-button:focus-visible {
	color: #07110b !important;
	background: var(--novu-brand-green) !important;
	border-color: var(--novu-brand-green) !important;
	transform: translateY(-1px);
}

/* Semantic badges: availability is green; offers use a warm, separate signal. */
.novu-instock-badge {
	color: #08723b !important;
	background: #e6f7ed !important;
	border-color: #c9ecd8 !important;
}

.woocommerce ul.products li.product .onsale,
.home .woocommerce ul.products li.product .onsale,
.onsale {
	color: #4b3600 !important;
	background: #f4c95d !important;
	border-color: #e7b93e !important;
	box-shadow: none !important;
}

.novu-discount-percent,
.home .products .novu-discount-percent {
	color: #765000 !important;
	background: #fff3cc !important;
}

/* Brand motion without coloured glow. */
.woocommerce ul.products li.product:hover,
#fwc-products-wrap li.product:hover {
	box-shadow: inset 0 2px 0 var(--novu-brand-green), 0 13px 30px rgba(17, 24, 21, .10) !important;
}

.ct-search-results a:hover {
	border-color: var(--novu-brand-green-dark) !important;
	box-shadow: 0 8px 22px rgba(17, 24, 21, .10) !important;
}

:is(.novu-cart-btn, .novu-buynow-btn, .novu-fav-btn):hover,
.novu-fav-btn.is-active {
	box-shadow: 0 6px 16px rgba(17, 24, 21, .18) !important;
}

.fwc-view-btn.active {
	color: #08723b !important;
	background: var(--novu-brand-green-soft) !important;
	border-color: #9bdcb9 !important;
	box-shadow: none !important;
}

/* Branded empty states: useful copy, a quiet fox mark and one clear exit. */
.novu-fav-empty {
	display: flex !important;
	min-height: 330px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 42px 28px !important;
	color: #6e7772 !important;
	font-size: .86rem !important;
	font-weight: 300;
	line-height: 1.55 !important;
	text-align: center !important;
}

.novu-fav-empty::before,
body.woocommerce-cart .cart-empty.woocommerce-info::before {
	position: static !important;
	display: block !important;
	width: 86px !important;
	height: 84px !important;
	margin: 0 auto 20px !important;
	background: url('/wp-content/themes/blocksy-child/assets/novu-fox-outline-v4.png') center / contain no-repeat !important;
	content: '' !important;
	filter: none !important;
	opacity: .78;
}

.novu-fav-empty strong {
	margin-bottom: 8px;
	color: #17201c;
	font-size: 1.08rem;
	font-weight: 600;
	letter-spacing: -.025em;
}

.novu-fav-empty > span { max-width: 29ch; }

.novu-fav-empty__cta {
	display: inline-flex;
	min-height: 42px;
	align-items: center;
	gap: 14px;
	margin-top: 23px;
	padding: 10px 16px;
	color: #fff !important;
	background: var(--novu-brand-ink);
	border: 1px solid var(--novu-brand-ink);
	border-radius: 4px;
	font-size: .78rem;
	font-weight: 500;
	text-decoration: none;
	transition: color var(--novu-brand-motion), background-color var(--novu-brand-motion), border-color var(--novu-brand-motion), transform var(--novu-brand-motion);
}

.novu-fav-empty__cta > span { color: var(--novu-brand-green); }

.novu-fav-empty__cta:hover,
.novu-fav-empty__cta:focus-visible {
	color: #07110b !important;
	background: var(--novu-brand-green);
	border-color: var(--novu-brand-green);
	transform: translateY(-1px);
}

.novu-fav-empty__cta:hover > span,
.novu-fav-empty__cta:focus-visible > span { color: inherit; }

body.woocommerce-cart .cart-empty.woocommerce-info {
	display: flex !important;
	min-height: 310px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin: 0 !important;
	padding: clamp(42px, 6vw, 72px) 24px !important;
	color: #707973 !important;
	background: #fff !important;
	border: 1px solid #e4e8e5 !important;
	border-radius: 14px !important;
	box-shadow: 0 10px 32px rgba(17, 24, 21, .055) !important;
	font-size: .9rem;
	font-weight: 300;
	line-height: 1.55;
	text-align: center;
}

body.woocommerce-cart .cart-empty.woocommerce-info strong {
	margin-bottom: 8px;
	color: #17201c;
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	font-weight: 500;
	letter-spacing: -.04em;
}

body.woocommerce-cart .cart-empty.woocommerce-info span { max-width: 42ch; }

body.woocommerce-cart .return-to-shop {
	margin: 20px 0 0;
	text-align: center;
}

body.woocommerce-cart .return-to-shop .button,
.novu-404-btn {
	display: inline-flex !important;
	min-height: 46px;
	align-items: center;
	gap: 15px;
	justify-content: center;
	padding: 11px 20px !important;
	color: #fff !important;
	background: var(--novu-brand-ink) !important;
	border: 1px solid var(--novu-brand-ink) !important;
	border-radius: 5px !important;
	box-shadow: none !important;
	font-size: .84rem !important;
	font-weight: 500 !important;
	letter-spacing: .01em !important;
	text-decoration: none !important;
	transition: color var(--novu-brand-motion), background-color var(--novu-brand-motion), border-color var(--novu-brand-motion), transform var(--novu-brand-motion) !important;
}

body.woocommerce-cart .return-to-shop .button::after,
.novu-404-btn::after {
	color: var(--novu-brand-green);
	font-size: 1.1em;
	content: '→';
}

body.woocommerce-cart .return-to-shop .button:hover,
body.woocommerce-cart .return-to-shop .button:focus-visible,
.novu-404-btn:hover,
.novu-404-btn:focus-visible {
	color: #07110b !important;
	background: var(--novu-brand-green) !important;
	border-color: var(--novu-brand-green) !important;
	transform: translateY(-1px);
}

body.woocommerce-cart .return-to-shop .button:hover::after,
body.woocommerce-cart .return-to-shop .button:focus-visible::after,
.novu-404-btn:hover::after,
.novu-404-btn:focus-visible::after { color: inherit; }

@media (prefers-reduced-motion: reduce) {
	.novu-brand-details,
	.woocommerce .single_add_to_cart_button.button,
	.woocommerce .button.novu-buynow-single,
	body.woocommerce-checkout #place_order {
		transition: none !important;
		transform: none !important;
	}
}
