/* Hanuman PDPA — public request form. Scoped to .hnpdpa-dsr; variables use --hnpdpadsr-. */
.hnpdpa-dsr {
	--hnpdpadsr-ink: #14213d;
	--hnpdpadsr-muted: #4b5563;
	--hnpdpadsr-line: #c7ccd4;
	--hnpdpadsr-accent: #0e2f4f;
	--hnpdpadsr-ok: #166534;
	--hnpdpadsr-err: #b42318;
	max-width: 760px;
	color: var(--hnpdpadsr-ink);
	font-size: 16px;
	line-height: 1.6;
}
.hnpdpa-dsr *, .hnpdpa-dsr *::before, .hnpdpa-dsr *::after { box-sizing: border-box; }
.hnpdpa-dsr [hidden] { display: none !important; }
.hnpdpa-dsr__form { display: flex; flex-direction: column; gap: 20px; }

.hnpdpa-dsr__types { border: 0; margin: 0; padding: 0; min-width: 0; }
.hnpdpa-dsr__legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.hnpdpa-dsr__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.hnpdpa-dsr__type {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	padding: 12px;
	min-height: 44px;
	border: 1px solid var(--hnpdpadsr-line);
	border-radius: 10px;
	cursor: pointer;
	background: #fff;
}
.hnpdpa-dsr__type:hover { border-color: var(--hnpdpadsr-accent); }
.hnpdpa-dsr__type:has(input:checked) { border: 2px solid var(--hnpdpadsr-accent); padding: 11px; background: #f2f6fa; }
.hnpdpa-dsr__type input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--hnpdpadsr-accent); }
.hnpdpa-dsr__type-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hnpdpa-dsr__type-name { font-weight: 600; }
.hnpdpa-dsr__type-desc { font-size: 14px; color: var(--hnpdpadsr-muted); }

.hnpdpa-dsr__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.hnpdpa-dsr__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hnpdpa-dsr__field > label { font-weight: 600; }
.hnpdpa-dsr__req { color: var(--hnpdpadsr-err); }
.hnpdpa-dsr__opt { font-weight: 400; color: var(--hnpdpadsr-muted); }
.hnpdpa-dsr input[type="text"],
.hnpdpa-dsr input[type="email"],
.hnpdpa-dsr input[type="tel"],
.hnpdpa-dsr textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 12px;
	font: inherit;
	font-size: 16px; /* never smaller: iOS zooms into smaller inputs */
	color: var(--hnpdpadsr-ink);
	background: #fff;
	border: 1px solid var(--hnpdpadsr-line);
	border-radius: 10px;
}
.hnpdpa-dsr textarea { min-height: 112px; resize: vertical; }
.hnpdpa-dsr [aria-invalid="true"] { border-color: var(--hnpdpadsr-err) !important; }
.hnpdpa-dsr input:focus-visible,
.hnpdpa-dsr textarea:focus-visible,
.hnpdpa-dsr button:focus-visible,
.hnpdpa-dsr a:focus-visible,
.hnpdpa-dsr__summary:focus-visible,
.hnpdpa-dsr__done:focus-visible {
	outline: 3px solid #f59e0b;
	outline-offset: 2px;
}
.hnpdpa-dsr__help { margin: 0; font-size: 14px; color: var(--hnpdpadsr-muted); }
.hnpdpa-dsr__err { margin: 0; font-size: 14px; font-weight: 600; color: var(--hnpdpadsr-err); }
.hnpdpa-dsr__check { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; cursor: pointer; }
.hnpdpa-dsr__check input { width: 22px; height: 22px; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--hnpdpadsr-accent); }

.hnpdpa-dsr__hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.hnpdpa-dsr__submit {
	align-self: flex-start;
	min-height: 48px;
	min-width: 180px;
	padding: 12px 24px;
	font: inherit;
	font-weight: 700;
	color: #fff;
	background: var(--hnpdpadsr-accent);
	border: 0;
	border-radius: 10px;
	cursor: pointer;
}
.hnpdpa-dsr__submit:disabled { opacity: .7; cursor: progress; }
.hnpdpa-dsr__note { margin: 0; font-size: 14px; color: var(--hnpdpadsr-muted); }
.hnpdpa-dsr__note a, .hnpdpa-dsr__summary a { color: var(--hnpdpadsr-accent); }

.hnpdpa-dsr__summary {
	border: 2px solid var(--hnpdpadsr-err);
	border-radius: 10px;
	padding: 12px 16px;
	background: #fef3f2;
}
.hnpdpa-dsr__summary-title { margin: 0 0 4px; font-weight: 700; color: var(--hnpdpadsr-err); }
.hnpdpa-dsr__summary-list { margin: 0; padding-left: 20px; }

.hnpdpa-dsr__done {
	border: 2px solid var(--hnpdpadsr-ok);
	border-radius: 12px;
	padding: 20px;
	background: #f0fdf4;
}
.hnpdpa-dsr__done p { margin: 0 0 8px; }
.hnpdpa-dsr__done-icon { color: var(--hnpdpadsr-ok); }
.hnpdpa-dsr__done-title { font-size: 20px; font-weight: 700; }
.hnpdpa-dsr__ref { font-size: 20px; letter-spacing: .02em; }

.hnpdpa-dsr__other { margin-top: 24px; padding: 16px; border-radius: 10px; background: #f3f4f6; }
.hnpdpa-dsr__other-title { margin: 0 0 4px; font-weight: 700; }
.hnpdpa-dsr__other ul { margin: 0; padding-left: 20px; }
.hnpdpa-dsr__nojs { padding: 12px 16px; border-radius: 10px; background: #fff7ed; }

@media (max-width: 480px) {
	.hnpdpa-dsr__submit { align-self: stretch; }
}
