:root{--wine:#ae123d;--wine-dark:#8e0d31;--navy:#14233e;--muted:#6f7b8f;--line:#dfe4ec;--soft:#f4f6f9;--white:#fff}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;min-height:100svh;background:radial-gradient(circle at 8% 8%,#d12b56 0,transparent 31%),linear-gradient(145deg,#9e0c35 0,#750827 42%,#13223d 42%,#09152b 100%);font-family:Manrope,system-ui,sans-serif;color:var(--navy)}
.registration-shell{width:min(1040px,calc(100% - 32px));min-height:100vh;min-height:100svh;margin:auto;padding:48px 0;display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:56px}
.registration-intro{color:#fff}
.registration-intro img{width:72px;height:72px;object-fit:cover;border:3px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 12px 32px #41001666}
.registration-intro>span,.eyebrow{display:block;margin-top:24px;color:#ffd3de;font-size:.72rem;font-weight:800;letter-spacing:.2em}
.registration-intro h1{margin:12px 0 16px;font-size:clamp(2.3rem,5vw,4.3rem);line-height:1.02;letter-spacing:-.045em}
.registration-intro p{max-width:510px;margin:0;color:#e8edf6;font-size:1rem;line-height:1.7}
.venue-notes{display:grid;gap:8px;margin-top:28px;font-size:.78rem;font-weight:700;color:#fff}
.registration-card{padding:34px;border-radius:24px;background:rgba(255,255,255,.98);box-shadow:0 30px 70px #06102466}
.registration-card .eyebrow{margin:0;color:var(--wine)}
.registration-card h2{margin:8px 0 6px;font-size:1.65rem}
.lead{margin:0 0 25px;color:var(--muted);font-size:.84rem;line-height:1.55}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label,legend{font-size:.72rem;font-weight:800}
label.full,fieldset.full,.form-message,form>button,.privacy-note{grid-column:1/-1}
input,select{width:100%;min-height:46px;margin-top:7px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px 14px;color:var(--navy);font:600 .86rem Manrope;outline:none}
input:focus,select:focus{border-color:var(--wine);box-shadow:0 0 0 3px #ae123d14}
fieldset{margin:0;padding:0;border:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
fieldset legend{margin-bottom:7px}
.venue-option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}
.venue-option:has(input:checked){border-color:var(--wine);background:#fff5f7}
.venue-option input{width:22px;min-width:22px;height:22px;min-height:22px;margin:0;accent-color:var(--wine)}
.venue-option b,.venue-option small{display:block}
.venue-option small{margin-top:2px;color:var(--muted);font-weight:600}
.website-field{position:absolute;left:-9999px}
form>button,.registration-success button{min-height:50px;border:0;border-radius:12px;background:var(--wine);color:#fff;padding:14px 18px;font:800 .85rem Manrope;cursor:pointer;box-shadow:0 9px 20px #ae123d2e}
form>button:hover,.registration-success button:hover{background:var(--wine-dark)}
form>button:disabled{opacity:.65;cursor:wait}
.privacy-note{text-align:center;color:var(--muted);font-size:.65rem;font-weight:600;line-height:1.55}
.form-message{margin:0;border-radius:9px;background:#fff0f3;color:#941235;padding:10px 12px;font-size:.72rem}
.training-date-field{border:1px solid #d9e1ec;border-radius:14px;background:#f7f9fc;padding:14px}.training-date-field select{background:#fff}.training-date-field>small{display:block;margin-top:8px;color:var(--wine);font-size:.7rem;line-height:1.45}.training-confirmation-note{margin:0;border-left:3px solid var(--wine);border-radius:0 9px 9px 0;background:#fff5f7;padding:10px 12px;color:#6f5360;font-size:.69rem;line-height:1.5}
.registration-success{text-align:center;padding:46px 12px}
.registration-success>span{width:58px;height:58px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#e7f7ef;color:#087957;font-size:1.6rem;font-weight:800}
.registration-success h2{margin-top:18px}
.registration-success p{max-width:430px;margin:8px auto 24px;color:var(--muted);font-size:.85rem;line-height:1.65}

/* A compact, one-column layout also catches iPhones using Safari's desktop-site mode. */
@media(max-width:1100px){
  body{background:radial-gradient(circle at 8% 3%,#d12b56 0,transparent 32%),linear-gradient(160deg,#9e0c35 0,#750827 34%,#13223d 34%,#09152b 100%)}
  .registration-shell{width:min(calc(100% - 32px),820px);min-height:100vh;min-height:100svh;padding:clamp(24px,5vw,48px) 0;display:grid;grid-template-columns:1fr;align-content:start;align-items:stretch;gap:24px}
  .registration-intro{padding:0 4px}
  .registration-intro img{width:60px;height:60px}
  .registration-intro>span{margin-top:16px}
  .registration-intro h1{max-width:720px;margin:10px 0 12px;font-size:clamp(2.2rem,5.2vw,3.5rem);line-height:1.04}
  .registration-intro p{max-width:700px;font-size:.96rem;line-height:1.6}
  .venue-notes{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;font-size:.78rem}
  .registration-card{width:100%;padding:clamp(24px,4vw,34px);border-radius:22px}
  .registration-card h2{font-size:1.55rem}
  .lead{margin-bottom:22px}
}

@media(max-width:640px){
  body{background:radial-gradient(circle at 8% 2%,#d12b56 0,transparent 34%),linear-gradient(160deg,#9e0c35 0,#750827 34%,#13223d 34%,#09152b 100%)}
  .registration-shell{width:calc(100% - 24px);padding:max(20px,env(safe-area-inset-top)) 0 max(24px,env(safe-area-inset-bottom));gap:20px}
  .registration-intro{padding:0 2px}
  .registration-intro img{width:54px;height:54px}
  .registration-intro>span{margin-top:13px;font-size:.66rem}
  .registration-intro h1{max-width:500px;margin:8px 0 10px;font-size:clamp(2rem,9vw,2.7rem);line-height:1.03}
  .registration-intro p{font-size:.9rem;line-height:1.55}
  .venue-notes{display:grid;gap:6px;margin-top:12px;font-size:.74rem}
  .registration-card{padding:22px 16px;border-radius:20px}
  .registration-card .eyebrow{font-size:.66rem}
  .registration-card h2{font-size:1.45rem}
  .lead{margin-bottom:20px;font-size:.82rem}
  form{grid-template-columns:1fr;gap:15px}
  label.full,fieldset.full,.form-message,form>button,.privacy-note{grid-column:1}
  label,legend{font-size:.75rem}
  input,select{min-height:48px;font-size:16px;padding:12px}
  fieldset{grid-template-columns:1fr 1fr;gap:8px}
  .venue-option{min-height:58px;gap:8px;padding:10px}
  .venue-option span{font-size:.71rem}
  .venue-option small{font-size:.65rem}
  form>button,.registration-success button{min-height:52px;font-size:.9rem}
  .privacy-note{font-size:.68rem}
  .registration-success{padding:34px 4px}
}

@media(max-width:370px){
  .registration-card{padding:20px 14px}
  fieldset{grid-template-columns:1fr}
  .venue-option{min-height:54px}
}
