/* JPF site — one cleaner, modern look for every form: enquiry, sign-in,
   registration, builder forms and applications. Overrides the plugin's
   boxy inputs and capitalised labels; uses its palette variables. */

.jpf-form {
	--jpf-field-line:#d4dce5;
	--jpf-field-radius:10px;
	margin-top:24px; padding:32px; background:#fff;
	border:1px solid #e3e9ef; border-top:0; border-radius:14px;
	box-shadow:0 1px 2px rgba(6,38,68,.04), 0 8px 28px rgba(6,38,68,.06);
}
.jpf-frow { gap:20px 22px; }
.jpf-f { margin-bottom:20px; }

.jpf-f__label {
	font-family:var(--jpf-body-font); text-transform:none; letter-spacing:0;
	font-size:15px; font-weight:600; color:var(--jpf-ink); margin-bottom:8px;
}
.jpf-f__label span[aria-hidden], .jpf-req { color:var(--jpf-red); font-weight:700; }

.jpf-f__input {
	min-height:50px; padding:0 16px; border:1.5px solid var(--jpf-field-line);
	border-radius:var(--jpf-field-radius); background:#fbfcfd;
	font-size:16px; transition:border-color .15s, box-shadow .15s, background-color .15s;
}
textarea.jpf-f__input { min-height:120px; padding:14px 16px; }
select.jpf-f__input {
	appearance:none; padding-right:44px; cursor:pointer;
	background:#fbfcfd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235b6672' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
}
.jpf-f__input::placeholder { color:#97a3b0; }
.jpf-f__input:hover { border-color:#b9c6d3; }
.jpf-f__input:focus {
	outline:none; border-color:var(--jpf-blue); background-color:#fff;
	box-shadow:0 0 0 4px rgba(14,76,146,.14);
}
.jpf-f.has-error .jpf-f__input,
.jpf-f.has-error .jpf-choices { outline:none; border-color:var(--jpf-red); box-shadow:0 0 0 4px rgba(200,16,46,.10); }
.jpf-f__note { font-size:13.5px; margin-top:6px; }
.jpf-f__error { display:flex; align-items:center; gap:6px; font-size:13.5px; }
.jpf-f__error::before {
	content:'!'; display:inline-grid; place-items:center; width:16px; height:16px; border-radius:50%;
	background:var(--jpf-red); color:#fff; font-size:11px; font-weight:700;
}

/* Ticks and choices */
.jpf-consent, .jpf-choice { cursor:pointer; }
.jpf-consent input, .jpf-choice input, .jpf-confirm input { accent-color:var(--jpf-blue); }
.jpf-choices:not(.jpf-choices--rating) .jpf-choice {
	padding:12px 14px; border:1.5px solid #d4dce5; border-radius:10px;
	transition:border-color .15s, background-color .15s;
}
.jpf-choices:not(.jpf-choices--rating) .jpf-choice:has(input:checked) { border-color:var(--jpf-blue); background:#eef4fb; }
.jpf-choices--rating .jpf-choice { border-radius:10px; }

/* Notes inside forms */
.jpf-formnote { border-left:0; border-radius:10px; background:#f2f6fa; padding:14px 16px; }
.jpf-formmsg { border-left:0; border-radius:10px; padding:14px 18px; }
.jpf-fset > legend { font-size:15px; }

/* The foot of a form */
.jpf-form .jpf-btn { border-radius:10px; }
.jpf-form__actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; padding-top:8px; }
.jpf-form__cancel { color:#5b6672; text-decoration:none; font-weight:600; }
.jpf-form__cancel:hover { color:var(--jpf-blue); text-decoration:underline; }

/* Long forms in titled parts */
.jpf-form--steps { padding:8px 32px 32px; }
.jpf-step-card { border:0; margin:0; padding:26px 0 8px; min-width:0; border-bottom:1px solid #edf1f5; }
.jpf-step-card:last-of-type { border-bottom:0; }
.jpf-step-card__head { display:block; padding:0; margin-bottom:18px; width:100%; }
.jpf-step-card__title {
	display:block; font-family:var(--jpf-head-font); text-transform:var(--jpf-head-case);
	font-size:21px; line-height:1.3; color:var(--jpf-ink);
}
.jpf-step-card__hint { display:block; margin-top:4px; font-size:14px; color:#5b6672; }

/* The heading above an application form */
.jpf-formhead { display:grid; gap:6px; margin-bottom:8px; }
.jpf-formhead .jpf-sechd { margin:0; }
.jpf-formhead__download {
	display:flex; align-items:center; gap:14px; margin-top:12px; padding:14px 18px; max-width:520px;
	border:1.5px solid #d4dce5; border-radius:12px; color:var(--jpf-ink); text-decoration:none; background:#fff;
}
.jpf-formhead__download .jpf-icon { color:#B0453A; flex:none; }
.jpf-formhead__download span { font-size:14px; color:#5b6672; line-height:1.45; }
.jpf-formhead__download strong { color:var(--jpf-blue); font-size:15px; }
.jpf-formhead__download:hover { border-color:var(--jpf-blue); box-shadow:0 0 0 4px rgba(14,76,146,.08); }

/* File tiles: click or drop */
.jpf-drops { display:grid; gap:12px; margin-bottom:12px; }
.jpf-drops .jpf-f { margin-bottom:0; }
.jpf-drop {
	position:relative; display:flex; align-items:center; gap:16px; padding:16px 18px; cursor:pointer;
	border:1.5px dashed #c3cfdb; border-radius:12px; background:#fbfcfd;
	transition:border-color .15s, background-color .15s;
}
.jpf-drop:hover, .jpf-drop.is-over { border-color:var(--jpf-blue); background:#f3f7fc; }
.jpf-drop:focus-within { border-color:var(--jpf-blue); box-shadow:0 0 0 4px rgba(14,76,146,.14); }
.jpf-drop__input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.jpf-drop__icon {
	flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:12px;
	background:#e8f0f9; color:var(--jpf-blue);
}
.jpf-drop__icon .jpf-icon { transform:rotate(180deg); }
.jpf-drop__text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.jpf-drop__label { font-weight:600; color:var(--jpf-ink); font-size:15px; }
.jpf-drop__hint { font-size:13px; color:#6b7684; }
.jpf-drop__files { font-size:14px; font-weight:600; color:#1b7a4b; overflow-wrap:anywhere; }
.jpf-drop__files:empty { display:none; }
.jpf-drop.has-file { border-style:solid; border-color:#9fd1b5; background:#f2faf5; }
.jpf-drop.has-file .jpf-drop__icon { background:#dcf1e4; color:#1b7a4b; }
.jpf-f.has-error .jpf-drop { border-color:var(--jpf-red); }

/* The declaration */
.jpf-confirm {
	display:flex; align-items:flex-start; gap:14px; padding:16px 18px; cursor:pointer;
	border:1.5px solid #d4dce5; border-radius:12px; background:#fbfcfd; font-size:15px; line-height:1.55;
}
.jpf-confirm input { width:22px; height:22px; margin:1px 0 0; flex:none; }
.jpf-confirm:has(input:checked) { border-color:var(--jpf-blue); background:#eef4fb; }
.jpf-confirm.has-error { border-color:var(--jpf-red); }

@media (max-width:560px) {
	.jpf-form { padding:22px 18px 24px; border-radius:12px; }
	.jpf-form--steps { padding:4px 18px 22px; }
	.jpf-step-card__title { font-size:19px; }
}

/* Choosing what to apply for */
.jpf-typegroup { margin-top:28px; }
.jpf-typegroup__title {
	display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:0 0 12px;
	font-family:var(--jpf-head-font); text-transform:var(--jpf-head-case); font-size:18px; letter-spacing:.02em; color:var(--jpf-blue);
}
.jpf-typegroup__title span { font-family:var(--jpf-body-font); text-transform:none; letter-spacing:0; font-size:14px; font-weight:400; color:#5b6672; }
/* Each kind is the site's own link tile (.jpf-tile), with the paper form beneath it. */
.jpf-typelist { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); align-items:start; gap:16px; }
.jpf-typecard { display:flex; flex-direction:column; gap:8px; }
.jpf-typecard .jpf-tile__arrow { transition:transform .15s; }
.jpf-typecard .jpf-tile:hover .jpf-tile__arrow { transform:translateX(3px); }
.jpf-typecard__paper {
	display:inline-flex; align-items:center; gap:6px; align-self:flex-start; padding-left:2px;
	font-size:13px; font-weight:600; color:#5b6672; text-decoration:none;
}
.jpf-typecard__paper:hover { color:var(--jpf-blue); text-decoration:underline; }

/* Signed out: the invitation to sign in or register */
.jpf-appbox {
	display:flex; flex-direction:row; align-items:flex-start; gap:20px; max-width:720px; padding:28px 30px;
	background:#fff; border:1px solid #e3e9ef; border-radius:16px;
	box-shadow:0 1px 2px rgba(6,38,68,.04), 0 8px 28px rgba(6,38,68,.06);
}
.jpf-appbox__icon {
	flex:none; display:grid; place-items:center; width:56px; height:56px; border-radius:16px;
	background:#eef4fb; color:var(--jpf-blue);
}
.jpf-appbox__text { display:flex; flex-direction:column; gap:6px; min-width:0; }
.jpf-appbox__title { margin:0; font-family:var(--jpf-head-font); text-transform:var(--jpf-head-case); font-size:22px; color:var(--jpf-ink); }
.jpf-appbox .jpf-prose p { margin:0; color:#4a5561; }
.jpf-appbox__btns { display:flex; flex-wrap:wrap; gap:12px; margin:12px 0 0; }
.jpf-appbox__btns .jpf-btn { border-radius:10px; }
@media (max-width:560px) { .jpf-appbox { flex-direction:column; padding:22px 20px; } }

/* Builder forms: widths, grouped inputs, headings, pages */
.jpf-form [hidden] { display:none !important; }
.jpf-form--built .jpf-frow > * { flex:1 1 100%; min-width:0; }
.jpf-form--built .jpf-frow > .jpf-f--half { flex:1 1 calc(50% - 11px); min-width:240px; }
.jpf-form--built .jpf-frow > .jpf-f--third { flex:1 1 calc(33.333% - 15px); min-width:190px; }
.jpf-form--built .jpf-frow .jpf-f { margin-bottom:0; }
.jpf-form--built .jpf-choices:not(.jpf-choices--rating) { flex-direction:row; flex-wrap:wrap; }
.jpf-form--built .jpf-choices:not(.jpf-choices--rating) .jpf-choice { flex:0 1 auto; min-width:120px; }
.jpf-subfields { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px 16px; }
.jpf-subfields--address { grid-template-columns:minmax(0, 3fr) minmax(0, 2fr); }
.jpf-subfields__wide { grid-column:1 / -1; }
.jpf-subfields label { display:flex; flex-direction:column; gap:6px; }
.jpf-subfields__label { font-size:13px; color:#5b6672; }
.jpf-f__section { padding-top:12px; border-top:1px solid #edf1f5; }
.jpf-f__section .jpf-f__heading { margin:0; font-size:20px; color:var(--jpf-ink); }
.jpf-f__section .jpf-f__note { margin:4px 0 0; }
.jpf-f__html { margin:0; padding:12px 16px; border-radius:10px; background:#f2f6fa; font-size:14.5px; }
.jpf-f__html p { margin:0; }
.jpf-form__desc { margin:16px 0 0; color:#4a5561; }
.jpf-pages { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 24px; padding:0; }
.jpf-pages li {
	display:flex; align-items:center; gap:8px; padding:6px 14px 6px 10px;
	border-radius:999px; background:#f2f6fa; color:#5b6672; font-size:14px; font-weight:600;
}
.jpf-pages li::before {
	content:''; display:grid; place-items:center; width:16px; height:16px; border-radius:50%;
	background:#fff; color:#5b6672; font-size:10px;
}
.jpf-pages li.is-here { background:var(--jpf-blue); color:#fff; }
.jpf-pages li.is-here::before { box-shadow:inset 0 0 0 4px var(--jpf-blue); }
.jpf-pages li.is-done::before { content:'✓'; background:#dcf1e4; color:#1b7a4b; }
.jpf-answers__head { margin:18px 0 8px; font-size:15px; color:var(--jpf-blue); }
@media (max-width:560px) {
	.jpf-subfields, .jpf-subfields--address { grid-template-columns:1fr; }
}

/* Builder forms: Gravity Forms options */
.jpf-sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0; }
.jpf-req--text { font-size:13px; font-weight:600; color:var(--jpf-red); }
.jpf-f__count { margin:6px 0 0; font-size:12.5px; color:#6b7684; text-align:right; }
.jpf-f__input--multi { min-height:auto; padding:8px; background-image:none; }
.jpf-f__input--multi option { padding:6px 8px; border-radius:6px; }
.jpf-choice--other { flex:1 1 260px !important; }
.jpf-choice--other .jpf-f__input { min-height:38px; flex:1; min-width:120px; }
.jpf-selectall { margin-top:8px; font-size:14px; font-weight:600; color:var(--jpf-blue); background:none; border:0; padding:0; cursor:pointer; text-decoration:underline; }
.jpf-list { display:grid; gap:8px; }
.jpf-list__row { display:flex; gap:8px; align-items:center; }
.jpf-list__row .jpf-f__input { flex:1; }
.jpf-list__btn {
	flex:none; width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:20px; line-height:1;
	color:var(--jpf-blue); background:#fff; border:1.5px solid #d4dce5;
}
.jpf-list__btn:hover { border-color:var(--jpf-blue); background:#eef4fb; }
.jpf-progressbar { margin:0 0 24px; }
.jpf-progressbar__text { margin:0 0 8px; font-size:14px; font-weight:600; color:#5b6672; }
.jpf-progressbar__track { height:8px; border-radius:999px; background:#e8eef4; overflow:hidden; }
.jpf-progressbar__track span { display:block; height:100%; border-radius:999px; background:var(--jpf-blue); transition:width .25s; }
/* Labels to the left of their answers */
@media (min-width:700px) {
	.jpf-form--labels-left .jpf-frow > .jpf-f:not(.jpf-f__html) { display:grid; grid-template-columns:minmax(140px, 30%) minmax(0, 1fr); gap:6px 20px; align-items:start; }
	.jpf-form--labels-left .jpf-frow > .jpf-f > .jpf-f__label { padding-top:13px; margin:0; }
}

/* List fields with columns: a small table, one record per row */
.jpf-list--columns .jpf-list__head,
.jpf-list--columns .jpf-list__cells { display:grid; grid-template-columns:repeat(var(--jpf-cols), minmax(0, 1fr)); gap:8px; flex:1; }
.jpf-list--columns .jpf-list__head { grid-template-columns:repeat(var(--jpf-cols), minmax(0, 1fr)) 84px; font-size:13px; font-weight:600; color:#5b6672; }
.jpf-list__cell { display:block; min-width:0; }
.jpf-list__celllabel { display:none; }
@media (max-width:640px) {
	.jpf-list--columns .jpf-list__head { display:none; }
	.jpf-list--columns .jpf-list__row { align-items:flex-start; padding:12px; border:1.5px solid #e3e9ef; border-radius:12px; }
	.jpf-list--columns .jpf-list__cells { grid-template-columns:1fr; }
	.jpf-list__celllabel { display:block; margin-bottom:4px; font-size:13px; color:#5b6672; }
}

/* Signature pad on the application form */
.jpf-sign { margin-top: 18px; }
.jpf-sign__box { position: relative; height: 170px; border: 2px dashed #b9c3d0; border-radius: 10px; background: #fbfcfe; touch-action: none; }
.jpf-sign.is-signed .jpf-sign__box { border-style: solid; border-color: #0e4c92; background: #fff; }
.jpf-sign.has-error .jpf-sign__box { border-color: #c8102e; background: #fff6f6; }
.jpf-sign__pad { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; touch-action: none; border-radius: 10px; }
.jpf-sign__pad:focus-visible { outline: 3px solid #d4a017; outline-offset: 2px; }
.jpf-sign__line { position: absolute; left: 18px; right: 18px; bottom: 38px; border-bottom: 1px solid #8a97a8; color: #8a97a8; font-size: 14px; line-height: 1; padding-bottom: 2px; pointer-events: none; }
.jpf-sign__placeholder { position: absolute; left: 0; right: 0; top: 40%; text-align: center; color: #a3adbb; font-size: 15px; letter-spacing: .04em; pointer-events: none; transition: opacity .15s; }
.jpf-sign.is-signed .jpf-sign__placeholder { opacity: 0; }
.jpf-sign__bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; font-size: 13px; color: #5b6878; }

/* Worked-out totals on application forms */
.jpf-f__input--calc { background: #f1f5fb !important; color: #0b2a5c; cursor: default; }

/* My Application: edit or view only, as the workflow sets it */
.jpf-editbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 14px 0; padding: 12px 16px; border-radius: 10px; background: #f3f5f8; border: 1px solid #dfe4ec; }
.jpf-editbar.is-edit { background: #eef6ff; border-color: #c6dcf5; }
.jpf-editbar p { margin: 0; }
.jpf-appcard__mode { display: inline-block; margin-top: 6px; font-size: 12.5px; color: #5b6878; }
.jpf-appcard__mode.is-edit { color: #1b6b3a; font-weight: 600; }

/* A section that cannot be changed at this step */
.jpf-step-card--locked { background: #f7f9fc; border-style: dashed; }
.jpf-step-card--locked .jpf-step-card__title { display: inline-flex; align-items: center; gap: 6px; color: #4b5563; }
.jpf-step-card--locked .jpf-dl { margin: 10px 0 0; }
