.swsm-reg{--c-deep:#0A2A40;--c-accent:#2FAAE1;--c-accent2:#5FC4F0;--c-text:#F1F6F9;--c-muted:#9DB4C2;--c-line:rgba(255,255,255,0.14);font-family:"Barlow",system-ui,sans-serif;color:var(--c-text);max-width:100%}
.swsm-reg *,.swsm-reg *::before,.swsm-reg *::after{box-sizing:border-box}
.swsm-reg__closed{margin:0 0 20px;padding:14px 18px;border:1px solid rgba(255,190,90,.5);border-radius:10px;background:rgba(255,190,90,.08);color:#FFD9A0;font-size:14px}
.swsm-reg__block{margin:0 0 22px;padding:22px;border:1px solid var(--c-line);border-radius:14px;background:rgba(255,255,255,0.03)}
.swsm-reg__legend{display:flex;align-items:center;gap:10px;margin:0 0 6px;padding:0;font-family:"Zilla Slab",Georgia,serif;font-size:19px;font-weight:700;color:var(--c-text)}
.swsm-reg__step{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--c-accent);color:#04202F;font-family:"Barlow",sans-serif;font-size:13px;font-weight:700}
.swsm-reg__hint,.swsm-reg__note{margin:6px 0 14px;font-size:13px;line-height:1.6;color:var(--c-muted)}
.swsm-reg__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.swsm-reg__field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}
.swsm-reg__field label,.swsm-reg__grouplabel{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--c-muted);font-weight:600}
.swsm-reg__req{color:var(--c-accent2)}
.swsm-reg__opt{text-transform:none;letter-spacing:0;font-weight:400;opacity:.8}
.swsm-reg input[type=text],.swsm-reg input[type=email],.swsm-reg input[type=tel],.swsm-reg select,.swsm-reg textarea{width:100%;padding:11px 13px;border:1px solid var(--c-line);border-radius:8px;background:var(--c-deep);color:var(--c-text);font:inherit;font-size:16px;line-height:1.4}
.swsm-reg textarea{resize:vertical}
.swsm-reg input:focus,.swsm-reg select:focus,.swsm-reg textarea:focus{outline:2px solid var(--c-accent2);outline-offset:1px;border-color:var(--c-accent)}
.swsm-reg select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239DB4C2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}
.swsm-reg__group{margin-bottom:16px}
.swsm-reg__group .swsm-reg__grouplabel{display:block;margin-bottom:8px}
.swsm-reg__pill{display:inline-flex;align-items:center;gap:8px;margin:0 8px 8px 0;padding:9px 16px;border:1px solid var(--c-line);border-radius:999px;background:rgba(255,255,255,0.02);color:var(--c-muted);font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.swsm-reg__pill:hover{color:var(--c-text);border-color:rgba(47,170,225,.45)}
.swsm-reg__pill input{appearance:none;-webkit-appearance:none;width:13px;height:13px;min-width:13px;margin:0;border:1.5px solid currentColor;border-radius:50%;background:transparent}
.swsm-reg__pill input:checked{background:radial-gradient(circle,currentColor 0 46%,transparent 47%)}
.swsm-reg__pill:focus-within{outline:2px solid var(--c-accent2);outline-offset:2px}
.swsm-reg__pill.is-checked{background:var(--c-accent);border-color:var(--c-accent);color:#04202F}
.swsm-reg__group.is-muted{opacity:.45}
.swsm-reg__summary{margin:0 0 22px;padding:22px;border:1px solid rgba(47,170,225,.4);border-radius:14px;background:linear-gradient(180deg,rgba(47,170,225,.08),rgba(47,170,225,0) 70%),rgba(255,255,255,.03)}
.swsm-reg__summarygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px;margin:14px 0 0}
.swsm-reg__summarygrid dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);font-weight:600}
.swsm-reg__summarygrid dd{margin:4px 0 0;font-size:15px;color:var(--c-text)}
.swsm-reg__fee{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 18px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--c-line)}
.swsm-reg__feelabel{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);font-weight:600}
.swsm-reg__amount{font-family:"Zilla Slab",Georgia,serif;font-size:36px;line-height:1;font-weight:700;color:var(--c-accent2);font-variant-numeric:tabular-nums}
.swsm-reg__amount .woocommerce-Price-amount{color:inherit}
.swsm-reg__consent{margin-top:6px;font-size:14px;line-height:1.6;color:var(--c-muted)}
.swsm-reg__consent label{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--c-muted)}
.swsm-reg__consent input{margin-top:3px;width:16px;height:16px;min-width:16px}
.swsm-reg__error{display:none;font-size:13px;color:#FF9C8A;text-transform:none;letter-spacing:0;font-weight:400}
.swsm-reg__error.is-shown{display:block}
.swsm-reg__error--block{margin:14px 0 0}
.swsm-reg__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin:0}
.swsm-reg__submit{padding:15px 32px;border:0;border-radius:999px;background:var(--c-accent);color:#04202F;font:inherit;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color .2s,transform .2s}
.swsm-reg__submit:hover:not(:disabled){background:var(--c-accent2);transform:translateY(-2px)}
.swsm-reg__submit:focus-visible{outline:2px solid #fff;outline-offset:3px}
.swsm-reg__submit:disabled{opacity:.5;cursor:not-allowed}
.swsm-reg__status{font-size:14px;color:var(--c-muted)}
@media (max-width:767px){.swsm-reg__grid{grid-template-columns:1fr}.swsm-reg__summarygrid{grid-template-columns:1fr}.swsm-reg__block,.swsm-reg__summary{padding:18px 16px}.swsm-reg__amount{font-size:30px}.swsm-reg__submit{width:100%;text-align:center}}
@media (prefers-reduced-motion:reduce){.swsm-reg *{transition:none !important}.swsm-reg__submit:hover{transform:none}}

.swsm-expired-banner{max-width:1240px;margin:20px auto 0;padding:16px 20px;border:1px solid rgba(255,190,90,0.5);border-radius:12px;background:rgba(255,190,90,0.1);color:#FFD9A0;font-family:Barlow,system-ui,sans-serif}
.swsm-expired-banner p{margin:0;font-size:15px;line-height:1.6}

/* swsm-reg-v2: periods, membership number, student proof */
.swsm-reg__periods{margin:0 0 22px}
.swsm-reg__periodstitle{margin:0 0 10px;font-family:"Zilla Slab",Georgia,serif;font-size:19px;font-weight:700;color:var(--c-text)}
.swsm-reg__member,.swsm-reg__proof{margin-top:6px}
.swsm-reg__member.is-muted{opacity:1}
.swsm-reg__help{margin:0;font-size:13px;line-height:1.6;color:var(--c-muted);text-transform:none;letter-spacing:0}
.swsm-reg__help a{color:var(--c-accent2);text-decoration:underline;text-underline-offset:2px}
.swsm-reg__memberstate{margin:0;font-size:13px;line-height:1.5;color:var(--c-muted);min-height:0}
.swsm-reg__memberstate:empty{display:none}
.swsm-reg__memberstate.is-verified{color:#7FE0A8}
.swsm-reg__memberstate.is-invalid,.swsm-reg__memberstate.is-not_found{color:#FFD9A0}
.swsm-reg input[type=file]{width:100%;padding:10px;border:1px dashed rgba(47,170,225,.5);border-radius:8px;background:var(--c-deep);color:var(--c-text);font:inherit;font-size:14px}
.swsm-reg input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;border:0;border-radius:999px;background:var(--c-accent);color:#04202F;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.swsm-reg input[type=file]:focus{outline:2px solid var(--c-accent2);outline-offset:1px}

/* swsm-reg-v3: invoice + policy note */
.swsm-reg__invoice{margin-top:8px}
.swsm-reg__policy{margin:0 0 18px;font-size:14px;line-height:1.6;color:var(--c-muted)}
.swsm-reg__policy a{color:var(--c-accent2);text-decoration:underline;text-underline-offset:2px}
