/* ------------------------------------------------------------------
 * D13A Cookie Consent — CNIL-compliant banner (Anthropic palette)
 * - Warm cream surface, dark-brown text
 * - Refuser ghost / Tout accepter terracotta — same size, same weight
 * - Sits clear of bottom-right floating actions on small viewports
 * ------------------------------------------------------------------ */

.d13a-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	padding: 0 var(--gutter);
	pointer-events: none;
	transform: translateY(120%);
	transition: transform var(--duration-slow) var(--ease-out),
	            opacity var(--duration-base) var(--ease-out);
	opacity: 0;
}

.d13a-cookie[hidden] {
	display: none !important;
}

.d13a-cookie.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}

.d13a-cookie__inner {
	position: relative;
	max-width: var(--container-max);
	margin: 0 auto var(--space-5);
	background: var(--color-bg);
	color: var(--color-text-primary);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-elevated);
	padding: var(--space-6) var(--space-8);
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: var(--space-8);
	font-family: var(--font-sans);
	pointer-events: auto;
}

/* Close X — small, ghost, top-right */
.d13a-cookie__close {
	position: absolute;
	top: 10px;
	right: 12px;
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	border-radius: var(--radius-full);
	background: transparent;
	color: var(--color-text-muted);
	cursor: pointer;
	transition: var(--transition-base);
}

.d13a-cookie__close:hover {
	color: var(--color-text-primary);
	background: var(--color-surface-hover);
	border-color: var(--color-border-subtle);
}

/* Copy block */
.d13a-cookie__copy {
	min-width: 0;
}

.d13a-cookie__eyebrow {
	margin: 0 0 var(--space-1);
	font-size: var(--text-2xs);
	font-weight: 500;
	letter-spacing: var(--tracking-label);
	text-transform: uppercase;
	color: var(--color-text-muted);
	font-family: var(--font-mono);
}

.d13a-cookie__text {
	margin: 0;
	font-size: var(--text-sm);
	line-height: var(--leading-body);
	color: var(--color-text-primary);
	max-width: 64ch;
}

.d13a-cookie__link {
	color: var(--color-text-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: var(--color-border-strong);
	transition: text-decoration-color var(--duration-fast) var(--ease-out),
	            color var(--duration-fast) var(--ease-out);
}

.d13a-cookie__link:hover {
	color: var(--color-accent);
	text-decoration-color: var(--color-accent);
}

/* Actions — both buttons share size + weight (CNIL) */
.d13a-cookie__actions {
	display: flex;
	gap: var(--space-3);
	flex-shrink: 0;
}

.d13a-cookie__btn {
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: 500;
	line-height: 1;
	padding: 12px 22px;
	border-radius: var(--radius-full);
	border: 1px solid transparent;
	cursor: pointer;
	transition: var(--transition-base);
	white-space: nowrap;
	min-width: 132px;
	text-align: center;
}

.d13a-cookie__btn--ghost {
	background: transparent;
	color: var(--color-text-primary);
	border-color: var(--color-border-strong);
}

.d13a-cookie__btn--ghost:hover {
	background: var(--color-surface);
	border-color: var(--color-text-primary);
}

.d13a-cookie__btn--primary {
	background: var(--color-accent);
	color: var(--color-on-accent);
	box-shadow: var(--shadow-cta);
}

.d13a-cookie__btn--primary:hover {
	background: var(--color-accent-hover);
	transform: translateY(-1px);
}

/* ----- Tablet ----- */
@media (max-width: 900px) {
	.d13a-cookie__inner {
		padding: var(--space-5) var(--space-5) var(--space-5);
		gap: var(--space-5);
	}
	.d13a-cookie__btn {
		min-width: 110px;
		padding: 11px 16px;
	}
}

/* ----- Mobile (≤640px) — stack, leave room for floating actions ----- */
@media (max-width: 640px) {
	.d13a-cookie {
		/* Floating actions sit bottom-right ~110-160px high. Stack the
		   banner above their footprint on small viewports so it does not
		   overlap. We keep some breathing room from the bottom edge. */
		padding: 0 var(--space-4);
	}
	.d13a-cookie__inner {
		grid-template-columns: 1fr;
		align-items: stretch;
		text-align: left;
		padding: var(--space-5);
		margin-bottom: 96px; /* clear floating phone/whatsapp area */
		gap: var(--space-4);
		border-radius: var(--radius-lg);
	}
	.d13a-cookie__close {
		top: 8px;
		right: 8px;
	}
	.d13a-cookie__text {
		font-size: var(--text-sm);
		padding-right: 28px; /* don't run under the X */
	}
	.d13a-cookie__actions {
		width: 100%;
	}
	.d13a-cookie__btn {
		flex: 1 1 0;
		min-width: 0;
		padding: 13px 16px;
	}
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	.d13a-cookie {
		transition: opacity var(--duration-fast) linear;
		transform: none;
	}
	.d13a-cookie__btn--primary:hover {
		transform: none;
	}
}
