.pm-form-section {
	--pm-form-ink: var(--pm-text);
	--pm-form-muted: var(--pm-muted);
	--pm-form-line: var(--pm-border);
	--pm-form-surface: var(--pm-white);
	--pm-form-control-bg: var(--pm-white);
	--pm-form-control-ink: var(--pm-text);
	--pm-form-placeholder: color-mix(in srgb, var(--pm-text) 56%, transparent);
	--pm-form-error: #b42318;
	--pm-form-success: #18794e;
	--pm-form-space-xs: var(--pm-space-xs, .5rem);
	--pm-form-space-sm: var(--pm-space-sm, 1rem);
	--pm-form-space-md: var(--pm-space-md, 1.5rem);
	--pm-form-space-lg: var(--pm-space-lg, clamp(2rem, 3vw, 2.5rem));
}
.pm-form-section.pm-block-section--theme-soft { --pm-form-surface: color-mix(in srgb, var(--pm-white) 76%, var(--pm-surface)); --pm-form-control-bg: var(--pm-white); }
.pm-form-section.pm-block-section--theme-dark { --pm-form-ink: var(--pm-white); --pm-form-muted: color-mix(in srgb, var(--pm-white) 74%, transparent); --pm-form-line: color-mix(in srgb, var(--pm-white) 28%, transparent); --pm-form-surface: color-mix(in srgb, var(--pm-white) 7%, var(--pm-dark)); --pm-form-control-bg: color-mix(in srgb, var(--pm-white) 11%, var(--pm-dark)); --pm-form-control-ink: var(--pm-white); --pm-form-placeholder: color-mix(in srgb, var(--pm-white) 60%, transparent); --pm-form-error: #ffb4ab; --pm-form-success: #9ee6b8; }
.pm-form-section.pm-block-section--theme-brand { --pm-form-ink: var(--pm-text); --pm-form-muted: color-mix(in srgb, var(--pm-text) 76%, transparent); --pm-form-line: color-mix(in srgb, var(--pm-text) 35%, transparent); --pm-form-surface: color-mix(in srgb, var(--pm-white) 72%, var(--pm-brand)); --pm-form-control-bg: color-mix(in srgb, var(--pm-white) 88%, var(--pm-brand)); --pm-form-control-ink: var(--pm-text); --pm-form-placeholder: color-mix(in srgb, var(--pm-text) 58%, transparent); }
.pm-form {
	display: grid;
	grid-template-columns: minmax(15rem, .6fr) minmax(0, 1fr);
	align-items: start;
	gap: var(--pm-form-space-lg);
	max-width: 72rem;
	margin-inline: auto;
	padding: var(--pm-form-space-lg);
	border: 1px solid var(--pm-form-line);
	border-top: 4px solid var(--pm-brand);
	border-radius: var(--pm-radius);
	background: var(--pm-form-surface);
	color: var(--pm-form-ink);
}
.pm-form__header, .pm-form__body { min-width: 0; }
.pm-form__header { align-self: start; }
.pm-form__header .pm-eyebrow { margin-bottom: var(--pm-form-space-xs); }
.pm-form__header h2 { max-width: none; margin: 0; font-size: var(--pm-type-section-title); line-height: 1.08; overflow-wrap: anywhere; }
.pm-form__intro { max-width: 34rem; margin-top: var(--pm-form-space-sm); color: var(--pm-form-muted); font-size: var(--pm-type-lead); line-height: 1.6; }
.pm-form__body { display: grid; align-content: start; gap: var(--pm-form-space-sm); }
.pm-form:not(.pm-form--inline) .pm-form__body { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.pm-form:not(.pm-form--inline) .pm-form__fields { grid-column: 1 / -1; }
.pm-form:not(.pm-form--inline) .pm-form__consent { grid-column: 1; }
.pm-form:not(.pm-form--inline) .pm-form__actions { grid-column: 2; justify-content: flex-end; }
.pm-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pm-form-space-sm); min-width: 0; }
.pm-form__field { display: grid; align-content: start; gap: var(--pm-form-space-xs); min-width: 0; margin: 0; }
.pm-form__field--message { grid-column: 1 / -1; }
.pm-form:not(.pm-form--inline) .pm-form__field:last-child:nth-child(odd):not(.pm-form__field--message),
.pm-form:not(.pm-form--inline) .pm-form__field:nth-last-child(2):nth-child(odd):has(+ .pm-form__field--message) { grid-column: 1 / -1; }
.pm-form__field label, .pm-form__consent label { color: var(--pm-form-ink); font-size: var(--pm-type-body-small); font-weight: 680; line-height: 1.4; }
.pm-form__required { color: var(--pm-form-error); }
.pm-form :is(input[type=text], input[type=email], input[type=tel], textarea) { width: 100%; min-width: 0; min-height: 3.25rem; padding: .8rem .9rem; border: 1px solid var(--pm-form-line); border-radius: .5rem; background: var(--pm-form-control-bg); color: var(--pm-form-control-ink); font: inherit; font-size: var(--pm-type-body); line-height: 1.4; transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease; }
.pm-form textarea { min-height: 7rem; resize: vertical; }
.pm-form :is(input, textarea)::placeholder { color: var(--pm-form-placeholder); opacity: 1; }
.pm-form :is(input[type=text], input[type=email], input[type=tel], textarea):hover { border-color: color-mix(in srgb, var(--pm-form-ink) 55%, transparent); }
.pm-form :is(input[type=text], input[type=email], input[type=tel], textarea):focus-visible { border-color: var(--pm-form-ink); outline: 3px solid var(--pm-focus); outline-offset: 2px; box-shadow: none; }
.pm-form :is(input[type=text], input[type=email], input[type=tel], textarea):user-invalid { border-color: var(--pm-form-error); box-shadow: 0 0 0 1px var(--pm-form-error); }
.pm-form :is(input, textarea):-webkit-autofill { -webkit-text-fill-color: var(--pm-form-control-ink); caret-color: var(--pm-form-control-ink); box-shadow: 0 0 0 1000px var(--pm-form-control-bg) inset; transition: background-color 9999s ease-out; }
.pm-form__error { color: var(--pm-form-error); font-size: var(--pm-type-body-small); line-height: 1.35; }
.pm-form__error:empty { display: none; }
.pm-form__consent { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); align-items: start; gap: .75rem; max-width: 42rem; margin: 0; }
.pm-form__consent input { width: 1.25rem; height: 1.25rem; margin: .08rem 0 0; accent-color: var(--pm-button-primary-bg, var(--pm-brand)); }
.pm-form__consent input:focus-visible { outline: 3px solid var(--pm-focus); outline-offset: 3px; }
.pm-form__consent label { font-size: var(--pm-type-body-small); font-weight: 520; }
.pm-form__consent .pm-form__error { grid-column: 2; }
.pm-form__consent a { color: inherit; text-underline-offset: .2em; }
.pm-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem var(--pm-form-space-sm); }
.pm-form .pm-button { flex: 0 0 auto; font: inherit; font-weight: 700; }
.pm-form .pm-button:focus-visible { outline: 3px solid var(--pm-focus); outline-offset: 3px; }
.pm-form .pm-button:active { transform: translateY(0); box-shadow: none; }
.pm-form .pm-button:disabled { cursor: wait; opacity: .68; transform: none; box-shadow: none; }
.pm-form .pm-button[aria-busy=true]::after { width: .9rem; height: .9rem; margin-left: .6rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ""; animation: pm-form-spin .7s linear infinite; }
.pm-form__message { min-height: 1.5em; margin: 0; color: var(--pm-form-muted); font-size: var(--pm-type-body-small); line-height: 1.45; }
.pm-form__message:empty { display: none; }
.pm-form__message--success, .pm-form__message--error { padding: .65rem .8rem; border-left: 3px solid currentColor; }
.pm-form__message--success { color: var(--pm-form-success); }
.pm-form__message--error { color: var(--pm-form-error); }
.pm-form__message:focus { outline: 0; }
.pm-form__trap { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* Compact: a light, dense CTA form with copy above the controls. */
.pm-form--compact { grid-template-columns: minmax(0, 1fr); gap: var(--pm-form-space-sm); max-width: 60rem; padding: var(--pm-form-space-md) 0; border-width: 3px 0 1px; border-radius: 0; background: transparent; }
.pm-form--compact .pm-form__header h2 { max-width: none; font-size: var(--pm-type-card-title); }
.pm-form--compact .pm-form__intro { margin-top: var(--pm-form-space-xs); }
.pm-form--compact .pm-form__body, .pm-form--compact .pm-form__fields { gap: .75rem var(--pm-form-space-sm); }
.pm-form--compact textarea { min-height: 5.5rem; }
.pm-form--compact .pm-form__consent label { line-height: 1.35; }

/* Inline: short inputs and submit share the first row; complex fields flow below. */
.pm-form--inline { grid-template-columns: minmax(13rem, .45fr) minmax(0, 1.55fr); gap: var(--pm-form-space-lg); max-width: none; padding: 0; border: 0; border-radius: 0; background: transparent; }
.pm-form--inline .pm-form__header h2 { max-width: none; font-size: var(--pm-type-card-title); }
.pm-form--inline .pm-form__intro { margin-top: var(--pm-form-space-xs); }
.pm-form--inline .pm-form__body { display: grid; grid-template-columns: repeat(2, minmax(10rem, 1fr)) auto; align-items: end; gap: .75rem var(--pm-form-space-sm); }
.pm-form--inline .pm-form__fields { display: contents; }
.pm-form--inline .pm-form__field--message, .pm-form--inline .pm-form__consent { grid-column: 1 / -1; }
.pm-form--inline .pm-form__field:only-child { grid-column: 1 / 3; }
.pm-form--inline textarea { min-height: 5.5rem; max-height: 9rem; }
.pm-form--inline .pm-form__actions { grid-column: 3; grid-row: 1; align-self: stretch; align-items: flex-end; }
.pm-form--inline .pm-form__message { flex-basis: 100%; max-width: 22rem; }

@keyframes pm-form-spin { to { transform: rotate(360deg); } }
@media (max-width: 1100px) {
	.pm-form--inline { grid-template-columns: minmax(0, 1fr); gap: var(--pm-form-space-md); }
	.pm-form--inline .pm-form__header h2 { max-width: 24ch; }
}
@media (max-width: 900px) {
	.pm-form { grid-template-columns: minmax(0, 1fr); max-width: 54rem; }
	.pm-form__header h2 { max-width: 24ch; }
}
@media (max-width: 680px) {
	.pm-form { gap: var(--pm-form-space-sm); padding: var(--pm-form-space-md); }
	.pm-form--compact { padding-inline: 0; }
	.pm-form--inline { padding: 0; }
	.pm-form__fields, .pm-form--inline .pm-form__body { grid-template-columns: minmax(0, 1fr); }
	.pm-form:not(.pm-form--inline) .pm-form__consent, .pm-form:not(.pm-form--inline) .pm-form__actions { grid-column: 1; }
	.pm-form__field--message, .pm-form--inline .pm-form__field--message, .pm-form--inline .pm-form__field:only-child, .pm-form--inline .pm-form__consent, .pm-form--inline .pm-form__actions { grid-column: auto; grid-row: auto; }
	.pm-form__actions { align-items: stretch; flex-direction: column; }
	.pm-form .pm-button { width: 100%; }
	.pm-form__message { width: 100%; }
	.pm-form :is(input[type=text], input[type=email], input[type=tel], textarea) { font-size: 16px; }
	.pm-form__consent label { font-size: var(--pm-type-body-small); }
}
@media (prefers-reduced-motion: reduce) {
	.pm-form :is(input, textarea) { transition: none; }
	.pm-form .pm-button[aria-busy=true]::after { animation-duration: 1.5s; }
}

/* Generic popup runtime; content is not coupled to the Form component. */
.pm-popup[hidden]{display:none}.pm-popup{position:fixed;inset:0;width:100%;height:100dvh;z-index:100000;display:grid;place-items:center;padding:max(var(--pm-gutter),env(safe-area-inset-top)) max(var(--pm-gutter),env(safe-area-inset-right)) max(var(--pm-gutter),env(safe-area-inset-bottom)) max(var(--pm-gutter),env(safe-area-inset-left))}.pm-popup__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--pm-dark) 82%,transparent)}.pm-popup__panel{position:relative;z-index:1;width:min(100%,45rem);max-height:calc(100dvh - 2 * var(--pm-gutter));overflow:auto;padding:clamp(1.25rem,3vw,2.5rem);border:1px solid var(--pm-border);border-radius:var(--pm-radius);background:var(--pm-white);color:var(--pm-text);box-shadow:var(--pm-shadow)}.pm-popup__close{position:absolute;top:.75rem;right:.75rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--pm-border);border-radius:50%;background:var(--pm-white);color:var(--pm-text);font:700 1.4rem/1 var(--pm-font);cursor:pointer}.pm-popup__close:focus-visible{outline:3px solid var(--pm-focus);outline-offset:3px}.pm-popup__header{padding-right:3.5rem;margin-bottom:var(--pm-form-space-md)}.pm-popup__header h2,.pm-popup__header p{margin:0}.pm-popup__header p{margin-top:.5rem;color:var(--pm-muted)}.pm-popup .pm-form{grid-template-columns:minmax(0,1fr);max-width:none;padding:0;border:0;background:transparent}.pm-popup--has-title .pm-form__header{display:none}.pm-popup .pm-form__header:has(.pm-section-intro:empty){display:none}.pm-popup .pm-form--inline{gap:var(--pm-form-space-md)}.pm-popup .pm-form--inline .pm-form__body{grid-template-columns:minmax(0,1fr) auto;align-items:center}.pm-popup .pm-form--inline .pm-form__fields{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.pm-popup .pm-form--inline .pm-form__field--message{grid-column:1/-1}.pm-popup .pm-form--inline .pm-form__consent{grid-column:1}.pm-popup .pm-form--inline .pm-form__actions{grid-column:2;grid-row:auto;align-self:center}@media(max-width:680px){.pm-popup{padding:.75rem}.pm-popup__panel{max-height:calc(100dvh - 1.5rem);padding:1.25rem}.pm-popup .pm-form{padding:0}.pm-popup .pm-form--inline .pm-form__body,.pm-popup .pm-form--inline .pm-form__fields{grid-template-columns:minmax(0,1fr)}.pm-popup .pm-form--inline .pm-form__consent,.pm-popup .pm-form--inline .pm-form__actions{grid-column:1}}
.pm-popup__header h2{max-width:18ch;font-size:var(--pm-type-section-title);line-height:1.08;overflow-wrap:anywhere}
.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__body{width:100%;grid-template-columns:minmax(0,1fr) max-content}
.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__consent{width:100%;min-width:0;max-width:none}
.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__consent input{flex:none}
.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__actions{min-width:max-content}
@media(max-width:680px){.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__body{grid-template-columns:minmax(0,1fr)}.pm-global-popup .pm-form:not(.pm-form--inline) .pm-form__actions{min-width:0}}
