/* 6.4 Cookie banner (LHR_Consent). Own classes: ckb-*. Slim, one line on desktop, two on phones. */
.ckb {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
	display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--s-2) var(--s-4);
	padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
	background: var(--c-ink); color: var(--c-white);
	font-size: var(--fs-0); line-height: 1.4;
	box-shadow: 0 -6px 24px rgba(0, 0, 0, .25);
	transform: translateY(0); transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.ckb[hidden] { display: none; }
.ckb.is-leaving { transform: translateY(100%); opacity: 0; }
.ckb__text { margin: 0; max-width: 68ch; }
.ckb__link { color: var(--c-gold); text-decoration: underline; text-underline-offset: 3px; }
.ckb__link:hover { color: var(--c-white); }
.ckb__btns { display: flex; gap: var(--s-2); flex: 0 0 auto; }
.ckb__btn { font: inherit; font-weight: 700; padding: .55em 1.1em; border-radius: 999px; cursor: pointer; border: 1.5px solid rgba(255, 255, 255, .45); background: transparent; color: var(--c-white); line-height: 1.2; }
.ckb__btn--accept { background: var(--c-accent); border-color: var(--c-accent); }
.ckb__btn:hover { border-color: var(--c-white); }
.ckb__btn--accept:hover { background: var(--c-accent-2); border-color: var(--c-accent-2); }
.ckb__btn:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 2px; }

/* While the banner is open, the floating WhatsApp button, the nudge and the phone sticky bar move up by the
   banner's measured height (--ckb-h, set by consent.js) so nothing overlaps. */
body.has-ckb .wa-float { bottom: calc(var(--s-4) + var(--ckb-h, 56px)); }
body.has-ckb .nudge { bottom: calc(var(--s-4) + var(--ckb-h, 56px) + 70px); }
@media (max-width: 860px) {
	body.has-ckb .sticky { bottom: var(--ckb-h, 100px); }
	body.has-ckb .nudge { bottom: calc(56px + var(--s-3) + var(--ckb-h, 100px) + env(safe-area-inset-bottom)); }
}
@media (max-width: 600px) {
	.ckb { justify-content: space-between; }
	.ckb__text { flex: 1 1 100%; }
	.ckb__btns { flex: 1 1 100%; }
	.ckb__btn { flex: 1 1 0; text-align: center; }
}

/* Google Maps held back until consent (or a click on the button). */
.ckb-embed { position: absolute; inset: 0; }
.ckb-embed iframe[data-ckb-src] { visibility: hidden; }
.ckb-embed__gate { position: absolute; inset: 0; display: grid; place-content: center; gap: var(--s-3); text-align: center; padding: var(--s-4); background: var(--bg-2); color: var(--ink-2); }
.ckb-embed__text { margin: 0; font-size: var(--fs-0); max-width: 34ch; }
.ckb-embed.is-on .ckb-embed__gate { display: none; }
.ckb-embed.is-on iframe { visibility: visible; }

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

/* ---------- Privacy policy page (design/privacy-policy.html), own classes pol-* ---------- */
.pol { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: var(--s-7); align-items: start; }
.pol__nav { position: sticky; top: calc(var(--header-h) + var(--s-4)); display: flex; flex-direction: column; gap: var(--s-2); font-size: var(--fs-0); font-weight: 600; }
.pol__nav a { color: var(--ink-2); padding: .2em 0; border-left: 2px solid var(--rule); padding-left: var(--s-3); }
.pol__nav a:hover { color: var(--ink); border-left-color: var(--c-accent); }
.pol__body { max-width: 72ch; min-width: 0; }
.pol__body h2 { font-size: var(--fs-3); margin-top: var(--s-6); scroll-margin-top: calc(var(--header-h) + var(--s-4)); }
.pol__body h2:first-child { margin-top: 0; }
.pol__body h3 { font-size: var(--fs-1); margin-top: var(--s-4); }
.pol__body p, .pol__body li { color: var(--ink-2); margin-top: var(--s-3); line-height: 1.6; }
.pol__body li { margin-top: var(--s-2); }
.pol__body ul { padding-left: 1.2em; list-style: disc; }
.pol__body strong { color: var(--ink); }
.pol__body a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.pol__body code { font-size: .92em; background: var(--bg-2); padding: .1em .4em; border-radius: 4px; }
.pol__table { width: 100%; border-collapse: collapse; margin-top: var(--s-4); font-size: var(--fs-0); }
.pol__table th, .pol__table td { text-align: left; vertical-align: top; padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--rule); color: var(--ink-2); }
.pol__table th { color: var(--ink); font-weight: 700; }
@media (max-width: 800px) {
	.pol { grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
	.pol__body, .pol__nav { min-width: 0; }
	.pol__nav { position: static; flex-direction: row; flex-wrap: wrap; gap: var(--s-2) var(--s-3); }
	.pol__nav a { border-left: 0; padding-left: 0; }
	.pol__table { display: block; overflow-x: auto; }
}
