.jdmf-form{
	--jdmf-label:#0A1B5C;--jdmf-text:#1B2340;--jdmf-field-bg:#F3F7FF;--jdmf-field-border:#D5E0F7;
	--jdmf-focus:#1457E6;--jdmf-radius:8px;--jdmf-btn-radius:8px;--jdmf-btn-bg:#1457E6;--jdmf-btn-text:#fff;--jdmf-btn-hover:#0A1B5C;
	--jdmf-label-size:15px;--jdmf-label-weight:600;--jdmf-text-size:16px;--jdmf-field-h:50px;--jdmf-border-w:1px;--jdmf-gap:18px;
	--jdmf-field-shadow:none;--jdmf-focus-shadow:0 0 0 3px rgba(20,87,230,.22);--jdmf-btn-shadow:none;--jdmf-btn-hover-shadow:none;
	--jdmf-box-bg:transparent;--jdmf-box-border:transparent;--jdmf-box-pad:0;--jdmf-box-radius:0;--jdmf-box-shadow:none;
	width:100%;box-sizing:border-box;position:relative;
}
.jdmf-form *{box-sizing:border-box}
.jdmf-form [hidden]{display:none!important}
.jdmf-form.has-box{background:var(--jdmf-box-bg);padding:var(--jdmf-box-pad);border:1px solid var(--jdmf-box-border);border-radius:var(--jdmf-box-radius);box-shadow:var(--jdmf-box-shadow)}

.jdmf-fields{display:flex;flex-wrap:wrap;gap:var(--jdmf-gap) 16px;margin-bottom:20px}
.jdmf-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.jdmf-w100{flex:1 1 100%}
.jdmf-w50{flex:1 1 calc(50% - 8px)}
.jdmf-field .jdmf-label{font-weight:var(--jdmf-label-weight);font-size:var(--jdmf-label-size);line-height:1.3;color:var(--jdmf-label);display:block}
.jdmf-req{color:#E6007E}

/* ---- Text-like controls ---- */
.jdmf-field input[type=text],.jdmf-field input[type=email],.jdmf-field input[type=tel],
.jdmf-field input[type=number],.jdmf-field input[type=date],.jdmf-field input[type=file],
.jdmf-field select,.jdmf-field textarea,.jdmf-multi-btn{
	width:100%;padding:13px 14px;font:inherit;font-size:var(--jdmf-text-size);line-height:1.4;color:var(--jdmf-text);
	background:var(--jdmf-field-bg);border:var(--jdmf-border-w) solid var(--jdmf-field-border);border-radius:var(--jdmf-radius);
	box-shadow:var(--jdmf-field-shadow);outline:none;transition:border-color .15s,box-shadow .15s;margin:0;
}
.jdmf-field input[type=text],.jdmf-field input[type=email],.jdmf-field input[type=tel],.jdmf-field input[type=number],
.jdmf-field input[type=date],.jdmf-field select,.jdmf-multi-btn{height:var(--jdmf-field-h)}
.jdmf-field textarea{resize:vertical;height:auto}
.jdmf-field input[type=file]{padding:10px 12px;background:#fff;height:auto}
.jdmf-field input:focus,.jdmf-field select:focus,.jdmf-field textarea:focus,.jdmf-multi-btn:focus-visible,.jdmf-multi.is-open .jdmf-multi-btn{
	border-color:var(--jdmf-focus);box-shadow:var(--jdmf-focus-shadow);
}
.jdmf-hint{font-size:13px;color:#6B7699}

/* ---- Choice cards (radio / checkbox / multi-select list) ---- */
.jdmf-choices{display:grid;grid-template-columns:repeat(var(--jdmf-cols,1),minmax(0,1fr));gap:10px}
.jdmf-choices.cols-2{--jdmf-cols:2}.jdmf-choices.cols-3{--jdmf-cols:3}.jdmf-choices.cols-4{--jdmf-cols:4}
.jdmf-choice{
	position:relative;display:flex;align-items:center;gap:11px;cursor:pointer;margin:0;
	padding:11px 14px;min-height:calc(var(--jdmf-field-h) - 6px);font-size:var(--jdmf-text-size);line-height:1.35;color:var(--jdmf-text);
	background:var(--jdmf-field-bg);border:var(--jdmf-border-w) solid var(--jdmf-field-border);border-radius:var(--jdmf-radius);
	box-shadow:var(--jdmf-field-shadow);transition:border-color .15s,box-shadow .15s,background .15s;
}
.jdmf-choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.jdmf-choice:hover{border-color:var(--jdmf-focus)}
.jdmf-choice:focus-within{border-color:var(--jdmf-focus);box-shadow:var(--jdmf-focus-shadow)}
.jdmf-mark{flex:0 0 20px;width:20px;height:20px;border:2px solid var(--jdmf-field-border);background:#fff;border-radius:6px;position:relative;transition:all .15s}
.jdmf-type-radio .jdmf-mark{border-radius:50%}
.jdmf-choice.is-checked{border-color:var(--jdmf-focus);background:color-mix(in srgb,var(--jdmf-focus) 8%,var(--jdmf-field-bg))}
.jdmf-choice.is-checked .jdmf-mark{background:var(--jdmf-focus);border-color:var(--jdmf-focus)}
.jdmf-choice.is-checked .jdmf-mark::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.jdmf-type-radio .jdmf-choice.is-checked .jdmf-mark::after{left:4px;top:4px;width:8px;height:8px;border:0;background:#fff;border-radius:50%;transform:none}

/* ---- Multi-select dropdown ---- */
.jdmf-multi{position:relative}
.jdmf-multi-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}
.jdmf-multi-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.jdmf-multi-btn.is-empty .jdmf-multi-text{opacity:.6}
.jdmf-caret{flex:0 0 10px;width:10px;height:10px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-2px);opacity:.7;transition:transform .15s}
.jdmf-multi.is-open .jdmf-caret{transform:rotate(-135deg) translateY(-2px)}
.jdmf-multi-panel{
	position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);max-height:280px;overflow:auto;padding:8px;
	background:#fff;border:1px solid var(--jdmf-field-border);border-radius:var(--jdmf-radius);box-shadow:0 14px 34px rgba(10,27,92,.18);
}
.jdmf-multi-panel .jdmf-choice{border-color:transparent;background:transparent;box-shadow:none;min-height:40px;padding:8px 10px}
.jdmf-multi-panel .jdmf-choice:hover{background:var(--jdmf-field-bg)}
.jdmf-multi-panel .jdmf-choice.is-checked{background:color-mix(in srgb,var(--jdmf-focus) 10%,#fff)}

/* ---- Address ---- */
.jdmf-addr{display:flex;flex-wrap:wrap;gap:12px}
.jdmf-sub{flex:1 1 100%;display:flex;flex-direction:column;gap:5px;min-width:0}
.jdmf-sub.is-half{flex:1 1 calc(50% - 6px)}
.jdmf-sublabel{font-size:13px;font-weight:500;color:var(--jdmf-label);opacity:.8}

/* ---- Errors ---- */
.jdmf-err{font-size:13px;line-height:1.4;color:#C21F45;font-weight:500}
.jdmf-err:empty{display:none}
.jdmf-field.is-invalid input:not([type=checkbox]):not([type=radio]),.jdmf-field.is-invalid select,.jdmf-field.is-invalid textarea,
.jdmf-field.is-invalid .jdmf-multi-btn,.jdmf-field.is-invalid .jdmf-choices .jdmf-choice{border-color:#D6264F}

/* ---- Steps ---- */
.jdmf-progress{margin:0 0 24px}
.jdmf-progress ol{list-style:none;margin:0;padding:0;display:flex;gap:0}
.jdmf-progress li{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;text-align:center;min-width:0}
.jdmf-progress li::before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:3px;background:var(--jdmf-field-border);z-index:0}
.jdmf-progress li:first-child::before{display:none}
.jdmf-progress li.is-done::before,.jdmf-progress li.is-current::before{background:var(--jdmf-btn-bg)}
.jdmf-dot{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;
	background:#fff;color:var(--jdmf-label);border:2px solid var(--jdmf-field-border);transition:all .2s}
.jdmf-progress li.is-current .jdmf-dot{background:var(--jdmf-btn-bg);border-color:var(--jdmf-btn-bg);color:var(--jdmf-btn-text);box-shadow:0 0 0 4px color-mix(in srgb,var(--jdmf-btn-bg) 18%,transparent)}
.jdmf-progress li.is-done .jdmf-dot{background:color-mix(in srgb,var(--jdmf-btn-bg) 14%,#fff);border-color:var(--jdmf-btn-bg);color:var(--jdmf-btn-bg)}
.jdmf-step-title{font-size:13px;font-weight:600;color:var(--jdmf-label);line-height:1.25;max-width:100%;overflow-wrap:anywhere}
.jdmf-progress li:not(.is-current) .jdmf-step-title{opacity:.65}
.jdmf-bar{height:8px;border-radius:99px;background:var(--jdmf-field-border);overflow:hidden}
.jdmf-bar span{display:block;height:100%;background:var(--jdmf-btn-bg);border-radius:99px;transition:width .3s}
.jdmf-bar-text{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:13px;font-weight:600;color:var(--jdmf-label)}
.jdmf-bar-count{opacity:.65}
.jdmf-step.is-entering{animation:jdmf-in .25s ease both}
@keyframes jdmf-in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.jdmf-step.is-entering{animation:none}}

/* ---- Buttons ---- */
.jdmf-nav{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.jdmf-btn{
	display:inline-block;cursor:pointer;border:var(--jdmf-border-w) solid transparent;padding:15px 30px;font:inherit;font-weight:700;font-size:16px;line-height:1.2;
	color:var(--jdmf-btn-text);background:var(--jdmf-btn-bg);border-radius:var(--jdmf-btn-radius);box-shadow:var(--jdmf-btn-shadow);
	transition:background .15s,transform .1s,box-shadow .15s;
}
.jdmf-btn:hover,.jdmf-btn:focus-visible{background:var(--jdmf-btn-hover);color:var(--jdmf-btn-text);box-shadow:var(--jdmf-btn-hover-shadow)}
.jdmf-btn:active{transform:translateY(1px)}
.jdmf-btn[disabled]{opacity:.65;cursor:wait}
.jdmf-back{background:transparent;color:var(--jdmf-label);border-color:var(--jdmf-field-border);box-shadow:none}
.jdmf-back:hover,.jdmf-back:focus-visible{background:var(--jdmf-field-bg);color:var(--jdmf-label);box-shadow:none}
.jdmf-nav.is-full .jdmf-next,.jdmf-nav.is-full .jdmf-submit{flex:1 1 0;width:100%}
.jdmf-nav.is-full .jdmf-back{flex:0 0 auto}

.jdmf-msg{margin-top:16px;font-size:15px;line-height:1.5}
.jdmf-msg.is-ok{padding:14px 16px;border-radius:var(--jdmf-radius);background:#E8F8EE;color:#14663A;border:1px solid #BFE8CF}
.jdmf-msg.is-error{padding:14px 16px;border-radius:var(--jdmf-radius);background:#FDECEF;color:#9B1535;border:1px solid #F5C2CD}
.jdmf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.jdmf-captcha{margin:0 0 16px}

@media(max-width:600px){
	.jdmf-w50,.jdmf-sub.is-half{flex:1 1 100%}
	.jdmf-choices.cols-3,.jdmf-choices.cols-4{--jdmf-cols:2}
	.jdmf-form.has-box{padding:min(var(--jdmf-box-pad),22px)}
	.jdmf-step-title{font-size:11px}
	.jdmf-btn{padding:14px 22px}
}
@media(max-width:420px){
	.jdmf-choices.cols-2,.jdmf-choices.cols-3,.jdmf-choices.cols-4{--jdmf-cols:1}
}
/* Conditional visibility must override field layout declarations. */
.jdmf-field[hidden]{display:none!important}

.jdmf-content{line-height:1.55;color:inherit}.jdmf-content h2,.jdmf-content h3{color:#102331;margin:0 0 .5em}.jdmf-content p{margin:.3em 0 1em}.jdmf-content img{max-width:100%;height:auto}

/* v1.8.16: clean, borderless choice lists. Keep the actual input marker visible. */
.jdmf-form .jdmf-choices:not(.jdmf-multi-panel .jdmf-choices) .jdmf-choice{background:transparent;border:0;box-shadow:none;border-radius:0;padding:5px 2px;min-height:32px}
.jdmf-form .jdmf-choices .jdmf-choice:hover,.jdmf-form .jdmf-choices .jdmf-choice.is-checked{background:transparent;border-color:transparent;box-shadow:none}
.jdmf-form .jdmf-choices .jdmf-choice:focus-within{outline:2px solid var(--jdmf-focus);outline-offset:2px}
.jdmf-form .jdmf-content{line-height:1.45}
.jdmf-form .jdmf-content h1,.jdmf-form .jdmf-content h2,.jdmf-form .jdmf-content h3,.jdmf-form .jdmf-content h4{margin:0 0 .25em;line-height:1.25}
.jdmf-form .jdmf-content p{margin:0 0 .45em}
.jdmf-form .jdmf-content p:last-child{margin-bottom:0}

/* v1.8.17: content blocks introduce the following section, not the preceding one. */
.jdmf-form .jdmf-content{margin-top:16px;margin-bottom:-8px;gap:0;line-height:1.45;min-width:0}
.jdmf-form .jdmf-content :is(h1,h2,h3,h4,h5,h6){color:var(--jdmf-label);line-height:1.25;margin:0 0 .3em}
.jdmf-form .jdmf-content p{margin:0 0 .45em}
.jdmf-form .jdmf-content :last-child{margin-bottom:0}
.jdmf-form .jdmf-content img{max-width:100%;height:auto}

/* 1.8.18: choice selection changes the marker only; keep a visible keyboard focus cue. */
.jdmf-form .jdmf-choices .jdmf-choice,
.jdmf-form .jdmf-choices .jdmf-choice:hover,
.jdmf-form .jdmf-choices .jdmf-choice.is-checked,
.jdmf-form .jdmf-choices .jdmf-choice:focus-within {
  background:transparent !important;border:0 !important;box-shadow:none !important;outline:0 !important;
}
.jdmf-form .jdmf-choices .jdmf-choice:focus-within .jdmf-mark {
  outline:2px solid var(--jdmf-focus);outline-offset:3px;
}

/* v1.8.20: opt-in choice appearance; minimal remains unchanged. */
.jdmf-form .jdmf-choices{gap:var(--jdmf-choice-gap,10px)}
.jdmf-form .jdmf-choices .jdmf-choice.is-checked .jdmf-mark{background:var(--jdmf-choice-accent,var(--jdmf-focus));border-color:var(--jdmf-choice-accent,var(--jdmf-focus))}
.jdmf-form.jdmf-choice-mode-outlined .jdmf-choices:not(.jdmf-multi-panel .jdmf-choices) .jdmf-choice{border:1px solid var(--jdmf-field-border)!important;border-radius:var(--jdmf-radius);padding:10px!important}
.jdmf-form.jdmf-choice-mode-filled .jdmf-choices:not(.jdmf-multi-panel .jdmf-choices) .jdmf-choice{background:var(--jdmf-choice-bg)!important;border-radius:var(--jdmf-radius);padding:10px!important}
.jdmf-form.jdmf-choice-mode-outlined .jdmf-choices .jdmf-choice.is-checked{border-color:var(--jdmf-choice-accent,var(--jdmf-focus))!important}

/* Optional external integration actions: never affect forms without extra buttons. */
.jdmf-form .jdmf-nav:has(.jdmf-donation-action) .jdmf-donation-action{flex:1 1 150px;min-width:0}
.jdmf-form .jdmf-nav:has(.jdmf-donation-action) .jdmf-submit{flex:1 1 150px;min-width:0}
@media(max-width:480px){.jdmf-form .jdmf-nav:has(.jdmf-donation-action) .jdmf-donation-action,
.jdmf-form .jdmf-nav:has(.jdmf-donation-action) .jdmf-submit{flex:1 1 100%;width:100%}}
