/* Privacy Policy page. Scoped to .bp-privacy-main-wrap; mirrors the Terms & Conditions layout. */
.bp-privacy-main-wrap {
	--bp-privacy-cream: #f2e7d4;
	--bp-privacy-ivory: #f6f2ea;
	--bp-privacy-espresso: #33251e;
	--bp-privacy-bronze: #b18b63;
	/* Bronze for large text on light grounds. */
	--bp-privacy-bronze-strong: #8a6440;
	/* Bronze for small text, focus rings and active states on light grounds. */
	--bp-privacy-bronze-text: #7a5634;
	/* Bronze for text on espresso. */
	--bp-privacy-bronze-light: #cfa66c;
	--bp-privacy-body: #3d2e25;
	--bp-privacy-muted: #6a5a4e;
	--bp-privacy-line: rgba(51, 37, 30, 0.14);
	--bp-privacy-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--bp-privacy-offset: calc(var(--bp-header-height) + 28px);

	margin-block-start: 0;
	padding-top: var(--bp-header-height);
	background: var(--bp-privacy-ivory);
	color: var(--bp-privacy-espresso);
	font-family: "Hanken Grotesk", system-ui, sans-serif;
}

/* Sections meet edge to edge: no block-gap strips between them or before the footer. */
.bp-privacy-main-wrap > *,
.bp-privacy-main-wrap + * { margin-block: 0; }

.bp-privacy-main-wrap :focus-visible { outline-color: var(--bp-privacy-bronze-text); }
.bp-privacy-closing :focus-visible { outline-color: var(--bp-privacy-bronze-light); }

.bp-privacy-shell {
	width: min(100%, 1240px);
	margin: 0 auto;
}

/* Shared type ------------------------------------------------------------ */
.bp-privacy-label {
	display: flex;
	gap: 12px;
	align-items: center;
	margin: 0;
	color: var(--bp-privacy-bronze-text);
	font: 500 11px/1.4 "IBM Plex Mono", monospace;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.bp-privacy-label i {
	display: block;
	flex: none;
	width: 40px;
	height: 1px;
	background: var(--bp-privacy-bronze);
}

.bp-privacy-main-wrap h1,
.bp-privacy-main-wrap h2 {
	margin: 0;
	color: inherit;
	font-family: "Bodoni Moda", Georgia, serif;
	font-weight: 500;
	letter-spacing: -0.03em;
	text-wrap: balance;
}
.bp-privacy-main-wrap h1 { font-size: clamp(38px, 4.3vw, 62px); line-height: 1.02; }
.bp-privacy-main-wrap h1 em,
.bp-privacy-closing h2 em {
	display: block;
	color: var(--bp-privacy-bronze-strong);
	font-style: italic;
}
.bp-privacy-main-wrap p { margin: 0; }

/* Links and buttons ------------------------------------------------------ */
.bp-privacy-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 30px;
	align-items: center;
}
.bp-privacy-button {
	display: inline-flex;
	gap: 14px;
	align-items: center;
	min-height: 50px;
	padding: 0 26px;
	background: var(--bp-privacy-cream);
	color: var(--bp-privacy-espresso);
	font: 600 14px/1 "Hanken Grotesk", sans-serif;
	text-decoration: none;
	transition: background-color 220ms ease;
}
.bp-privacy-button:hover { background: var(--bp-privacy-ivory); color: var(--bp-privacy-espresso); }
.bp-privacy-link {
	display: inline-flex;
	gap: 10px;
	align-items: center;
	min-height: 32px;
	border-bottom: 1px solid var(--bp-privacy-bronze);
	color: var(--bp-privacy-cream);
	font: 600 14px/1.3 "Hanken Grotesk", sans-serif;
	text-decoration: none;
	transition: color 200ms ease;
}
.bp-privacy-link:hover { color: var(--bp-privacy-bronze-light); }
.bp-privacy-button span,
.bp-privacy-link span { transition: transform 240ms var(--bp-privacy-ease); }
.bp-privacy-button:hover span,
.bp-privacy-link:hover span { transform: translateX(4px); }

/* 01 Hero ---------------------------------------------------------------- */
.bp-privacy-hero {
	padding: clamp(56px, 7vw, 104px) clamp(20px, 4vw, 64px) clamp(48px, 5vw, 72px);
	border-bottom: 1px solid var(--bp-privacy-line);
}
.bp-privacy-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 40px clamp(40px, 7vw, 112px);
	align-items: end;
}
.bp-privacy-hero__head {
	display: grid;
	gap: 26px;
	animation: bp-privacy-rise 700ms var(--bp-privacy-ease) both;
}
.bp-privacy-hero__lead {
	padding-top: 26px;
	border-top: 1px solid var(--bp-privacy-bronze);
	color: var(--bp-privacy-body);
	font-size: 17px;
	line-height: 1.7;
	animation: bp-privacy-rise 900ms 120ms var(--bp-privacy-ease) both;
}
.bp-privacy-hero .bp-privacy-updated {
	grid-column: 2;
	margin-top: -22px;
	color: var(--bp-privacy-muted);
	font: 500 11px/1.5 "IBM Plex Mono", monospace;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	animation: bp-privacy-rise 900ms 160ms var(--bp-privacy-ease) both;
}

.bp-privacy-highlights {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: clamp(16px, 2vw, 28px) 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--bp-privacy-line);
	animation: bp-privacy-rise 900ms 220ms var(--bp-privacy-ease) both;
}
.bp-privacy-highlights li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 4px 16px;
	align-content: start;
	padding: 24px clamp(16px, 2.4vw, 32px) 4px 0;
}
.bp-privacy-highlights li + li {
	padding-left: clamp(16px, 2.4vw, 32px);
	border-left: 1px solid var(--bp-privacy-line);
}
.bp-privacy-highlights__num {
	grid-row: span 2;
	color: var(--bp-privacy-bronze-text);
	font: 500 11px/1.9 "IBM Plex Mono", monospace;
	letter-spacing: 0.12em;
}
.bp-privacy-highlights strong {
	color: var(--bp-privacy-espresso);
	font: 500 19px/1.25 "Bodoni Moda", Georgia, serif;
	letter-spacing: -0.01em;
}
.bp-privacy-highlights li > span:last-child {
	color: var(--bp-privacy-muted);
	font-size: 14px;
	line-height: 1.55;
}

/* 02 Policy -------------------------------------------------------------- */
.bp-privacy-policy {
	padding: clamp(56px, 7vw, 104px) clamp(20px, 4vw, 64px) clamp(64px, 8vw, 112px);
	background: var(--bp-privacy-cream);
}
.bp-privacy-policy__inner {
	display: grid;
	grid-template-columns: minmax(220px, 3fr) minmax(0, 8fr);
	gap: 48px clamp(40px, 6vw, 104px);
	align-items: start;
}

/* Contents: sticky on desktop, a plain list on smaller screens. */
.bp-privacy-toc {
	position: sticky;
	top: var(--bp-privacy-offset);
	display: grid;
	gap: 16px;
	max-height: calc(100vh - var(--bp-privacy-offset) - 24px);
	overflow-y: auto;
	scrollbar-width: none;
	padding: 2px 4px 2px 2px;
}
/* Keep the contents scrollable on short screens without showing a scrollbar. */
.bp-privacy-toc::-webkit-scrollbar { display: none; }
.bp-privacy-toc__title {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--bp-privacy-bronze);
	color: var(--bp-privacy-bronze-text);
	font: 500 11px/1.4 "IBM Plex Mono", monospace;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.bp-privacy-toc ol {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bp-privacy-toc a {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	box-sizing: border-box;
	align-items: baseline;
	min-height: 40px;
	padding: 9px 0;
	border-bottom: 1px solid var(--bp-privacy-line);
	color: var(--bp-privacy-body);
	font-size: 14px;
	line-height: 1.4;
	text-decoration: none;
	transition: color 200ms ease;
}
.bp-privacy-toc a span {
	color: var(--bp-privacy-bronze-text);
	font: 500 10px/1 "IBM Plex Mono", monospace;
	letter-spacing: 0.1em;
}
.bp-privacy-toc a:hover { color: var(--bp-privacy-bronze-text); }

.bp-privacy-content {
	display: grid;
	max-width: 760px;
}
.bp-privacy-section {
	display: grid;
	gap: 16px;
	scroll-margin-top: var(--bp-privacy-offset);
	padding: clamp(32px, 3.6vw, 44px) 0;
	border-top: 1px solid var(--bp-privacy-line);
}
.bp-privacy-section:first-child { padding-top: 0; border-top: 0; }
/* Keep the sticky contents in view when the final section is targeted. */
.bp-privacy-section:last-child {
	box-sizing: border-box;
	align-content: start;
	min-height: calc(100vh - var(--bp-privacy-offset));
}
.bp-privacy-section__num {
	color: var(--bp-privacy-bronze-text);
	font: 500 11px/1.4 "IBM Plex Mono", monospace;
	letter-spacing: 0.16em;
}
.bp-privacy-section h2 {
	margin-bottom: 4px;
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1.12;
}
.bp-privacy-section p:not(.bp-privacy-section__num),
.bp-privacy-section li {
	max-width: 68ch;
	color: var(--bp-privacy-body);
	font-size: 16px;
	line-height: 1.75;
}
.bp-privacy-section p a,
.bp-privacy-section li a {
	color: var(--bp-privacy-espresso);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--bp-privacy-bronze);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.bp-privacy-section p a:hover,
.bp-privacy-section li a:hover { color: var(--bp-privacy-bronze-text); }
/* Bulleted lists: bronze rule markers aligned to the first line. */
.bp-privacy-section ul {
	display: grid;
	gap: 12px;
	max-width: 68ch;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bp-privacy-section li {
	position: relative;
	padding-left: 26px;
}
.bp-privacy-section li::before {
	content: "";
	position: absolute;
	top: 0.85em;
	left: 0;
	width: 12px;
	height: 1px;
	background: var(--bp-privacy-bronze);
}
.bp-privacy-section:target h2 { color: var(--bp-privacy-bronze-text); }


/* 03 Closing ------------------------------------------------------------- */
.bp-privacy-closing {
	padding: clamp(64px, 7vw, 96px) clamp(20px, 4vw, 64px);
	border-bottom: 1px solid rgba(177, 139, 99, 0.45);
	background: var(--bp-privacy-espresso);
	color: var(--bp-privacy-cream);
}
.bp-privacy-closing__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 32px clamp(40px, 7vw, 112px);
	align-items: end;
}
.bp-privacy-closing__head { display: grid; gap: 18px; }
.bp-privacy-closing h2 { font-size: clamp(28px, 2.6vw, 38px); line-height: 1.06; }
.bp-privacy-closing .bp-privacy-label,
.bp-privacy-closing h2 em { color: var(--bp-privacy-bronze-light); }
.bp-privacy-closing__body { display: grid; gap: 24px; }
.bp-privacy-closing__body p {
	max-width: 520px;
	color: rgba(242, 231, 212, 0.8);
	font-size: 15px;
	line-height: 1.7;
}

/* Motion ----------------------------------------------------------------- */
@keyframes bp-privacy-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.bp-privacy-main-wrap *,
	.bp-privacy-main-wrap *::before { animation: none !important; transition: none !important; }
}

@media (prefers-reduced-motion: no-preference) {
	html:has(.bp-privacy-main-wrap) { scroll-behavior: smooth; }
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 900px) {
	.bp-privacy-hero__inner,
	.bp-privacy-policy__inner,
	.bp-privacy-closing__inner { grid-template-columns: minmax(0, 1fr); }
	.bp-privacy-hero__inner { align-items: start; }
	.bp-privacy-hero .bp-privacy-updated { grid-column: auto; margin-top: -16px; }
	.bp-privacy-highlights { margin-top: 0; }

	.bp-privacy-toc {
		position: static;
		max-height: none;
		overflow: visible;
		padding: 0;
	}
	.bp-privacy-toc ol {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 32px;
	}
	.bp-privacy-content { max-width: none; }
	.bp-privacy-section:last-child { min-height: 0; }
}

@media (max-width: 600px) {
	.bp-privacy-highlights { grid-template-columns: minmax(0, 1fr); }
	.bp-privacy-highlights li { padding: 18px 0; }
	.bp-privacy-highlights li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--bp-privacy-line); }
	.bp-privacy-toc ol { grid-template-columns: minmax(0, 1fr); }
	.bp-privacy-toc a { min-height: 44px; }
	.bp-privacy-section p:not(.bp-privacy-section__num),
	.bp-privacy-section li { font-size: 15px; }
	.bp-privacy-button { width: 100%; justify-content: space-between; }
}
