/* PulseCore Registration — scoped, mobile-first. Inherits the theme font. */
.pcreg {
	--pcreg-accent: var(--e-global-color-primary, #b5121b);
	--pcreg-text: #1d1d1f;
	--pcreg-muted: #555;
	--pcreg-border: #8a8a8a;
	--pcreg-bg: #fff;
	--pcreg-soft: #f6f6f7;
	--pcreg-error: #b00020;
	--pcreg-radius: 8px;
	box-sizing: border-box;
	max-width: 960px;
	margin: 0 auto;
	color: var(--pcreg-text);
	font: inherit;
	line-height: 1.5;
}
.pcreg *,
.pcreg *::before,
.pcreg *::after { box-sizing: inherit; }

.pcreg h2 { font-size: 1.35rem; line-height: 1.3; margin: 1.5rem 0 1rem; }
.pcreg p { margin: 0 0 .75rem; }

.pcreg-sr {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.pcreg-hp {
	position: absolute !important;
	left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;
}

.pcreg [hidden] { display: none !important; }
.pcreg--js .pcreg-nojs { display: none; }

/* Notices & errors */
.pcreg-notice,
.pcreg-errors {
	border: 2px solid var(--pcreg-border);
	border-left-width: 6px;
	border-radius: var(--pcreg-radius);
	padding: .9rem 1rem;
	margin: 0 0 1.25rem;
	background: var(--pcreg-soft);
}
.pcreg-errors { border-color: var(--pcreg-error); background: #fff5f6; }
.pcreg-errors:focus { outline: 3px solid var(--pcreg-error); outline-offset: 2px; }
.pcreg-errors__title { margin: 0 0 .5rem !important; font-size: 1.1rem !important; color: var(--pcreg-error); }
.pcreg-errors ul { margin: 0; padding-left: 1.25rem; }
.pcreg-errors a { color: var(--pcreg-error); text-decoration: underline; }

.pcreg-field-error {
	color: var(--pcreg-error);
	font-weight: 600;
	margin: .25rem 0 !important;
}
.pcreg-error-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.2em; height: 1.2em; border-radius: 50%;
	background: var(--pcreg-error); color: #fff; font-size: .8em; font-weight: 700;
}
.pcreg-field--error input,
.pcreg-field--error select,
.pcreg-field--error textarea { border-color: var(--pcreg-error); border-width: 2px; }

/* Steps */
.pcreg-step { margin: 0 0 2rem; }
.pcreg-step__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2rem; height: 2rem; margin-right: .4rem; border-radius: 50%;
	background: var(--pcreg-accent); color: #fff; font-size: 1rem;
}
.pcreg-required-note,
.pcreg-hint { color: var(--pcreg-muted); font-size: .9rem; }
.pcreg-hint { margin: 0 0 .35rem !important; }
.pcreg-req { color: var(--pcreg-error); font-weight: 700; }
.pcreg-price-note { font-size: .9rem; color: var(--pcreg-muted); margin-top: .75rem !important; }

/* Fields */
.pcreg-fieldset {
	border: 1px solid #d0d0d4;
	border-radius: var(--pcreg-radius);
	padding: 1rem;
	margin: 0 0 1.25rem;
	min-width: 0;
}
.pcreg-fieldset > legend { font-weight: 700; padding: 0 .35rem; font-size: 1.05rem; }
.pcreg-attendee { background: var(--pcreg-soft); }
.pcreg-grid { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
.pcreg-field { margin: 0 0 1rem; min-width: 0; }
.pcreg-field > label,
.pcreg-check > label,
.pcreg-radio > label { font-weight: 600; }
.pcreg-field > label { display: block; margin-bottom: .3rem; }

.pcreg input[type="text"],
.pcreg input[type="email"],
.pcreg input[type="tel"],
.pcreg select,
.pcreg textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: .6rem .75rem;
	font: inherit;
	font-size: 1rem;
	color: var(--pcreg-text);
	background: var(--pcreg-bg);
	border: 1px solid var(--pcreg-border);
	border-radius: 6px;
}
.pcreg textarea { min-height: 9rem; resize: vertical; }

.pcreg input[type="radio"],
.pcreg input[type="checkbox"] {
	width: 1.35rem; height: 1.35rem; margin: .1rem .6rem 0 0; flex: 0 0 auto;
	accent-color: var(--pcreg-accent);
}
.pcreg-check,
.pcreg-radio {
	display: flex; flex-wrap: wrap; align-items: flex-start;
	min-height: 48px; padding: .5rem 0;
}
.pcreg-check > label,
.pcreg-radio > label { flex: 1 1 0; cursor: pointer; }
.pcreg-check > .pcreg-hint,
.pcreg-check > .pcreg-field-error { flex-basis: 100%; }
.pcreg-check > .pcreg-hint { padding-left: 1.95rem; }

/* Visible focus everywhere */
.pcreg a:focus-visible,
.pcreg button:focus-visible,
.pcreg input:focus-visible,
.pcreg select:focus-visible,
.pcreg textarea:focus-visible {
	outline: 3px solid var(--pcreg-accent);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #fff;
}

/* Package cards */
.pcreg-cards { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.pcreg-card {
	position: relative;
	display: flex; flex-wrap: wrap; align-items: flex-start;
	padding: 1rem;
	border: 2px solid #d0d0d4;
	border-radius: var(--pcreg-radius);
	background: var(--pcreg-bg);
}
.pcreg-card:has(.pcreg-card__radio:checked) { border-color: var(--pcreg-accent); box-shadow: 0 0 0 1px var(--pcreg-accent); }
.pcreg-card:has(.pcreg-card__radio:focus-visible) { outline: 3px solid var(--pcreg-accent); outline-offset: 2px; }
.pcreg-card__label { flex: 1 1 0; display: flex; flex-direction: column; cursor: pointer; }
/* The whole card is clickable via the label's stretched pseudo-element. */
.pcreg-card__label::after { content: ""; position: absolute; inset: 0; }
.pcreg-card__name { font-weight: 700; font-size: 1.05rem; }
.pcreg-card__price { font-size: 1.25rem; font-weight: 700; color: var(--pcreg-accent); }
.pcreg-card__vat { font-size: .85rem; font-weight: 400; color: var(--pcreg-muted); }
.pcreg-card__desc { flex-basis: 100%; padding-left: 1.95rem; font-size: .95rem; }
.pcreg-card__type { font-style: italic; margin: .25rem 0 !important; }
.pcreg-card__bullets { margin: .5rem 0 0; padding-left: 1.1rem; }
.pcreg-card__bullets li { margin: 0 0 .2rem; }
/* Not colour-only: a text marker on the chosen card. */
.pcreg-card__radio:checked + .pcreg-card__label .pcreg-card__name::after {
	content: " \2713  Selected";
	font-size: .85rem; font-weight: 600; color: var(--pcreg-accent);
}

/* Buttons */
.pcreg-actions { margin: 1.5rem 0; }
.pcreg-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; width: 100%;
	padding: .8rem 1.5rem;
	font: inherit; font-size: 1.1rem; font-weight: 700; line-height: 1.2; text-align: center;
	color: #fff !important; text-decoration: none !important;
	background: var(--pcreg-accent);
	border: 2px solid var(--pcreg-accent);
	border-radius: var(--pcreg-radius);
	cursor: pointer;
}
.pcreg-btn:hover { filter: brightness(.92); }

/* Confirmation */
.pcreg-summary { margin: 0 0 1.25rem; border: 1px solid #d0d0d4; border-radius: var(--pcreg-radius); }
.pcreg-summary__row { padding: .6rem 1rem; border-bottom: 1px solid #e3e3e6; }
.pcreg-summary__row:last-child { border-bottom: 0; }
.pcreg-summary dt { font-weight: 700; font-size: .9rem; color: var(--pcreg-muted); }
.pcreg-summary dd { margin: 0; overflow-wrap: anywhere; }
.pcreg-btn--pay { font-size: 1.2rem; min-height: 56px; }
.pcreg-next { font-weight: 600; }

@media (min-width: 640px) {
	.pcreg-grid { grid-template-columns: 1fr 1fr; }
	.pcreg-cards { grid-template-columns: 1fr 1fr; }
	.pcreg-btn { width: auto; }
	.pcreg-summary__row { display: grid; grid-template-columns: 11rem 1fr; gap: 1rem; }
}
@media (min-width: 960px) {
	.pcreg-cards { grid-template-columns: repeat(3, 1fr); }
}
