/* Policies (D-052/D-053) — document layout for single policies and the /policies/ index. */

/* ---- Header band ---- */
.lp-policy__head {
	padding: clamp(var(--lp-s-5), 4vw, var(--lp-s-6)) 0 clamp(var(--lp-s-5), 4vw, var(--lp-s-7));
	border-bottom: 1px solid var(--lp-line);
	background: var(--lp-paper-2);
}

.lp-policy__crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lp-s-2);
	margin: 0 0 var(--lp-s-4);
	color: var(--lp-muted);
	font-size: var(--lp-fs-small);
}

.lp-policy__crumbs a {
	display: inline-flex;
	align-items: center;
	min-height: var(--lp-tap);
	color: var(--lp-green-text);
	text-decoration: none;
}

.lp-policy__crumbs a:hover { text-decoration: underline; }

.lp-policy__title {
	max-width: 900px;
	margin: 0 0 var(--lp-s-3);
	font-size: var(--lp-fs-6);
	line-height: var(--lp-lh-display);
}

.lp-policy__summary {
	max-width: 720px;
	margin: 0 0 var(--lp-s-5);
	color: var(--lp-ink-soft);
	font-size: var(--lp-fs-3);
	line-height: var(--lp-lh-body);
}

.lp-policy__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--lp-s-3) var(--lp-s-5);
}

.lp-policy__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lp-s-2);
	margin: 0;
}

.lp-policy__meta div {
	padding: var(--lp-s-2) var(--lp-s-3);
	border: 1px solid color-mix(in srgb, var(--lp-ink) 10%, transparent);
	border-radius: var(--lp-radius-pill);
	background: var(--lp-white);
	font-size: var(--lp-fs-small);
}

.lp-policy__meta dt {
	display: inline;
	color: var(--lp-muted);
}

.lp-policy__meta dt::after { content: ": "; }

.lp-policy__meta dd {
	display: inline;
	margin: 0;
	color: var(--lp-ink);
	font-weight: var(--lp-weight-bold);
}

.lp-policy__print {
	min-height: var(--lp-tap);
	padding: var(--lp-s-2) var(--lp-s-4);
	border: 1px solid var(--lp-ink);
	border-radius: var(--lp-radius-pill);
	background: transparent;
	color: var(--lp-ink);
	font: inherit;
	font-size: var(--lp-fs-small);
	font-weight: var(--lp-weight-bold);
	cursor: pointer;
	transition: background var(--lp-ease), color var(--lp-ease);
}

.lp-policy__print:hover {
	border-color: var(--lp-text);
	background: var(--lp-card);
	color: var(--lp-text);
}

/* ---- Layout: contents rail + document sheet ---- */
.lp-policy__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--lp-s-5);
	padding-top: clamp(var(--lp-s-5), 4vw, var(--lp-s-7));
}

.lp-policy__layout:not(.has-toc) .lp-policy__sheet {
	max-width: 900px;
	margin-inline: auto;
}

@media (min-width: 1024px) {
	.lp-policy__layout.has-toc {
		grid-template-columns: 260px minmax(0, 1fr);
		gap: clamp(var(--lp-s-6), 4vw, var(--lp-s-7));
		align-items: start;
	}
}

.lp-policy__sheet {
	min-width: 0;
	padding: clamp(var(--lp-s-5), 4.5vw, var(--lp-s-8));
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-radius-xl);
	background: var(--lp-card);
	box-shadow: var(--lp-shadow-card);
}

/* ---- Contents ("On this page") ---- */
.lp-policy__aside { min-width: 0; }

@media (min-width: 1024px) {
	.lp-policy__aside {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px);
		max-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px) - 120px);
		overflow-y: auto;
		padding-bottom: var(--lp-s-2);
	}
}

.lp-policy__toc-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--lp-s-3);
	margin: 0 0 var(--lp-s-3);
	color: var(--lp-ink);
	font-size: var(--lp-fs-1);
	font-weight: var(--lp-weight-bold);
	letter-spacing: var(--lp-track-eyebrow);
	text-transform: uppercase;
	list-style: none;
}

.lp-policy__toc-title::-webkit-details-marker { display: none; }

.lp-policy__toc-count {
	color: var(--lp-muted);
	font-weight: var(--lp-weight-regular);
	letter-spacing: 0;
	text-transform: none;
}

.lp-policy__toc-list {
	margin: 0;
	padding: 0;
	border-left: 1px solid color-mix(in srgb, var(--lp-ink) 12%, transparent);
	list-style: none;
}

.lp-policy__toc-list a {
	min-height: var(--lp-tap);
	align-content: center;
	display: grid;
	grid-template-columns: 26px minmax(0, 1fr);
	gap: var(--lp-s-1);
	margin-left: -1px;
	padding: var(--lp-s-2) 0 var(--lp-s-2) var(--lp-s-3);
	border-left: 2px solid transparent;
	color: var(--lp-ink-soft);
	font-size: var(--lp-fs-1);
	line-height: var(--lp-lh-snug);
	text-decoration: none;
	transition: color var(--lp-ease), border-color var(--lp-ease);
}

.lp-policy__toc-num {
	color: var(--lp-muted);
	font-size: var(--lp-fs-1);
	font-variant-numeric: tabular-nums;
	line-height: var(--lp-lh-body);
}

.lp-policy__toc-list a:hover { color: var(--lp-green-text); }

.lp-policy__toc-list a[aria-current="true"] {
	border-left-color: var(--lp-highlight);
	color: var(--lp-ink);
	font-weight: var(--lp-weight-bold);
}

.lp-policy__toc-list a[aria-current="true"] .lp-policy__toc-num { color: var(--lp-green-text); }

/* Desktop: always open, the title is just a label. */
@media (min-width: 1024px) {
	.lp-policy__toc-title { pointer-events: none; }
}

/* Phones and tablets: a collapsible box above the document. */
@media (max-width: 1023px) {
	.lp-policy__toc {
		border: 1px solid var(--lp-line);
		border-radius: var(--lp-radius-md);
		background: var(--lp-card);
	}

	.lp-policy__toc-title {
		margin: 0;
		padding: var(--lp-s-4) var(--lp-s-4);
		cursor: pointer;
	}

	.lp-policy__toc-title::after {
		content: "";
		flex: none;
		width: 8px;
		height: 8px;
		margin-left: var(--lp-s-1);
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-3px) rotate(45deg);
		transition: transform var(--lp-ease);
	}

	.lp-policy__toc[open] .lp-policy__toc-title::after { transform: translateY(1px) rotate(225deg); }

	.lp-policy__toc-count { margin-left: auto; }

	.lp-policy__toc-list { margin: 0 var(--lp-s-4) var(--lp-s-4); }
}

/* ---- Document body ---- */
.lp-policy__body {
	max-width: 780px;
	color: var(--lp-ink-soft);
	font-size: var(--lp-fs-body);
	line-height: var(--lp-lh-body);
	counter-reset: lp-section;
}

.lp-policy__body > :first-child { margin-top: 0; }

.lp-policy__body p { margin: 0 0 1em; }

.lp-policy__body a {
	color: var(--lp-green-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.lp-policy__body strong { color: var(--lp-ink); }

.lp-policy__body h2 {
	counter-increment: lp-section;
	scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px);
	margin: 2.4em 0 0.7em;
	padding-top: 1.6em;
	border-top: 1px solid var(--lp-line);
	color: var(--lp-ink);
	font-size: var(--lp-fs-5);
	line-height: var(--lp-lh-heading);
}

.lp-policy__body h2::before {
	content: counter(lp-section, decimal-leading-zero);
	display: block;
	margin-bottom: var(--lp-s-2);
	color: var(--lp-green-text);
	font-size: var(--lp-fs-1);
	font-weight: var(--lp-weight-bold);
	letter-spacing: var(--lp-track-eyebrow);
	font-variant-numeric: tabular-nums;
}

/* No rule above the first section. */
.lp-policy__body > h2:first-child,
.lp-policy__body > .lp-policy-note + h2 {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.lp-policy__body h3 {
	margin: 1.6em 0 0.5em;
	color: var(--lp-ink);
	font-size: var(--lp-fs-3);
}

.lp-policy__body ul,
.lp-policy__body ol {
	margin: 0 0 1.2em;
	padding-left: 1.25em;
}

.lp-policy__body li { margin-bottom: var(--lp-s-2); }
.lp-policy__body li::marker { color: var(--lp-support); }

.lp-policy__body code {
	padding: 1px var(--lp-s-1);
	border-radius: var(--lp-radius-sm);
	background: var(--lp-paper);
	font-size: 0.9em;
}

/* "Draft for review" and other callouts. */
.lp-policy__body .lp-policy-note {
	margin: 0 0 2em;
	padding: var(--lp-s-3) var(--lp-s-4);
	border-radius: var(--lp-radius-md);
	background: var(--lp-accent-tint);
	color: var(--lp-ink);
	font-size: var(--lp-fs-2);
	line-height: var(--lp-lh-body);
}

/* Tables */
.lp-policy__body .wp-block-table {
	margin: 1.2em 0 1.6em;
	overflow-x: auto;
}

.lp-policy__body table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--lp-fs-2);
	line-height: var(--lp-lh-body);
}

.lp-policy__body th,
.lp-policy__body td {
	padding: var(--lp-s-3) var(--lp-s-3);
	border: 1px solid var(--lp-line);
	text-align: left;
	vertical-align: top;
}

.lp-policy__body thead th {
	border-bottom: 2px solid color-mix(in srgb, var(--lp-ink) 14%, transparent);
	background: var(--lp-paper);
	color: var(--lp-ink);
	font-weight: var(--lp-weight-bold);
}

.lp-policy__body .wp-block-table thead { border-bottom: 0; }

/* Supplier approval questionnaire: numbered Q&A tables. */
.lp-policy__body .lp-saq table { table-layout: fixed; }
.lp-policy__body .lp-saq th:nth-child(1),
.lp-policy__body .lp-saq td:nth-child(1) { width: 64px; }
.lp-policy__body .lp-saq th:nth-child(2),
.lp-policy__body .lp-saq td:nth-child(2) { width: 36%; }

.lp-policy__body .lp-saq td:nth-child(1) {
	color: var(--lp-green-text);
	font-weight: var(--lp-weight-bold);
	font-variant-numeric: tabular-nums;
}

.lp-policy__body .lp-saq td:nth-child(2) {
	color: var(--lp-ink);
	font-weight: var(--lp-weight-bold);
}

@media (max-width: 639px) {
	.lp-policy__body .lp-saq table,
	.lp-policy__body .lp-saq tbody { display: block; }
	.lp-policy__body .lp-saq thead { display: none; }

	.lp-policy__body .lp-saq tr {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr);
		padding: var(--lp-s-3) 0;
		border-bottom: 1px solid var(--lp-line);
	}

	.lp-policy__body .lp-saq td {
		width: auto !important;
		padding: 0;
		border: 0;
	}

	.lp-policy__body .lp-saq td:nth-child(3) {
		grid-column: 2;
		margin-top: var(--lp-s-1);
	}
}

/* Closing contact line */
.lp-policy__contact {
	max-width: 780px;
	margin: 2.4em 0 0;
	padding-top: 1.4em;
	border-top: 1px solid var(--lp-line);
	color: var(--lp-muted);
	font-size: var(--lp-fs-small);
}

.lp-policy__contact a { color: var(--lp-green-text); }

/* ---- Related policies ---- */
.lp-policy__related { padding-top: clamp(var(--lp-s-6), 5vw, var(--lp-s-8)); }

.lp-policy__related-title {
	margin: 0 0 var(--lp-s-3);
	font-size: var(--lp-fs-3);
}

.lp-policy__related ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lp-s-2);
	margin: 0 0 var(--lp-s-5);
	padding: 0;
	list-style: none;
}

.lp-policy__related ul a {
	min-height: var(--lp-tap);
	display: inline-flex;
	align-items: center;
	display: inline-block;
	padding: var(--lp-s-2) var(--lp-s-4);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-radius-pill);
	background: var(--lp-card);
	color: var(--lp-ink);
	text-decoration: none;
	transition: border-color var(--lp-ease), color var(--lp-ease);
}

.lp-policy__related ul a:hover {
	border-color: var(--lp-highlight);
	color: var(--lp-green-text);
}

.lp-policy__all { margin: 0; }

.lp-policy__all a {
	min-height: var(--lp-tap);
	display: inline-flex;
	align-items: center;
	color: var(--lp-green-text);
	font-weight: var(--lp-weight-bold);
	text-decoration: none;
}

.lp-policy__all a:hover { text-decoration: underline; }

/* ---- /policies/ index ---- */
.lp-policy-group + .lp-policy-group { margin-top: clamp(var(--lp-s-6), 5vw, var(--lp-s-8)); }

.lp-policy-group__title {
	margin: 0 0 var(--lp-s-4);
	font-size: var(--lp-fs-5);
}

.lp-policy-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: var(--lp-s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.lp-policy-list__item {
	position: relative;
	padding: var(--lp-s-5) var(--lp-s-5) var(--lp-s-5);
	border: 1px solid var(--lp-line);
	border-radius: var(--lp-radius-lg);
	background: var(--lp-offwhite);
	transition: box-shadow var(--lp-ease), border-color var(--lp-ease);
}

.lp-policy-list__item:hover,
.lp-policy-list__item:focus-within {
	border-color: var(--lp-highlight);
	box-shadow: var(--lp-shadow-card);
}

.lp-policy-list__title {
	margin: 0 0 var(--lp-s-2);
	font-size: var(--lp-fs-3);
	line-height: var(--lp-lh-snug);
}

.lp-policy-list__title a {
	color: var(--lp-ink);
	text-decoration: none;
}

/* Whole card clickable. */
.lp-policy-list__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.lp-policy-list__summary {
	margin: 0 0 var(--lp-s-3);
	color: var(--lp-ink-soft);
	line-height: var(--lp-lh-body);
}

.lp-policy-list__meta {
	margin: 0;
	color: var(--lp-muted);
	font-size: var(--lp-fs-small);
}

/* Room above the footer. */
.lp-policy,
.lp-policy-index { margin-bottom: var(--lp-section-y); }

/* ---- Print / save as PDF: just the document ---- */
@media print {
	.lp-header,
	.lp-footer,
	.lp-policy__crumbs,
	.lp-policy__print,
	.lp-policy__aside,
	.lp-policy__related,
	.lp-skip,
	#wpadminbar,
	.lp-switcher { display: none !important; }

	body { background: #fff; color: #000; }
	.lp-policy__head { padding: 0 0 12pt; background: none; }
	.lp-policy__meta div { border-color: #999; }
	.lp-policy__layout,
	.lp-policy__layout.has-toc { display: block; padding-top: 12pt; }
	.lp-policy__sheet { padding: 0; border: 0; box-shadow: none; }
	.lp-policy__body { max-width: none; font-size: 10.5pt; }
	.lp-policy__body h2 { break-after: avoid; }
	.lp-policy__body tr { break-inside: avoid; }
	.lp-policy__body a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8.5pt; }
}
