.dp-form {
	--dp-accent: #1E7B3E;
	--dp-bg: #FFFFFF;
	--dp-text: #2B2A27;
	--dp-muted: #6B665E;
	--dp-line: #E6E0D4;
	--dp-error: #B3262E;
	background: var(--dp-bg);
	border: 1px solid var(--dp-line);
	border-radius: 14px;
	color: var(--dp-text);
	font-family: "Open Sans", Arial, sans-serif;
	font-size: 15px;
	padding: 32px;
}

.dp-form [hidden] { display: none !important; }
.dp-form *, .dp-form *::before { box-sizing: border-box; }
.dp-form p { margin: 0 0 16px; }

.dp-section { border: 0; margin: 0 0 24px; min-width: 0; padding: 0; }

.dp-section legend {
	color: var(--dp-text);
	font-family: "Playfair Display", Georgia, serif;
	font-size: 22px;
	font-weight: 700;
	margin-bottom: 16px;
	padding: 0;
}

.dp-form label { color: var(--dp-text); display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }

.dp-form input[type="text"],
.dp-form input[type="tel"],
.dp-form input[type="date"],
.dp-form input[type="time"],
.dp-form input[type="search"],
.dp-form input[type="number"],
.dp-form select,
.dp-form textarea {
	background: #FFFFFF;
	border: 1px solid var(--dp-line);
	border-radius: 8px;
	color: var(--dp-text);
	font: inherit;
	height: auto;
	margin: 0;
	padding: 11px 13px;
	width: 100%;
}

.dp-form input:focus, .dp-form select:focus, .dp-form textarea:focus, .dp-form summary:focus-visible {
	border-color: var(--dp-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--dp-accent) 18%, transparent);
	outline: 0;
}

.dp-form .dp-invalid { border-color: var(--dp-error); }
.dp-search { margin-bottom: 14px !important; }
.dp-grid { display: grid; gap: 0 18px; grid-template-columns: 1fr 1fr; }

.dp-group { border: 1px solid var(--dp-line); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }

.dp-group summary {
	align-items: center;
	background: #FBF7EF;
	cursor: pointer;
	display: flex;
	font-weight: 700;
	justify-content: space-between;
	list-style: none;
	padding: 13px 16px;
}

.dp-group summary::-webkit-details-marker { display: none; }
.dp-group summary::after { color: var(--dp-accent); content: "+"; font-size: 20px; line-height: 1; margin-left: 10px; }
.dp-group[open] summary::after { content: "\2013"; }

.dp-count {
	background: var(--dp-accent);
	border-radius: 20px;
	color: #FFFFFF;
	font-size: 12px;
	margin-left: auto;
	min-width: 22px;
	padding: 2px 7px;
	text-align: center;
}

.dp-items { display: grid; gap: 2px 18px; grid-template-columns: 1fr 1fr; padding: 10px 14px; }
.dp-item { align-items: center; border-radius: 8px; display: flex; gap: 10px; justify-content: space-between; min-height: 44px; padding: 2px 6px; }
.dp-item.is-selected { background: color-mix(in srgb, var(--dp-accent) 9%, transparent); }
.dp-item label { align-items: center; cursor: pointer; display: flex; flex: 1; font-weight: 400; gap: 9px; margin: 0; }
.dp-item input[type="checkbox"] { accent-color: var(--dp-accent); flex: none; height: 18px; margin: 0; width: 18px; }
.dp-form input.dp-qty { flex: none; padding: 6px 4px 6px 8px; width: 62px; }
.dp-form input.dp-qty:disabled { opacity: .35; }

.dp-error { color: var(--dp-error); font-size: 14px; font-weight: 600; }

.dp-form .dp-submit {
	background: var(--dp-accent);
	border: 0;
	border-radius: 8px;
	color: #FFFFFF;
	cursor: pointer;
	font: 700 16px/1.2 "Open Sans", Arial, sans-serif;
	padding: 16px 22px;
	text-transform: none;
	width: 100%;
}

.dp-form .dp-submit:hover { filter: brightness(.9); }
.dp-form .dp-hint { color: var(--dp-muted); font-size: 13px; margin: 12px 0 0; text-align: center; }

@media (max-width: 640px) {
	.dp-form { padding: 20px 16px; }
	.dp-grid, .dp-items { grid-template-columns: 1fr; }
}
