/* Theme Settings may override the brand pair; the neutral Delban system stays stable. */
:root {
	--kev-color-brand-primary: #4a293a;
	--kev-color-brand-secondary: #b58fa3;
	--kev-color-brand-accent: #ff347f;
	--kev-color-canvas: #fbf8f5;
	--kev-color-canvas-deep: #f5ece9;
	--kev-color-surface: #fffdfc;
	--kev-color-surface-elevated: #ffffff;
	--kev-color-border: #e9dfde;
	--kev-color-text: #211c1f;
	--kev-color-muted: #817477;
	--kev-color-success: #718b78;
	--kev-color-error: #a5485f;
	--kev-section-spacing: var(--wp--preset--spacing--60, clamp(2rem, 1.5rem + 1.5vw, 3rem));
	--kev-base-font-size: 16px;
	--kev-base-line-height: 1.65;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	min-height: 100%;
	margin: 0;
	font-size: var(--kev-base-font-size);
	line-height: var(--kev-base-line-height);
}

/* WordPress applies the global block gap between direct template siblings.
 * Structural Theme regions own their own spacing and must meet edge-to-edge. */
.wp-site-blocks > :is(
	.kev-delban-mobile-header,
	.kev-delban-site-header,
	.content-area,
	.wp-block-post-content,
	.kev-delban-site-footer,
	.kev-delban-mobile-bottom-nav__spacer
) {
	margin-block-start: 0;
}

:where(img, picture, video, canvas, svg) {
	display: block;
	max-width: 100%;
	height: auto;
}

:where(button, input, select, textarea) {
	font: inherit;
}

body:has(.kev-delban-front-page-composition),
.kev-delban-front-page-composition {
	background: var(--kev-color-canvas);
}

.kev-delban-front-page-composition {
	--kev-front-page-section-space: clamp(1.5rem, 2.5vw, 2rem);
	--kev-front-page-section-space-compact: clamp(1.25rem, 2vw, 1.75rem);
	--kev-front-page-canvas: var(--kev-color-canvas);
	--kev-front-page-canvas-deep: var(--kev-color-canvas-deep);
	--kev-front-page-divider: color-mix(in srgb, var(--kev-color-brand-secondary) 10%, transparent);
	--kev-front-page-transition-shadow: 0 -1.25rem 3rem rgb(0 0 0 / 12%);
	margin-block: 0;
	overflow-x: clip;
}

/* The approved Home composition begins behind the floating Header. The Header
 * keeps the same geometry as every public route; only the Hero underlaps it. */
@media (min-width: 782px) {
	body.home .kev-delban-front-page-composition {
		margin-block-start: -10rem;
	}
}

@media (max-width: 781px) {
	body.home .kev-delban-front-page-composition {
		margin-block-start: -6rem;
	}
}

.kev-delban-front-page-composition
	> [class*="wp-block-kevira-"] {
	width: 100%;
	margin-block: 0;
	background-color: var(--kev-front-page-canvas);
}

.kev-delban-front-page-composition
	> [data-kevira-hero-carousel] {
	position: relative;
	width: 100vw;
	max-width: none;
	min-height: 100svh;
	margin-inline: calc(50% - 50vw);
	padding: 0;
	border-radius: 0;
	background-color: var(--kev-front-page-canvas-deep);
	box-shadow: inset 0 -1px var(--kev-front-page-divider);
	overflow: hidden;
}

.kev-delban-front-page-composition
	> [data-kevira-hero-carousel]
	> .kev-delban-home-hero__layout {
	width: 100%;
	max-width: none;
	min-height: 100svh;
	margin: 0;
	border-radius: 0;
}

.kev-delban-hero-scroll-down,
.kev-delban-back-to-top {
	display: inline-grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1px solid rgb(173 92 112 / 28%);
	border-radius: 50%;
	background: rgb(255 253 252 / 86%);
	box-shadow: 0 0.6rem 1.8rem rgb(70 42 51 / 16%);
	color: #8f4056;
	cursor: pointer;
	backdrop-filter: blur(10px);
}

.kev-delban-hero-scroll-down {
	position: absolute;
	z-index: 5;
	inset-inline-start: 50%;
	bottom: max(1.25rem, env(safe-area-inset-bottom));
	transform: translateX(-50%);
}

.kev-delban-hero-scroll-down::before,
.kev-delban-back-to-top::before {
	width: 0.7rem;
	height: 0.7rem;
	/* Physical edges keep arrow geometry independent from RTL direction. */
	border-right: 2px solid currentcolor;
	border-bottom: 2px solid currentcolor;
	content: "";
}

.kev-delban-hero-scroll-down::before {
	transform: translateY(-0.15rem) rotate(45deg);
	animation: kev-delban-scroll-cue 1.8s ease-in-out infinite;
}

.kev-delban-back-to-top {
	position: fixed;
	z-index: 95;
	inset-inline-end: max(1.25rem, env(safe-area-inset-right));
	bottom: max(1.25rem, env(safe-area-inset-bottom));
	opacity: 0;
	pointer-events: none;
	transform: translateY(0.75rem);
	transition: opacity 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.kev-delban-back-to-top::before {
	transform: translateY(0.15rem) rotate(-135deg);
}

.kev-delban-back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.kev-delban-hero-scroll-down:hover,
.kev-delban-back-to-top:hover {
	background: #ad5c70;
	color: #fff;
}

.kev-delban-hero-scroll-down:focus-visible,
.kev-delban-back-to-top:focus-visible {
	outline: 3px solid rgb(173 92 112 / 24%);
	outline-offset: 3px;
}

@keyframes kev-delban-scroll-cue {
	0%, 100% { transform: translateY(-0.25rem) rotate(45deg); }
	50% { transform: translateY(0.2rem) rotate(45deg); }
}

@media (max-width: 767px) {
	.kev-delban-hero-scroll-down { bottom: max(0.85rem, env(safe-area-inset-bottom)); }
	.kev-delban-back-to-top { bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
	.kev-delban-hero-scroll-down::before { animation: none; }
	.kev-delban-back-to-top { transition: none; }
}

.kev-delban-front-page-composition
	> [class*="wp-block-kevira-"]:not([data-kevira-hero-carousel]) {
	padding-block: var(--kev-front-page-section-space);
}

.kev-delban-front-page-composition
	> :is(
		.wp-block-kevira-product-categories,
		.wp-block-kevira-delban-benefits,
		.wp-block-kevira-latest-articles
	) {
	padding-block: var(--kev-front-page-section-space-compact);
}

/* Adjacent sections share a transition instead of reading as separate panels. */
.kev-delban-front-page-composition
	> [data-kevira-hero-carousel]
	+ .wp-block-kevira-product-categories {
	padding-block-start: var(--kev-front-page-section-space-compact);
	background-image: linear-gradient(180deg, var(--kev-front-page-canvas-deep), var(--kev-front-page-canvas) clamp(2.5rem, 7vw, 5rem));
}

.kev-delban-front-page-composition
	> .wp-block-kevira-featured-products
	+ .wp-block-kevira-delban-banner {
	padding-block-start: var(--kev-front-page-section-space-compact);
	border-block-start: 1px solid var(--kev-front-page-divider);
	box-shadow: var(--kev-front-page-transition-shadow);
}

.kev-delban-front-page-composition
	> .wp-block-kevira-delban-banner
	+ .wp-block-kevira-delban-benefits {
	padding-block-start: var(--kev-front-page-section-space-compact);
	background-image: linear-gradient(180deg, rgb(216 185 138 / 4%), transparent clamp(3rem, 8vw, 6rem));
}

.kev-delban-front-page-composition
	> .wp-block-kevira-delban-testimonials
	+ .wp-block-kevira-delban-faq {
	padding-block-start: var(--kev-front-page-section-space-compact);
	border-block-start: 1px solid var(--kev-front-page-divider);
	background-image: linear-gradient(180deg, rgb(255 253 249 / 2%), transparent clamp(2.5rem, 7vw, 5rem));
}

.kev-delban-front-page-composition
	> .wp-block-kevira-delban-faq
	+ .wp-block-kevira-latest-articles {
	padding-block-start: var(--kev-front-page-section-space-compact);
	border-block-start: 1px solid var(--kev-front-page-divider);
	box-shadow: var(--kev-front-page-transition-shadow);
}

.wp-block-post-content.kev-delban-front-page-composition
	> .wp-block-kevira-latest-articles:last-child {
	padding-block-end: clamp(4rem, 7vw, 6rem);
}

.wp-block-post-content.kev-delban-front-page-composition
	+ .kev-delban-site-footer {
	margin-block-start: 0;
}

@media (max-width: 700px) {
	input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='color']):not([type='hidden']),
	select,
	textarea {
		font-size: 16px !important;
	}

	html,
	body {
		max-width: 100%;
		overflow-x: clip;
	}

	body > *,
	.wp-site-blocks,
	.wp-block-post-content {
		min-width: 0;
		max-width: 100%;
	}

	.wp-block-post-content.kev-delban-front-page-composition {
		--kev-front-page-section-space: 1.5rem;
		--kev-front-page-section-space-compact: 1.25rem;
	}

	.wp-block-post-content.kev-delban-front-page-composition
		> .wp-block-kevira-latest-articles:last-child {
		padding-block-end: 3.5rem;
	}
}

body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
	.wp-block-post-content:not(.kev-delban-front-page-composition)
	> [class*="wp-block-kevira-"]
	+ [class*="wp-block-kevira-"] {
	margin-block-start: var(--kev-section-spacing);
}
