.sem-enrolment-wrap,
.sem-enrolment-wrap *{box-sizing:border-box;font-family:"Montserrat",Arial,sans-serif}
.sem-enrolment-wrap{--sem-navy:#102747;--sem-green:#1aa28f;--sem-green-dark:#168a79;--sem-mint:#edf8f4;--sem-line:#dce8e3;--sem-text:#34404a;max-width:980px;margin:0 auto;padding:24px;color:var(--sem-text)}
.sem-enrolment-intro{text-align:center;margin-bottom:28px}
.sem-enrolment-intro span{display:block;color:var(--sem-green);font-size:13px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}
.sem-enrolment-intro h2{margin:8px 0 10px;color:var(--sem-navy);font-size:clamp(32px,4vw,46px);line-height:1.1}
.sem-enrolment-intro p{margin:0;font-size:15px;line-height:1.55}
.sem-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 24px;padding:0;list-style:none}
.sem-stepper li{display:flex;flex-direction:column;align-items:center;gap:7px;color:#7d888f;font-size:12px;font-weight:700;text-align:center}
.sem-stepper li span{display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--sem-line);border-radius:50%;background:#fff}
.sem-stepper li.is-active{color:var(--sem-green-dark)}
.sem-stepper li.is-active span{border-color:var(--sem-green);background:var(--sem-mint)}
.sem-enrolment-form{padding:34px;border:1px solid var(--sem-line);border-radius:24px;background:#fff;box-shadow:0 14px 36px rgba(16,39,71,.08)}
.sem-step{display:block;margin:0;padding:0;border:0}
.sem-js .sem-step{display:none}
.sem-js .sem-step.is-active{display:block}
.sem-step legend{width:100%;margin:0 0 24px;padding:0;color:var(--sem-navy);font-size:24px!important;line-height:1.25!important;font-weight:700}
.sem-step h3{margin:24px 0 14px;color:var(--sem-navy);font-size:18px!important;line-height:1.3!important}
.sem-grid{display:grid;gap:20px}
.sem-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sem-span-2{grid-column:1/-1}
.sem-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.sem-field label,.sem-label{color:var(--sem-navy);font-size:14px;font-weight:700}
.sem-field input[type=text],.sem-field input[type=email],.sem-field input[type=tel],.sem-field input[type=date],.sem-field input[type=url],.sem-field input[type=number],.sem-field select,.sem-field textarea,.sem-enrolment-form textarea{width:100%;border:1px solid #cbdad4;border-radius:10px;background:#fff;padding:13px 14px;color:#26323c;font-size:16px;line-height:1.35;outline:none;transition:border-color .2s,box-shadow .2s}
.sem-field input:focus,.sem-field select:focus,.sem-field textarea:focus,.sem-enrolment-form textarea:focus{border-color:var(--sem-green);box-shadow:0 0 0 3px rgba(11,147,124,.14)}
.sem-field small{color:#68737b;font-size:13px;line-height:1.45}
.sem-check-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.sem-check-grid label,.sem-radio-group label,.sem-consent{display:flex;align-items:flex-start;gap:9px}
.sem-check-grid label{padding:12px;border:1px solid var(--sem-line);border-radius:10px;background:#fafcfb}
.sem-field--checks{margin-top:4px}
.sem-permission{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--sem-line)}
.sem-enrolment-wrap .sem-enrolment-form .sem-permission h3{margin:0 0 6px!important;color:var(--sem-navy)!important;font-size:18px!important;line-height:1.3!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important}
.sem-enrolment-wrap .sem-enrolment-form .sem-permission p{margin:0!important;font-size:15px!important;line-height:1.55!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important}
.sem-radio-group{display:flex;gap:18px}
.sem-security-note,.sem-review-box{padding:18px 20px;border-radius:12px;background:var(--sem-mint);color:#285c51}
.sem-review-box h3{margin:0 0 8px}
.sem-review-box p{margin:0}
.sem-consent{margin:18px 0;font-size:14px;line-height:1.55}
.sem-consent input{margin-top:4px}
.sem-consent a{color:var(--sem-green-dark);font-weight:700}
.sem-form-actions{display:flex;justify-content:space-between;gap:14px;margin-top:30px;padding-top:24px;border-top:1px solid var(--sem-line)}
.sem-btn{min-width:150px;border:0;border-radius:10px;padding:14px 22px;font-size:14px;font-weight:700;cursor:pointer}
.sem-btn--primary{margin-left:auto;background:var(--sem-green);color:#fff}
.sem-btn--primary:hover{background:var(--sem-green-dark)}
.sem-btn--secondary{background:#eef3f1;color:var(--sem-navy)}
.sem-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.sem-form-message{max-width:980px;margin:20px auto;padding:22px 24px;border-radius:14px;font-family:"Montserrat",Arial,sans-serif}
.sem-form-message h2{margin:0 0 8px}
.sem-form-message p:last-child,.sem-form-message ul:last-child{margin-bottom:0}
.sem-form-message--success{border:1px solid #bfe6d9;background:#edf9f5;color:#175f50}
.sem-form-message--error{border:1px solid #efc3c3;background:#fff1f1;color:#7a2020}

/* Keep plugin typography independent from Elementor/theme global heading rules. */
.sem-enrolment-wrap .sem-enrolment-form{font-size:15px;line-height:1.5}
.sem-enrolment-wrap .sem-enrolment-form h2,
.sem-enrolment-wrap .sem-enrolment-form h3,
.sem-enrolment-wrap .sem-enrolment-form p,
.sem-enrolment-wrap .sem-enrolment-form label,
.sem-enrolment-wrap .sem-enrolment-form legend{font-family:"Montserrat",Arial,sans-serif}

@media(max-width:767px){.sem-enrolment-wrap{padding:12px}.sem-stepper li{font-size:0}.sem-stepper li span{font-size:12px}.sem-enrolment-form{padding:24px 18px;border-radius:18px}.sem-grid--2{grid-template-columns:1fr}.sem-span-2{grid-column:auto}.sem-check-grid{grid-template-columns:1fr 1fr}.sem-permission{grid-template-columns:1fr}.sem-form-actions{flex-wrap:wrap}.sem-btn{width:100%;margin-left:0}.sem-step legend{font-size:22px!important}.sem-enrolment-wrap .sem-enrolment-form .sem-permission h3{font-size:17px!important}.sem-enrolment-wrap .sem-enrolment-form .sem-permission p{font-size:14px!important}}

/* Contact form */
.sem-contact-wrap,
.sem-contact-wrap *{box-sizing:border-box;font-family:"Montserrat",Arial,sans-serif}
.sem-contact-wrap{--sem-navy:#102747;--sem-green:#1aa28f;--sem-green-dark:#168a79;--sem-mint:#edf8f4;--sem-line:#dce8e3;--sem-text:#34404a;max-width:820px;margin:0 auto;padding:24px;color:var(--sem-text)}
.sem-contact-intro{text-align:center;margin-bottom:28px}
.sem-contact-intro span{display:block;color:var(--sem-green);font-size:13px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase}
.sem-contact-intro h2{margin:8px 0 10px!important;color:var(--sem-navy)!important;font-size:clamp(32px,4vw,44px)!important;line-height:1.1!important;font-weight:700!important}
.sem-contact-intro p{margin:0!important;font-size:15px!important;line-height:1.55!important}
.sem-contact-form{position:relative;padding:34px;border:1px solid var(--sem-line);border-radius:24px;background:#fff;box-shadow:0 14px 36px rgba(16,39,71,.08);font-size:15px;line-height:1.5}
.sem-contact-form .sem-field{margin-bottom:0}
.sem-contact-form textarea{min-height:150px;resize:vertical}
.sem-contact-consent{margin:22px 0 0}
.sem-contact-actions{display:flex;justify-content:flex-end;margin-top:24px;padding-top:22px;border-top:1px solid var(--sem-line)}
.sem-contact-actions .sem-btn{margin-left:0;background:#1aa28f!important;border-color:#1aa28f!important;color:#fff!important}
.sem-contact-actions .sem-btn:hover{background:#168a79!important;border-color:#168a79!important;color:#fff!important}
.sem-contact-message{max-width:820px}

@media(max-width:767px){.sem-contact-wrap{padding:12px}.sem-contact-form{padding:24px 18px;border-radius:18px}.sem-contact-actions .sem-btn{width:100%}}

