.sd-forms { width:100%; max-width:40rem; min-width:0; container:sd-forms / inline-size; display:grid; grid-template-columns:minmax(0,1fr); gap:1.05rem; color:#0e363c; }
.sd-forms *, .sd-forms *::before, .sd-forms *::after { box-sizing:border-box; }
.sd-forms .sd-forms-course-context { margin:0; padding:.75rem 1rem; border-radius:.75rem; background:#e9f7f3; font-weight:600; }
.sd-forms .sd-forms-intro { margin:0; }
.sd-forms .sd-forms-field { display:grid; gap:.35rem; min-width:0; margin:0; }
.sd-forms .sd-forms-field label, .sd-forms .sd-forms-field legend { font-weight:600; font-size:inherit; }
.sd-forms .sd-forms-field input:not([type="radio"]):not([type="checkbox"]), .sd-forms .sd-forms-field select, .sd-forms .sd-forms-field textarea { display:block; width:100%; max-width:100%; min-width:0; min-height:44px; padding:.55rem .8rem; border:1px solid #cadcda; border-radius:.55rem; background:#fff; color:#0e363c; font:inherit; line-height:1.45; }
.sd-forms .sd-forms-field textarea { resize:vertical; min-height:6rem; }
.sd-forms .sd-forms-field input:focus-visible, .sd-forms .sd-forms-field select:focus-visible, .sd-forms .sd-forms-field textarea:focus-visible, .sd-forms .sd-forms-submit:focus-visible { outline:3px solid #0e8068; outline-offset:2px; }
.sd-forms .sd-forms-field [aria-invalid="true"] { border-color:#a82525; }
.sd-forms .sd-forms-field-error { margin:0; color:#a82525; font-size:.9em; }
.sd-forms .sd-forms-help { margin:0; color:#526b70; font-size:.88em; }
.sd-forms .sd-forms-optional { font-weight:400; font-size:.88em; }
.sd-forms .sd-forms-choice { padding:0; border:0; min-width:0; }
.sd-forms .sd-forms-choice legend { padding:0; margin:0 0 .5rem; }
.sd-forms .sd-forms-options { display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; }
.sd-forms .sd-forms-option { display:inline-flex; align-items:center; min-height:32px; max-width:100%; min-width:0; gap:.4rem; cursor:pointer; font-weight:400!important; }
.sd-forms .sd-forms-option input { width:auto; flex-shrink:0; margin:0; accent-color:#0e8068; }
.sd-forms .sd-forms-option span { min-width:0; overflow-wrap:anywhere; }
.sd-forms .cf-turnstile { min-width:0; max-width:100%; }
.sd-forms .sd-forms-fixed { margin:0; padding:.6rem .8rem; background:#f3f8f7; border-radius:.5rem; }
.sd-forms .sd-forms-submit { display:block; width:100%; min-height:44px; padding:.75rem 1.25rem; border:0; border-radius:.75rem; background:#0e8068; color:#fff; font:inherit; font-weight:700; text-align:center; cursor:pointer; transition:background-color .15s ease; }
.sd-forms .sd-forms-submit:hover { background:#0b6654; }
.sd-forms-notice { max-width:40rem; padding:.75rem 1rem; margin:0 0 1rem; border-left:4px solid; }
.sd-forms-success { background:#e9f7ef; border-color:#267442; }
.sd-forms-error { background:#fff1f0; border-color:#a82525; }
.sd-forms .sd-forms-trap { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
.sd-forms-contact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sd-forms-contact > * { grid-column:1 / -1; }
.sd-forms-contact > .sd-forms-field--half { grid-column:auto; }
@media(max-width:38rem) {
	.sd-forms-contact { grid-template-columns:minmax(0,1fr); }
	.sd-forms .sd-forms-course-context { font-size:.95rem; line-height:1.45; overflow-wrap:anywhere; }
	.sd-forms .sd-forms-options { gap:.6rem 1rem; }
	.sd-forms .sd-forms-option { min-height:44px; }
	.sd-forms .sd-forms-field input:not([type="radio"]):not([type="checkbox"]), .sd-forms .sd-forms-field select, .sd-forms .sd-forms-field textarea { font-size:max(1rem,16px); }
}
/* Use the actual form width: theme card padding can leave less than 300px.
 * Zoom preserves the widget contents and reserves its scaled layout height. */
@container sd-forms (max-width:299px) {
	.sd-forms .cf-turnstile { zoom:.8; }
}
@container sd-forms (max-width:239px) {
	.sd-forms .cf-turnstile { zoom:.6666666; }
}
