.cookie-banner,
.cookie-settings {
	position: fixed;
	z-index: 1000;
	left: 50%;
	width: min(100% - 2rem, 1040px);
	transform: translateX(-50%);
	padding: clamp(1rem, 2.5vw, 1.5rem);
	border: 1px solid var(--color-line);
	border-top: 4px solid var(--color-blue);
	border-radius: 10px;
	color: var(--color-text);
	background: var(--color-cream);
	box-shadow: 0 12px 40px rgb(18 58 89 / 28%);
}

.cookie-banner {
	bottom: 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	max-height: min(65vh, 430px);
	overflow-y: auto;
}

.cookie-banner__copy { min-width: 0; }
.cookie-banner h2,
.cookie-settings h2 { margin: 0 0 .55rem; color: var(--color-indigo); font-family: var(--font-body); font-size: 1.12rem; }
.cookie-banner p { margin: 0 0 .45rem; font-size: .9rem; line-height: 1.5; }
.cookie-banner p:last-child { margin-bottom: 0; }
.cookie-banner a { color: var(--color-blue-dark); font-weight: 800; }
.cookie-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.cookie-button { min-height: 44px; padding: .65rem .9rem; border: 2px solid var(--color-blue); border-radius: 6px; font: inherit; font-size: .88rem; font-weight: 800; line-height: 1.2; cursor: pointer; transition: background-color .16s ease, color .16s ease, border-color .16s ease; }
.cookie-button--accept { border-color: var(--color-indigo); color: var(--color-white); background: var(--color-indigo); }
.cookie-button--accept:hover { border-color: var(--color-blue-dark); background: var(--color-blue-dark); }
.cookie-button--reject { color: var(--color-indigo); background: var(--color-white); }
.cookie-button--reject:hover { color: var(--color-white); background: var(--color-blue); }
.cookie-button--settings { color: var(--color-indigo); background: var(--color-blue-light); }
.cookie-button--settings:hover { background: #c8dce8; }
.cookie-button:focus-visible,
.cookie-settings__close:focus-visible { outline: 3px solid #6FA9C8; outline-offset: 3px; }

.cookie-settings {
	bottom: 1rem;
	max-height: min(82vh, 720px);
	overflow-y: auto;
}
.cookie-settings__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cookie-settings__header h2 { margin: 0; font-size: 1.25rem; }
.cookie-settings__close { width: 40px; height: 40px; border: 1px solid var(--color-line); border-radius: 50%; color: var(--color-indigo); background: var(--color-white); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.cookie-settings__intro { margin: .55rem 0 1rem; color: var(--color-muted); font-size: .9rem; }
.cookie-category { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin-top: .65rem; padding: .9rem 1rem; border: 1px solid var(--color-line); border-radius: 7px; background: var(--color-white); cursor: pointer; }
.cookie-category h3,
.cookie-category__title { display: block; margin: 0 0 .25rem; color: var(--color-indigo); font-family: var(--font-body); font-size: .98rem; font-weight: 800; }
.cookie-category p,
.cookie-category__description { display: block; margin: 0; color: var(--color-muted); font-size: .86rem; line-height: 1.45; }
.cookie-category input[type="checkbox"] { width: 1.25rem; height: 1.25rem; accent-color: var(--color-blue-dark); }
.cookie-category__always { color: var(--color-blue-dark); font-size: .82rem; font-weight: 800; text-align: right; }
.cookie-settings__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.cookie-settings__actions .cookie-button--accept { min-width: 190px; }
.contact-map__blocked { display: grid; min-height: 280px; place-content: center; justify-items: center; gap: .55rem; padding: 1.5rem; border: 1px solid var(--color-line); border-radius: 8px; color: var(--color-indigo); background: radial-gradient(circle, rgb(40 101 140 / 15%) 1px, transparent 1.3px) center / 18px 18px, var(--color-blue-light); text-align: center; }
.contact-map__blocked p { max-width: 560px; margin: 0; }
.contact-map__blocked .cookie-button { margin-top: .35rem; }
.contact-map__privacy-note { color: var(--color-muted); font-size: .82rem; }
.cookie-banner[hidden],
.cookie-settings[hidden] { display: none !important; }

@media (max-width: 760px) {
	.cookie-banner,
	.cookie-settings { right: 0; bottom: 0; left: 0; width: 100%; transform: none; border-radius: 12px 12px 0 0; }
	.cookie-banner { display: block; padding: 1rem; }
	.cookie-banner__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; margin-top: .85rem; }
	.cookie-banner__actions .cookie-button--settings { grid-column: 1 / -1; }
	.cookie-button { min-height: 46px; }
	.cookie-settings { padding: 1rem; }
	.cookie-category { gap: .7rem; padding: .8rem; }
	.cookie-settings__actions { display: grid; grid-template-columns: 1fr; }
	.cookie-settings__actions .cookie-button--accept { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.cookie-button { transition: none; }
}
