/*
 * Final brand layer. Feature styles own layout; this file owns the shared
 * storefront palette and intentionally loads after every feature/integration.
 */
:root {
	--kev-brand-primary-hover: color-mix(in srgb, var(--kev-color-brand-primary) 82%, white);
	--kev-brand-primary-soft: color-mix(in srgb, var(--kev-color-brand-primary) 22%, transparent);
	--kev-brand-secondary-soft: color-mix(in srgb, var(--kev-color-brand-secondary) 14%, transparent);
	--kev-brand-logo-accent: #ff347f;
	--kev-brand-on-primary: #fffdfc;
	--kev-brand-glass: rgb(255 253 252 / 88%);
	--kev-brand-shadow: 0 0.75rem 2.25rem rgb(74 41 58 / 9%);
}

html,
body,
.wp-site-blocks,
.content-area,
.woocommerce-account .woocommerce,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	background: var(--kev-color-canvas);
	color: var(--kev-color-text);
}

:where(
	.kev-delban-site-header,
	.kev-delban-mobile-header,
	.kev-delban-site-footer,
	.kev-delban-mobile-bottom-nav,
	.kev-delban-product-catalog,
	.kev-delban-blog-archive,
	.kev-delban-search,
	.kev-delban-single-article,
	.kev-delban-informational-page,
	.woocommerce-account
) {
	background-color: var(--kev-color-canvas);
}

:where(
	.kev-delban-site-header__cart-panel,
	.kev-delban-mobile-header__panel,
	.kev-delban-product-card,
	.kev-featured-products__item,
	.kev-delban-article-card__card,
	.kev-delban-product-catalog__filters,
	.kev-delban-product-information,
	.kev-delban-product-purchase,
	.kev-delban-order-card,
	.kev-delban-order-progress,
	.woocommerce-MyAccount-content,
	.kevira-checkout__step,
	.kevira-checkout__summary,
	.kevira-checkout__delivery-module,
	.kevira-checkout__payment-card
) {
	border-color: var(--kev-color-border) !important;
	background-color: var(--kev-color-surface) !important;
}

:where(
	h1,
	h2,
	h3,
	.kev-delban-site-header__cart-title,
	.kev-delban-product-information__title,
	.kev-delban-order-progress__title,
	.kevira-checkout__module-title h2,
	.kevira-checkout__payment-card > h2
) {
	color: var(--kev-color-text) !important;
}

:where(
	a:hover,
	a:focus-visible,
	.kev-delban-site-header__nav .current-menu-item > a,
	.kev-delban-site-header__nav .current-menu-ancestor > a,
	.kev-delban-mobile-header__panel a:hover,
	.kev-delban-mobile-bottom-nav a[aria-current="page"],
	.woocommerce-MyAccount-navigation .is-active a,
	.kev-delban-product-information__price,
	.kev-delban-order-status
) {
	color: var(--kev-color-brand-secondary);
}

:where(
	button[type="submit"],
	input[type="submit"],
	.button,
	.wp-element-button,
	.wp-block-button__link,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.kev-delban-site-header__cart-link,
	.kev-delban-product-catalog__filters-apply,
	.kevira-checkout__primary,
	.kevira-checkout__payment-left #place_order,
	.woocommerce-MyAccount-content .button
):not(.button-link):not(.button-link-delete):not(:disabled) {
	border-color: var(--kev-color-brand-primary) !important;
	background: var(--kev-color-brand-primary) !important;
	color: var(--kev-brand-on-primary) !important;
}

:where(
	button[type="submit"],
	input[type="submit"],
	.button,
	.wp-element-button,
	.wp-block-button__link,
	.add_to_cart_button,
	.single_add_to_cart_button,
	.kevira-checkout__primary,
	.kevira-checkout__payment-left #place_order
):not(:disabled):hover {
	background: var(--kev-brand-primary-hover) !important;
	color: var(--kev-brand-on-primary) !important;
}

:where(
	input,
	select,
	textarea,
	.kevira-checkout__choice,
	.kevira-checkout__fields input,
	.woocommerce form .form-row input.input-text
) {
	border-color: var(--kev-color-border) !important;
	background-color: var(--kev-color-surface-elevated) !important;
	color: var(--kev-color-text) !important;
}

:where(input, select, textarea, button, a, .kevira-checkout__choice):focus-visible {
	border-color: var(--kev-color-brand-primary) !important;
	outline: 2px solid var(--kev-color-brand-primary) !important;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--kev-brand-primary-soft) !important;
}

:where(
	.kevira-checkout__choice[aria-pressed="true"],
	.kev-delban-order-progress__step.is-active,
	.kev-delban-order-progress__step.is-complete,
	.kev-delban-order-filters a.is-active,
	.woocommerce-pagination .page-numbers.current
) {
	border-color: var(--kev-color-brand-primary) !important;
	background: var(--kev-color-brand-primary) !important;
	color: var(--kev-brand-on-primary) !important;
}

:where(
	.kev-delban-site-header__cart-count,
	.kev-delban-mobile-header__cart-count
) {
	border-color: color-mix(in srgb, var(--kev-color-brand-secondary) 34%, transparent) !important;
	background: var(--kev-color-brand-primary) !important;
	color: var(--kev-brand-on-primary) !important;
}

:where(
	.kev-delban-product-badge__row,
	.kev-featured-products__identity-badge,
	.kev-featured-products__badge,
	.kev-delban-product-catalog__badge,
	.kev-delban-product-card__sale,
	.woocommerce span.onsale
) {
	border-color: #ebccd7 !important;
	background: #f7e8ed !important;
	box-shadow: 0 0.25rem 0.75rem rgb(91 25 61 / 7%) !important;
	color: #8f4056 !important;
}

:where(hr, .wp-block-separator, .kev-delban-order-progress__line) {
	border-color: var(--kev-color-border);
	background-color: var(--kev-color-brand-primary);
}

::selection {
	background: var(--kev-brand-logo-accent);
	color: var(--kev-brand-on-primary);
}

/* Delban identity skin. Layout and behavior remain owned by the mature features. */
:where(.kev-delban-site-header, .kev-delban-mobile-header) {
	border-color: color-mix(in srgb, var(--kev-color-border) 88%, transparent) !important;
	background: var(--kev-brand-glass) !important;
	box-shadow: var(--kev-brand-shadow) !important;
	color: var(--kev-color-text) !important;
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
}

/* Keep the floating header glassy on every public page, not only Home. */
.kev-delban-site-header:not(.kev-delban-site-header--checkout):not(.is-scrolled),
.kev-delban-mobile-header {
	background: rgb(255 253 252 / 68%) !important;
	box-shadow: 0 0.75rem 2.25rem rgb(74 41 58 / 8%) !important;
	-webkit-backdrop-filter: blur(14px) saturate(115%);
	backdrop-filter: blur(14px) saturate(115%);
}

:where(.kev-delban-site-header__menu a, .kev-delban-site-header__action, .kev-delban-mobile-header__action) {
	color: var(--kev-color-text) !important;
}

:where(.kev-delban-site-header__menu a, .kev-delban-site-header__action, .kev-delban-mobile-header__action):hover,
:where(.kev-delban-site-header__menu .current-menu-item > a, .kev-delban-site-header__menu .current-menu-ancestor > a) {
	color: var(--kev-color-brand-primary) !important;
}

:where(.kev-delban-site-header__search .search-form, .kev-delban-mobile-header__panel .search-form) {
	border-color: var(--kev-color-border) !important;
	background: var(--kev-color-surface) !important;
}

:where(.kev-delban-site-header__search .search-field, .kev-delban-mobile-header__panel .search-field) {
	color: var(--kev-color-text) !important;
}

:where(.kev-delban-site-header__search .search-field, .kev-delban-mobile-header__panel .search-field)::placeholder {
	color: var(--kev-color-muted) !important;
}

:where(.kev-delban-site-header__cart-count, .kev-delban-mobile-header__cart-count) {
	border-color: var(--kev-color-surface) !important;
	background: var(--kev-brand-logo-accent) !important;
	color: var(--kev-brand-on-primary) !important;
}

:where(.kev-delban-mobile-header__panel, .kev-delban-site-header__cart-panel, .kev-delban-live-search__results) {
	border-color: var(--kev-color-border) !important;
	background: var(--kev-color-surface) !important;
	box-shadow: var(--kev-brand-shadow) !important;
	color: var(--kev-color-text) !important;
}

.kev-delban-site-footer {
	--kev-footer-background: #4a293a;
	--kev-footer-surface: #573346;
	--kev-footer-border: rgb(255 253 252 / 14%);
	--kev-footer-heading: #fffdfc;
	--kev-footer-text: rgb(255 253 252 / 76%);
	--kev-footer-muted: rgb(255 253 252 / 56%);
	--kev-footer-accent: #e8cece;
	background: radial-gradient(circle at 82% 0%, rgb(255 52 127 / 10%), transparent 25rem), var(--kev-footer-background) !important;
}

/* Footer typography must win over the shared light-page heading cascade. */
.kev-delban-site-footer :where(.kev-delban-site-footer__wordmark, .kev-delban-site-footer__heading) {
	color: var(--kev-footer-heading) !important;
}

.kev-delban-site-footer :where(.kev-delban-site-footer__tagline, .kev-delban-site-footer__menu a, .kev-delban-site-footer__contact-item) {
	color: var(--kev-footer-text) !important;
}

.kev-delban-site-footer :where(.kev-delban-site-footer__contact-item > span, .kev-delban-site-footer__contact-item--address, .kev-delban-site-footer__copyright) {
	color: var(--kev-footer-muted) !important;
}

:where(.kev-delban-site-header__bean, .kev-delban-mobile-header__bean) {
	color: var(--kev-brand-logo-accent) !important;
}

/* Approved Delban header composition: search / centered identity / actions. */
@media (min-width: 782px) {
	.kev-delban-site-header {
		width: min(calc(100% - 4rem), 80rem);
		margin: 1rem auto;
		border: 1px solid rgb(255 255 255 / 78%);
		border-radius: 1.5rem;
	}

	.kev-delban-site-header__inner,
	.kev-delban-site-header--no-menu .kev-delban-site-header__inner {
		grid-template-areas:
			"actions brand search"
			"nav nav nav";
		grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
		gap: 0 clamp(1rem, 3vw, 3rem);
		width: 100%;
		min-height: 7.25rem;
		padding: 0.75rem clamp(1rem, 2.5vw, 2rem) 0.25rem;
	}

	.kev-delban-site-header__brand {
		grid-area: brand;
		justify-self: center;
	}

	.kev-delban-site-header__brand .custom-logo {
		max-width: 10.5rem;
		height: 3rem;
	}

	.kev-delban-site-header__wordmark {
		font-size: 1rem;
	}

	.kev-delban-site-header__bean {
		width: 2.5rem;
		height: 2.5rem;
	}

	.kev-delban-site-header__search {
		grid-area: search;
		justify-self: end;
		width: min(100%, 23rem);
	}

	.kev-delban-site-header__search .search-form {
		height: 2.75rem;
		border-radius: 0.875rem;
	}

	.kev-delban-site-header__actions {
		grid-area: actions;
		justify-self: start;
	}

	.kev-delban-site-header__action {
		width: 2.75rem;
		height: 2.75rem;
		border-radius: 0.875rem;
	}

	.kev-delban-site-header__nav {
		grid-area: nav;
		justify-self: center;
		align-self: end;
	}

	.kev-delban-site-header__menu {
		justify-content: center;
		gap: clamp(1.25rem, 3vw, 2.75rem);
	}

	.kev-delban-site-header__menu a {
		padding-block: 0.625rem;
		font-size: 0.8125rem;
	}

	.kev-delban-site-header__menu a::after {
		bottom: 0.125rem;
		background: var(--kev-brand-logo-accent);
	}

	.kev-delban-site-header__announcement {
		border-radius: 1.5rem 1.5rem 0 0;
		background: var(--kev-color-brand-primary);
		color: var(--kev-brand-on-primary);
	}

	.kev-delban-site-header--checkout {
		width: 100%;
		margin: 0;
		border-width: 0 0 1px;
		border-radius: 0;
	}
}

@media (max-width: 781px) {
	.kev-delban-mobile-header {
		top: 0.75rem;
		width: calc(100% - 1.5rem);
		margin: 0.75rem auto;
		border: 1px solid rgb(255 255 255 / 82%);
		border-radius: 1.25rem;
	}

	.kev-delban-mobile-header__inner {
		min-height: 4.5rem;
		padding-inline: max(0.75rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-left));
	}

	.kev-delban-mobile-header__action {
		width: 2.75rem;
		height: 2.75rem;
	}

	.kev-delban-mobile-header__brand .custom-logo {
		max-width: min(9rem, 36vw);
		height: 2.5rem;
	}

	.kev-delban-mobile-header__bean {
		width: 1.875rem;
		height: 1.875rem;
	}

	.kev-delban-mobile-header__panel {
		inset-inline: -1px;
		border-radius: 0 0 1.25rem 1.25rem;
	}
}

:where(.kev-delban-live-search__result, .kev-delban-live-search__name) {
	color: var(--kev-color-text) !important;
}

:where(.kev-delban-live-search__title, .kev-delban-live-search__price) {
	color: var(--kev-color-muted) !important;
}

:where(.kev-delban-live-search__meta, .kev-delban-live-search__all) {
	color: var(--kev-color-brand-primary) !important;
}

/* Exact Delban desktop header composition from the approved beauty reference. */
@media (min-width: 782px) {
	.kev-delban-site-header:not(.kev-delban-site-header--checkout) {
		position: sticky;
		z-index: 100;
		top: 1rem;
		width: min(calc(100% - 2rem), 96rem);
		margin: 1rem auto;
		border: 1px solid rgb(255 255 255 / 82%);
		border-radius: 1.25rem;
		transition: background-color 180ms ease, box-shadow 180ms ease;
	}

	.kev-delban-site-header__inner,
	.kev-delban-site-header--no-menu .kev-delban-site-header__inner {
		grid-template-areas:
			"actions brand search"
			"nav nav nav";
		grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
		grid-template-rows: 4.75rem auto;
		column-gap: clamp(1rem, 3vw, 3rem);
		row-gap: 0.125rem;
		width: 100%;
		min-height: 8rem;
		padding: 0.35rem clamp(1.25rem, 3vw, 2.5rem) 0.15rem;
		direction: ltr;
	}

	.kev-delban-site-header__brand,
	.kev-delban-site-header__nav,
	.kev-delban-site-header__search,
	.kev-delban-site-header__actions {
		direction: rtl;
	}

	.kev-delban-site-header__brand { grid-area: brand; justify-self: center; }
	.kev-delban-site-header__search { grid-area: search; justify-self: end; width: min(100%, 24.5rem); }
	.kev-delban-site-header__actions { grid-area: actions; justify-self: start; gap: 0.5rem; }
	.kev-delban-site-header__nav { grid-area: nav; align-self: center; justify-self: center; }

	.kev-delban-site-header__brand .custom-logo {
		width: auto;
		max-width: 7rem;
		height: 4.75rem;
		object-fit: contain;
	}

	.kev-delban-site-header__search .search-form {
		height: 2.75rem;
		border: 1px solid rgb(74 41 58 / 14%) !important;
		border-radius: 0.625rem;
		background: rgb(255 255 255 / 38%) !important;
		box-shadow: inset 0 0 0 1px rgb(255 255 255 / 28%);
		direction: rtl;
		overflow: hidden;
	}

	.kev-delban-site-header__search .search-form:focus-within {
		border-color: rgb(74 41 58 / 34%) !important;
		background: rgb(255 255 255 / 62%) !important;
		box-shadow: 0 0 0 3px var(--kev-brand-primary-soft);
	}

	.kev-delban-site-header__search .search-field {
		order: 2;
		min-width: 0;
		flex: 1;
		padding: 0.625rem 0.875rem;
		font-size: 0.78rem;
		text-align: right;
	}
	.kev-delban-site-header__search .search-submit {
		position: relative;
		order: 1;
		display: grid;
		width: 2.75rem;
		min-width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		border: 0 !important;
		border-radius: 0.625rem;
		background: transparent !important;
		color: var(--kev-color-text) !important;
		place-items: center;
	}

	/* Keep the header search control neutral; the global submit-button skin must not win here. */
	body .kev-delban-site-header__search button.search-submit,
	body .kev-delban-site-header__search input.search-submit {
		border: 0 !important;
		background: transparent !important;
		color: var(--kev-color-text) !important;
	}

	.kev-delban-site-header__search .kev-delban-live-search__submit-icon {
		width: 1.35rem;
		height: 1.35rem;
		fill: none;
		stroke: currentcolor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.65;
	}

	.kev-delban-site-header__search .search-submit:hover {
		background: rgb(91 25 61 / 5%) !important;
	}

	.kev-delban-site-header__menu { gap: clamp(1.5rem, 3.5vw, 3.5rem); }
	.kev-delban-site-header__menu a { padding-block: 0.55rem; color: var(--kev-color-text) !important; font-size: 0.9rem; }
	.kev-delban-site-header__action { width: 2.75rem; height: 2.75rem; border-radius: 50%; }

	.kev-delban-site-header.is-scrolled {
		background: rgb(255 253 252 / 94%) !important;
		box-shadow: 0 0.65rem 1.75rem rgb(74 41 58 / 12%) !important;
	}
}

@media (max-width: 781px) {
	.kev-delban-mobile-header__brand .custom-logo {
		max-width: min(5.5rem, 28vw);
		height: 3.25rem;
	}
}

/* Cart and Checkout replace a template part after the document head is built. Keep
 * their compact identity safe even if a cache serves the feature stylesheet late. */
.kev-delban-site-header--checkout {
	width: 100%;
	margin: 0;
	border-width: 0 0 1px;
	border-radius: 0;
}

.kev-delban-site-header--checkout .kev-delban-site-header__checkout-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(calc(100% - 2rem), 76rem);
	min-height: 4.5rem;
	margin-inline: auto;
	padding-block: 0.5rem;
}

.kev-delban-site-header--checkout .kev-delban-site-header__checkout-logo,
.kev-delban-site-header--checkout .kev-delban-site-header__checkout-logo img {
	display: block;
	width: auto;
	max-width: min(9rem, 42vw);
	height: 3.25rem;
	object-fit: contain;
}
