/*
 * Hanuman PDPA — privacy policy page ([hnpdpa_privacy_policy]).
 * Lives inside any theme: inherits the theme's font and text size, scopes
 * every rule under .hnpp, and only adds colour through the variables below.
 */
.hnpp {
	--hnpp-ink: #14213d;
	--hnpp-muted: #4a5568;
	--hnpp-line: #dfe4ea;
	--hnpp-soft: #f4f6f9;
	--hnpp-brand: #0e2f4f;
	--hnpp-accent: #0b7f63;
	--hnpp-radius: 12px;
	color: var(--hnpp-ink);
	line-height: 1.75;
	max-width: 100%;
	overflow-wrap: anywhere;
	container-type: inline-size;
	container-name: hnpp;
}
.hnpp *,
.hnpp *::before,
.hnpp *::after { box-sizing: border-box; }

/* Header */
.hnpp-head {
	position: relative;
	padding: 24px 24px 20px;
	border-radius: var(--hnpp-radius);
	background: var(--hnpp-brand);
	color: #fff;
	margin: 0 0 20px;
}
.hnpp-head p { margin: 0; }
.hnpp-eyebrow { font-size: .875em; opacity: .85; }
.hnpp-org { font-size: 1.35em; font-weight: 700; margin: 4px 0 6px !important; line-height: 1.4; }
.hnpp-dates { font-size: .9em; opacity: .9; }
.hnpp-print {
	margin-top: 14px;
	min-height: 44px;
	padding: 8px 16px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	background: transparent;
	color: #fff;
	font: inherit;
	font-size: .9em;
	cursor: pointer;
}
.hnpp-print:hover,
.hnpp-print:focus-visible { background: rgba(255, 255, 255, .12); }
.hnpp-print:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Summary */
.hnpp-summary { margin: 0 0 28px; }
.hnpp-summary__h { font-size: 1.05em; margin: 0 0 10px; }
.hnpp-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}
/* Sized by the space the theme gives the content, not by the screen. */
@container hnpp (min-width: 480px) { .hnpp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container hnpp (min-width: 900px) { .hnpp-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hnpp-cards li { margin: 0; }
.hnpp-cards a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	padding: 14px 16px;
	border: 1px solid var(--hnpp-line);
	border-top: 4px solid var(--hnpp-accent);
	border-radius: var(--hnpp-radius);
	background: #fff;
	color: var(--hnpp-ink);
	text-decoration: none;
}
.hnpp-cards a:hover,
.hnpp-cards a:focus-visible { border-color: var(--hnpp-brand); border-top-color: var(--hnpp-accent); }
.hnpp-cards strong { color: var(--hnpp-brand); }
.hnpp-cards span { font-size: .92em; color: var(--hnpp-muted); line-height: 1.6; }

/* Body: contents + document */
.hnpp-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
@container hnpp (min-width: 900px) {
	.hnpp-body { grid-template-columns: 240px minmax(0, 1fr); align-items: start; }
	.hnpp-toc { position: sticky; top: 24px; }
}
@container hnpp (min-width: 560px) {
	.hnpp-toc ol { columns: 2; column-gap: 32px; }
	.hnpp-toc li { break-inside: avoid; }
}
@container hnpp (min-width: 900px) {
	.hnpp-toc ol { columns: 1; }
}
.hnpp-toc details {
	border: 1px solid var(--hnpp-line);
	border-radius: var(--hnpp-radius);
	background: var(--hnpp-soft);
	padding: 4px 16px 10px;
}
.hnpp-toc summary { cursor: pointer; font-weight: 700; padding: 10px 0; min-height: 44px; }
.hnpp-toc ol { margin: 0; padding-left: 1.4em; font-size: .92em; }
.hnpp-toc li { margin: 4px 0; }
.hnpp-toc a { color: var(--hnpp-ink); text-decoration: none; }
.hnpp-toc a:hover,
.hnpp-toc a:focus-visible,
.hnpp-toc a[aria-current="true"] { color: var(--hnpp-brand); text-decoration: underline; }
.hnpp-toc a[aria-current="true"] { font-weight: 700; }

.hnpp-doc { min-width: 0; }
.hnpp-doc p { margin: 0 0 1em; }
.hnpp .hnpp-h {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-size: 1.2em;
	line-height: 1.45;
	margin: 1.8em 0 .7em;
	padding-top: .6em;
	border-top: 1px solid var(--hnpp-line);
	scroll-margin-top: 24px;
}
.hnpp .hnpp-h:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.hnpp-num {
	flex: 0 0 auto;
	display: inline-grid;
	place-items: center;
	min-width: 1.9em;
	height: 1.9em;
	border-radius: 50%;
	background: var(--hnpp-brand);
	color: #fff;
	font-size: .8em;
	font-weight: 700;
}
.hnpp-list { margin: 0 0 1em; padding-left: 1.3em; }
.hnpp-list li { margin: .35em 0; }

.hnpp-terms { margin: 0 0 1em; }
.hnpp-terms dt { font-weight: 700; color: var(--hnpp-brand); }
.hnpp-terms dd { margin: 0 0 .8em; }

/* Register entries */
.hnpp-acts { display: grid; gap: 12px; margin: 0 0 1em; }
.hnpp-act { border: 1px solid var(--hnpp-line); border-radius: var(--hnpp-radius); padding: 14px 16px; }
.hnpp .hnpp-act h3 { font-size: 1.02em; margin: 0 0 8px; color: var(--hnpp-brand); }
.hnpp-act dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px 16px; }
.hnpp-act dt { font-weight: 700; font-size: .9em; color: var(--hnpp-muted); }
.hnpp-act dd { margin: 0 0 6px; }
@container hnpp (min-width: 560px) {
	.hnpp-act dl { grid-template-columns: 9.5em minmax(0, 1fr); }
	.hnpp-act dd { margin: 0; }
}

/* Generic purpose table */
.hnpp-tbl { overflow-x: auto; margin: 0 0 1em; }
.hnpp-tbl table { width: 100%; border-collapse: collapse; font-size: .95em; }
.hnpp-tbl th,
.hnpp-tbl td { border: 1px solid var(--hnpp-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.hnpp-tbl th { background: var(--hnpp-soft); }

/* Rights */
.hnpp-rights {
	list-style: none;
	margin: 0 0 1.2em;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 10px;
}
.hnpp-rights li {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 14px 16px;
	border-radius: var(--hnpp-radius);
	background: var(--hnpp-soft);
	border-left: 4px solid var(--hnpp-accent);
}
.hnpp-rights strong { color: var(--hnpp-brand); }
.hnpp-rights span { font-size: .93em; line-height: 1.6; }
.hnpp-rights em { font-style: normal; font-size: .8em; color: var(--hnpp-muted); }

.hnpp-how {
	border: 1px solid var(--hnpp-line);
	border-radius: var(--hnpp-radius);
	padding: 16px 18px 6px;
	margin: 0 0 1em;
}
.hnpp .hnpp-how h3 { font-size: 1.02em; margin: 0 0 8px; }
.hnpp-how ol { margin: 0 0 1em; padding-left: 1.3em; }
.hnpp-how li { margin: .4em 0; }

.hnpp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 8px 20px;
	border-radius: 999px;
	background: var(--hnpp-brand);
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 700;
}
.hnpp-btn:hover,
.hnpp-btn:focus-visible { background: #0a2238; }
.hnpp-btn:focus-visible { outline: 3px solid var(--hnpp-accent); outline-offset: 2px; }
.hnpp-btn--ghost {
	background: transparent;
	color: var(--hnpp-brand) !important;
	border: 1px solid var(--hnpp-brand);
	margin-left: 4px;
	font-weight: 600;
	padding: 6px 16px;
}
.hnpp-btn--ghost:hover,
.hnpp-btn--ghost:focus-visible { background: var(--hnpp-soft); }

.hnpp-history { margin: 0 0 1em; font-size: .93em; }
.hnpp-history summary { cursor: pointer; color: var(--hnpp-brand); min-height: 44px; display: flex; align-items: center; }
.hnpp-history ul { margin: .4em 0 0; padding-left: 1.3em; }

/* Contact */
.hnpp-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 0 0 1em; }
.hnpp-contact__card { border: 1px solid var(--hnpp-line); border-radius: var(--hnpp-radius); padding: 16px 18px; background: #fff; }
.hnpp-contact__card p { margin: 0; }
.hnpp-contact__role { font-size: .85em; color: var(--hnpp-accent); font-weight: 700; }
.hnpp-contact__name { font-weight: 700; font-size: 1.05em; margin: 2px 0 8px !important; }
.hnpp-contact dl { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; font-size: .95em; }
.hnpp-contact dt { color: var(--hnpp-muted); }
.hnpp-contact dd { margin: 0; }
.hnpp-contact a { color: var(--hnpp-brand); }

.hnpp-foot { margin-top: 2em; padding-top: 1em; border-top: 1px solid var(--hnpp-line); font-size: .85em; color: var(--hnpp-muted); }

@media (prefers-reduced-motion: no-preference) {
	.hnpp-doc { scroll-behavior: smooth; }
}

/* Print: the document only, black on white, links readable. */
@media print {
	.hnpp-toc,
	.hnpp-print,
	.hnpp-btn,
	.hnpp-summary { display: none !important; }
	.hnpp-body { display: block; }
	.hnpp-head { background: none; color: #000; border: 1px solid #999; }
	.hnpp-history[open] summary,
	.hnpp-history summary { color: #000; }
	.hnpp-h { break-after: avoid; }
	.hnpp-act,
	.hnpp-rights li,
	.hnpp-contact__card { break-inside: avoid; }
	.hnpp-num { background: none; color: #000; border: 1px solid #000; }
}
.hnpp-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hnpp-actions .hnpp-btn { margin: 0; }
