/*
 * PNBISL Enquire Now – compact layout.
 * Colours come from the website (Elementor Global Colors) via inline CSS variables.
 * Fonts are inherited from the site. Layout adapts to the width of the column the
 * shortcode sits in: 3 columns (wide) → 2 columns → 1 column (phones).
 */
.pnbisl-enq {
	--pe-ink: #1c2230;
	--pe-muted: #5d6677;
	--pe-line: #d5dae3;
	--pe-soft: #f5f6f9;
	--pe-navy: #1c2842;
	--pe-accent: #8e1b3d;
	--pe-accent-dark: #731631;
	--pe-accent-text: #ffffff;
	--pe-err: #b3261e;
	--pe-ok: #1d6b45;
	--pe-input: #b4bbc8;
	--pe-h: 40px;
	container: pe / inline-size;
	width: 100%;
	max-width: 960px;
	margin-left: auto !important;
	margin-right: auto !important;
	color: var(--pe-ink);
	font-size: 14.5px;
	line-height: 1.45;
	text-align: left;
}
.pnbisl-enq *, .pnbisl-enq *::before, .pnbisl-enq *::after { box-sizing: border-box; }

/* card – centred, with even padding on all sides */
.pnbisl-enq .pe-grid { display: block; width: 100%; }
.pnbisl-enq .pe-formcard {
	background: #fff; border: 1px solid var(--pe-line); border-radius: 10px;
	padding: 28px 32px 30px; box-shadow: 0 2px 14px rgba(28, 40, 66, .06);
}
.pnbisl-enq .pe-form { margin: 0; }

/* neutralise theme styles on fieldset / legend (themes often add colours, borders, padding) */
.pnbisl-enq fieldset { margin: 0; min-width: 0; }
.pnbisl-enq legend,
.pnbisl-enq .pe-field legend,
.pnbisl-enq .pe-vpanel > legend {
	background: none !important; background-color: transparent !important;
	border: 0 !important; box-shadow: none !important; text-transform: none; letter-spacing: normal;
}
.pnbisl-enq .pe-pills { background: none !important; border: 0 !important; box-shadow: none !important; }

/* heading */
.pnbisl-enq .pe-title { margin: 0 0 4px; font-size: 22px; line-height: 1.25; color: var(--pe-navy); }
.pnbisl-enq .pe-lead { margin: 0 0 6px; color: var(--pe-muted); font-size: 13.5px; max-width: 75ch; }
.pnbisl-enq .pe-lead strong { color: var(--pe-ink); font-weight: 600; }
.pnbisl-enq .pe-reqnote { margin: 0 0 14px; font-size: 12.5px; color: var(--pe-muted); }
.pnbisl-enq .pe-req { color: var(--pe-err); font-weight: 700; margin-left: 3px; }

/* grid */
.pnbisl-enq .pe-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 18px; align-items: start; }
.pnbisl-enq .pe-full { grid-column: 1 / -1; }
.pnbisl-enq .pe-field { min-width: 0; margin: 0; }
.pnbisl-enq .pe-field > label,
.pnbisl-enq .pe-field legend { display: block; font-size: 13px; font-weight: 600; margin: 0 0 4px; padding: 0; color: var(--pe-ink); line-height: 1.3; }

/* controls */
.pnbisl-enq input[type="text"],
.pnbisl-enq input[type="email"],
.pnbisl-enq input[type="tel"],
.pnbisl-enq select,
.pnbisl-enq textarea {
	display: block; width: 100%; margin: 0; font: inherit; font-size: 14.5px; color: var(--pe-ink); background: #fff;
	border: 1px solid var(--pe-input); border-radius: 5px; padding: 8px 11px; height: var(--pe-h); min-height: 0; box-shadow: none; line-height: 1.3;
}
.pnbisl-enq select {
	appearance: none; -webkit-appearance: none; padding-right: 32px; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%23566073' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 11px center;
}
.pnbisl-enq textarea { height: auto; min-height: 92px; resize: vertical; line-height: 1.45; }
.pnbisl-enq input::placeholder, .pnbisl-enq textarea::placeholder { color: #8a92a2; }
.pnbisl-enq input:focus, .pnbisl-enq select:focus, .pnbisl-enq textarea:focus { outline: 2px solid var(--pe-accent); outline-offset: 0; border-color: var(--pe-accent); }
.pnbisl-enq [aria-invalid="true"] { border-color: var(--pe-err); background-color: #fffafa; }

/* messages */
.pnbisl-enq .pe-err { margin: 4px 0 0; font-size: 12.5px; line-height: 1.35; color: var(--pe-err); }
.pnbisl-enq .pe-err:empty { display: none; }
.pnbisl-enq .pe-warn { margin: 4px 0 0; font-size: 12px; line-height: 1.35; color: #6d4400; background: #fff6e0; border-left: 3px solid #d99a1c; padding: 4px 8px; border-radius: 0 4px 4px 0; }
.pnbisl-enq .pe-warn[hidden] { display: none; }
.pnbisl-enq .pe-route { margin: 4px 0 0; font-size: 12.5px; color: var(--pe-link, var(--pe-accent)); font-weight: 600; }
.pnbisl-enq .pe-route:empty { display: none; }
.pnbisl-enq .pe-rowmeta { display: flex; justify-content: space-between; gap: 12px; }
.pnbisl-enq .pe-count { font-size: 12px; color: var(--pe-muted); white-space: nowrap; margin: 3px 0 0 auto; }
.pnbisl-enq .pe-alert { margin: 0 0 12px; padding: 9px 12px; border-left: 4px solid var(--pe-err); background: #fdf0ef; color: var(--pe-err); border-radius: 0 5px 5px 0; font-size: 13.5px; }
.pnbisl-enq .pe-alert[hidden] { display: none; }

/* vertical-specific block */
.pnbisl-enq fieldset.pe-vpanel { margin: 4px 0; min-width: 0; background: var(--pe-soft) !important; border: 1px solid var(--pe-line) !important; border-left: 3px solid var(--pe-accent) !important; border-radius: 0 8px 8px 0; padding: 16px 18px 18px !important; box-shadow: none; animation: pe-reveal .2s ease-out; }
.pnbisl-enq .pe-vpanel[hidden] { display: none; }
.pnbisl-enq .pe-vpanel > legend { float: left; width: 100%; margin: 0; padding: 0; font-size: 15px; font-weight: 700; color: var(--pe-navy); }
.pnbisl-enq .pe-vpanel > legend + * { clear: both; }
.pnbisl-enq .pe-sub { margin: 0 0 10px; font-size: 12.5px; color: var(--pe-muted); }
.pnbisl-enq .pe-vpanel .pe-fields { gap: 14px 16px; }
.pnbisl-enq .pe-pills label > span { min-height: 34px; }
@keyframes pe-reveal { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }

/* radio pills */
.pnbisl-enq .pe-pills { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border: 0; margin: 0; padding: 0; min-width: 0; }
.pnbisl-enq .pe-pills legend { float: left; width: 100%; }
.pnbisl-enq .pe-pills legend + * { clear: both; }
.pnbisl-enq .pe-pills label { position: relative; margin: 0; font-weight: 500; }
.pnbisl-enq .pe-pills input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.pnbisl-enq .pe-pills label > span { display: inline-block; padding: 5px 14px; border: 1px solid var(--pe-input); border-radius: 999px; background: #fff; font-size: 13.5px; line-height: 1.5; }
.pnbisl-enq .pe-pills input:checked + span { background: var(--pe-navy); border-color: var(--pe-navy); color: #fff; }
.pnbisl-enq .pe-pills input:focus-visible + span { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

.pnbisl-enq .pe-captcha { min-height: 65px; }

/* consent */
.pnbisl-enq .pe-consent { display: flex; gap: 10px; align-items: flex-start; }
.pnbisl-enq .pe-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--pe-accent); flex: none; }
.pnbisl-enq .pe-consent label { font-weight: 400; font-size: 13px; line-height: 1.45; margin: 0; color: var(--pe-ink); }
.pnbisl-enq .pe-consent a { color: var(--pe-link, var(--pe-accent)); }

/* actions */
.pnbisl-enq .pe-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 2px; }
.pnbisl-enq .pe-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: inherit; font-size: 15px; font-weight: 600; color: var(--pe-accent-text, #fff); background: var(--pe-accent); border: 0; border-radius: 5px; padding: 10px 24px; min-height: 42px; cursor: pointer; text-transform: none; letter-spacing: normal; line-height: 1.2; }
.pnbisl-enq .pe-btn:hover { background: var(--pe-accent-dark); color: var(--pe-accent-text, #fff); }
.pnbisl-enq .pe-btn:focus-visible { outline: 3px solid var(--pe-navy); outline-offset: 2px; }
.pnbisl-enq .pe-btn[disabled] { opacity: .75; cursor: progress; }
.pnbisl-enq .pe-ghost { background: #fff; color: var(--pe-link, var(--pe-accent)); border: 1px solid currentColor; }
.pnbisl-enq .pe-ghost:hover { background: var(--pe-soft); color: var(--pe-link, var(--pe-accent)); }
.pnbisl-enq .pe-note { font-size: 12.5px; color: var(--pe-muted); }
.pnbisl-enq .pe-spin { display: none; width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.45); border-top-color: currentColor; border-radius: 50%; animation: pe-spin .8s linear infinite; }
.pnbisl-enq .pe-btn.is-busy .pe-spin { display: inline-block; }
@keyframes pe-spin { to { transform: rotate(360deg); } }

/* success card */
.pnbisl-enq .pe-done { border: 1px solid #b9dcc9; background: #f2faf5; border-radius: 8px; padding: 22px; }
.pnbisl-enq .pe-done[hidden] { display: none; }
.pnbisl-enq .pe-done:focus { outline: none; }
.pnbisl-enq .pe-done svg { display: block; width: 34px; height: 34px; margin-bottom: 8px; }
.pnbisl-enq .pe-done h3 { margin: 0 0 4px; font-size: 20px; color: var(--pe-ok); }
.pnbisl-enq .pe-done p { margin: 0 0 8px; max-width: 60ch; }
.pnbisl-enq .pe-ref { display: inline-block; margin: 2px 0 12px; padding: 8px 14px; background: #fff; border: 1px solid #b9dcc9; border-radius: 5px; font-size: 19px; font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums; color: var(--pe-navy); overflow-wrap: anywhere; }

.pnbisl-enq .pe-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* responsive – based on the width of the column the form is placed in */
@container pe (max-width: 720px) {
	.pnbisl-enq .pe-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container pe (max-width: 720px) {
	.pnbisl-enq .pe-formcard { padding: 22px 20px 24px; }
}
@container pe (max-width: 460px) {
	.pnbisl-enq .pe-formcard { padding: 18px 14px 20px; border-radius: 8px; }
	.pnbisl-enq fieldset.pe-vpanel { padding: 14px 12px 16px !important; }
	.pnbisl-enq .pe-fields { grid-template-columns: 1fr; }
	.pnbisl-enq .pe-btn { width: 100%; }
	.pnbisl-enq .pe-ref { font-size: 17px; }
}
@supports not (container-type: inline-size) {
	@media (max-width: 760px) { .pnbisl-enq .pe-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
	@media (max-width: 480px) { .pnbisl-enq .pe-fields { grid-template-columns: 1fr; } .pnbisl-enq .pe-btn { width: 100%; } }
}
@media (prefers-reduced-motion: reduce) {
	.pnbisl-enq .pe-vpanel, .pnbisl-enq .pe-spin { animation: none; }
}
