/* JWeb Parcel Forms — front-end styles
   Rendered inside the active theme (full-width single page). Scoped to
   .jwpf-wrap so theme styles are not affected. */

.jwpf-wrap,
.jwpf-inline {
	--jwpf-primary: #2b6cb0;
	--jwpf-primary-dark: #234e7d;
	--jwpf-bg: #f5f7fa;
	--jwpf-surface: #ffffff;
	--jwpf-surface-alt: #f0f4f9;
	--jwpf-border: #d5dbe2;
	--jwpf-text: #1f2933;
	--jwpf-muted: #66707a;
	--jwpf-error: #c0392b;
	--jwpf-error-bg: #fdecea;
	--jwpf-success: #1e7e54;
	--jwpf-success-bg: #e6f4ec;
	--jwpf-radius: 10px;
	--jwpf-focus: 0 0 0 3px rgba(43, 108, 176, 0.35);

	color: var(--jwpf-text);
	line-height: 1.7;
	box-sizing: border-box;
}

/* Full-page endpoint layout. */
.jwpf-wrap {
	max-width: 920px;
	margin: 0 auto;
	padding: 32px 16px 64px;
}

/* Full-width single-page layout: neutralise common theme width limits. */
.jwpf-fullwidth {
	width: 100%;
}

/* Inline (shortcode) layout: spans the page content width by default so it
   lines up with the surrounding text. Width can be capped per-instance via
   the shortcode's max_width attribute (inline style). */
.jwpf-inline {
	margin: 1.5em 0;
}

/* Optional boxed/card style ([jwpf_contact card="yes"]). */
.jwpf-inline--card {
	background: var(--jwpf-surface);
	border: 1px solid var(--jwpf-border);
	border-radius: var(--jwpf-radius);
	padding: 24px;
}

.jwpf-inline-title {
	font-size: 1.3rem;
	margin: 0 0 0.6em;
	color: var(--jwpf-primary-dark);
}

.jwpf-inline .jwpf-field {
	margin-bottom: 16px;
}

.jwpf-wrap *,
.jwpf-wrap *::before,
.jwpf-wrap *::after,
.jwpf-inline *,
.jwpf-inline *::before,
.jwpf-inline *::after {
	box-sizing: border-box;
}

.jwpf-header h1 {
	font-size: 1.7rem;
	margin: 0 0 0.5em;
	color: var(--jwpf-primary-dark);
}

.jwpf-lead {
	color: var(--jwpf-muted);
	margin-top: 0;
}

.jwpf-section {
	background: var(--jwpf-surface);
	border: 1px solid var(--jwpf-border);
	border-radius: var(--jwpf-radius);
	padding: 20px;
	margin: 20px 0;
}

.jwpf-section h2 {
	font-size: 1.15rem;
	margin-top: 0;
	color: var(--jwpf-primary-dark);
}

.jwpf-links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 8px;
}

.jwpf-links a {
	color: var(--jwpf-primary);
	text-decoration: none;
	font-weight: 600;
}

.jwpf-links a:hover,
.jwpf-links a:focus {
	text-decoration: underline;
}

.jwpf-method {
	border-left: 4px solid var(--jwpf-primary);
	padding: 4px 0 4px 16px;
	margin: 16px 0;
}

.jwpf-method h3 {
	margin: 0 0 0.4em;
	font-size: 1.02rem;
}

.jwpf-method p {
	margin: 0.3em 0;
	color: var(--jwpf-muted);
}

.jwpf-method-note {
	font-weight: 600;
	color: var(--jwpf-primary-dark);
	margin-bottom: 0;
}

/* Notices */
.jwpf-notice {
	border-radius: var(--jwpf-radius);
	padding: 16px 18px;
	margin: 16px 0;
	font-weight: 600;
	border: 1px solid transparent;
}

.jwpf-notice--success {
	background: var(--jwpf-success-bg);
	border-color: var(--jwpf-success);
	color: var(--jwpf-success);
}

.jwpf-notice--error {
	background: var(--jwpf-error-bg);
	border-color: var(--jwpf-error);
	color: var(--jwpf-error);
}

.jwpf-notice--info {
	background: #eef4fb;
	border-color: var(--jwpf-primary);
	color: var(--jwpf-primary-dark);
	font-weight: 400;
}

.jwpf-notice--info h2 {
	margin-top: 0;
	font-size: 1.1rem;
	color: var(--jwpf-primary-dark);
}

.jwpf-notice--info a {
	color: var(--jwpf-primary);
}

.jwpf-notice:focus {
	outline: none;
	box-shadow: var(--jwpf-focus);
}

/* Form groups */
.jwpf-form {
	margin-top: 8px;
}

.jwpf-group {
	background: var(--jwpf-surface);
	border: 1px solid var(--jwpf-border);
	border-radius: var(--jwpf-radius);
	padding: 20px;
	margin: 20px 0;
}

.jwpf-legend {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--jwpf-primary-dark);
	padding: 0 8px;
}

.jwpf-group-desc {
	color: var(--jwpf-muted);
	margin-top: 0;
}

.jwpf-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}

@media (min-width: 640px) {
	.jwpf-grid {
		grid-template-columns: 1fr 1fr;
	}
	.jwpf-field--textarea,
	.jwpf-field--radio,
	.jwpf-field--file,
	.jwpf-field--checkbox {
		grid-column: 1 / -1;
	}
}

.jwpf-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.jwpf-label {
	font-weight: 600;
	margin-bottom: 6px;
	font-size: 0.95rem;
}

.jwpf-required {
	color: var(--jwpf-error);
	margin-left: 2px;
}

.jwpf-input {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid var(--jwpf-border);
	border-radius: 8px;
	font-size: 16px; /* prevents iOS zoom */
	background: #fff;
	color: var(--jwpf-text);
	transition: border-color 0.15s, box-shadow 0.15s;
	font-family: inherit;
	line-height: 1.4;
}

.jwpf-input:focus {
	outline: none;
	border-color: var(--jwpf-primary);
	box-shadow: var(--jwpf-focus);
}

textarea.jwpf-input {
	resize: vertical;
	min-height: 96px;
}

.jwpf-file {
	padding: 8px;
	background: #fafbfc;
}

/* Radio / checkbox */
.jwpf-radio-group {
	border: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.jwpf-radio-group legend {
	margin-bottom: 6px;
}

.jwpf-radio,
.jwpf-checkbox {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
	cursor: pointer;
}

.jwpf-radio input,
.jwpf-checkbox input {
	width: 18px;
	height: 18px;
	accent-color: var(--jwpf-primary);
	flex: 0 0 auto;
	margin: 0;
}

/* Help + errors */
.jwpf-help {
	font-size: 0.82rem;
	color: var(--jwpf-muted);
	margin: 6px 0 0;
}

.jwpf-error {
	font-size: 0.85rem;
	color: var(--jwpf-error);
	margin: 6px 0 0;
	font-weight: 600;
}

.jwpf-field--error .jwpf-input,
.jwpf-field--error .jwpf-radio-group {
	border-color: var(--jwpf-error);
}

.jwpf-field--error .jwpf-input:focus {
	box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.3);
}

/* Product cards */
.jwpf-products-group {
	background: var(--jwpf-surface-alt);
}

.jwpf-product-card {
	background: var(--jwpf-surface);
	border: 1px solid var(--jwpf-border);
	border-left: 4px solid var(--jwpf-primary);
	border-radius: var(--jwpf-radius);
	padding: 18px;
	margin: 16px 0;
}

.jwpf-product-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
	padding-bottom: 10px;
	border-bottom: 1px dashed var(--jwpf-border);
}

.jwpf-product-title {
	margin: 0;
	font-size: 1.05rem;
	color: var(--jwpf-primary-dark);
}

.jwpf-product-num {
	display: inline-block;
	min-width: 1.6em;
	text-align: center;
	background: var(--jwpf-primary);
	color: #fff;
	border-radius: 999px;
	padding: 1px 8px;
	font-size: 0.9rem;
	margin-left: 4px;
}

.jwpf-remove-product {
	background: transparent;
	border: 1px solid var(--jwpf-border);
	color: var(--jwpf-error);
	border-radius: 8px;
	padding: 6px 12px;
	font-size: 0.85rem;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s, border-color 0.15s;
}

.jwpf-remove-product:hover {
	background: var(--jwpf-error-bg);
	border-color: var(--jwpf-error);
}

.jwpf-remove-product[hidden] {
	display: none;
}

/* Large-item toggle + subsection */
.jwpf-large-toggle {
	margin-top: 16px;
	padding: 12px;
	background: var(--jwpf-surface-alt);
	border-radius: 8px;
}

.jwpf-large-toggle .jwpf-checkbox {
	font-weight: 600;
}

.jwpf-large-fields {
	margin-top: 14px;
	padding: 16px;
	border: 1px dashed var(--jwpf-primary);
	border-radius: 8px;
	background: #fbfdff;
}

.jwpf-large-fields[hidden] {
	display: none;
}

.jwpf-large-desc {
	margin-top: 0;
	color: var(--jwpf-muted);
	font-size: 0.9rem;
}

/* Add product button */
.jwpf-add-wrap {
	text-align: center;
	margin: 8px 0 4px;
}

.jwpf-add-product {
	background: #fff;
	border: 2px dashed var(--jwpf-primary);
	color: var(--jwpf-primary-dark);
	border-radius: 999px;
	padding: 11px 28px;
	font-size: 0.98rem;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s;
}

.jwpf-add-product:hover {
	background: var(--jwpf-surface-alt);
}

.jwpf-add-product:focus {
	outline: none;
	box-shadow: var(--jwpf-focus);
}

/* Confirmation */
.jwpf-confirm .jwpf-terms {
	color: var(--jwpf-muted);
	padding-left: 1.2em;
}

.jwpf-confirm .jwpf-terms li {
	margin: 4px 0;
}

/* Actions */
.jwpf-actions {
	margin-top: 8px;
	text-align: center;
}

.jwpf-submit {
	background: var(--jwpf-primary);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 14px 48px;
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s, transform 0.05s;
	font-family: inherit;
}

.jwpf-submit:hover {
	background: var(--jwpf-primary-dark);
}

.jwpf-submit:focus {
	outline: none;
	box-shadow: var(--jwpf-focus);
}

.jwpf-submit:active {
	transform: translateY(1px);
}

.jwpf-submit[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.jwpf-privacy {
	font-size: 0.82rem;
	color: var(--jwpf-muted);
	margin-top: 12px;
}

.jwpf-captcha {
	margin: 16px 0;
	display: flex;
	justify-content: center;
}

/* Honeypot — visually + AT hidden, still in DOM for bots */
.jwpf-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Conditional groups hidden until relevant */
.jwpf-group[hidden],
.jwpf-field[hidden] {
	display: none;
}
