.bmx-registration-form{
    --bmx-primary:#174c47;
    --bmx-primary-deep:#0d3532;
    --bmx-accent:#b58b45;
    --bmx-accent-soft:#f4ead7;
    --bmx-ivory:#fbfaf6;
    --bmx-surface:#ffffff;
    --bmx-text:#24302f;
    --bmx-muted:#667270;
    --bmx-border:#dce4e1;
    --bmx-danger:#a63f48;
    max-width:1040px;
    margin:28px auto;
    padding:clamp(14px,2.2vw,28px);
    color:var(--bmx-text);
    font-family:inherit;
    background:linear-gradient(180deg,#ffffff 0%,var(--bmx-ivory) 100%);
    border:1px solid rgba(23,76,71,.12);
    border-radius:28px;
    box-shadow:0 24px 70px rgba(17,48,45,.11);
}
.bmx-registration-form *{box-sizing:border-box}
.bmx-form-header{
    position:relative;
    overflow:hidden;
    margin:-1px -1px 28px;
    padding:clamp(26px,5vw,48px);
    color:#fff;
    background:
        radial-gradient(circle at 88% 15%,rgba(181,139,69,.34),transparent 33%),
        linear-gradient(135deg,var(--bmx-primary-deep),var(--bmx-primary));
    border-radius:22px;
    box-shadow:0 16px 34px rgba(13,53,50,.22);
}
.bmx-form-header:after{
    content:"";
    position:absolute;
    right:-80px;
    bottom:-115px;
    width:280px;
    height:280px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:50%;
    box-shadow:0 0 0 28px rgba(255,255,255,.045),0 0 0 58px rgba(255,255,255,.025);
}
.bmx-form-header h2{
    position:relative;
    z-index:1;
    margin:0 0 10px;
    color:#fff;
    font-size:clamp(30px,4.5vw,46px);
    line-height:1.08;
    letter-spacing:-.025em;
}
.bmx-form-header p{
    position:relative;
    z-index:1;
    max-width:100%;
    margin:0;
    color:rgba(255,255,255,.88);
    font-size:16px;
    line-height:1.7;
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
}
.bmx-additional-heading{
    margin:30px 4px 16px;
    padding-left:16px;
    border-left:4px solid var(--bmx-accent);
}
.bmx-additional-heading h3{margin:0 0 5px;color:var(--bmx-primary-deep);font-size:23px}
.bmx-additional-heading p{margin:0;color:var(--bmx-muted)}
.bmx-participant{
    position:relative;
    margin:0 0 20px;
    padding:clamp(20px,3vw,30px);
    background:var(--bmx-surface);
    border:1px solid var(--bmx-border);
    border-radius:18px;
    box-shadow:0 10px 28px rgba(19,58,55,.065);
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.bmx-participant:hover{border-color:rgba(23,76,71,.28);box-shadow:0 14px 34px rgba(19,58,55,.09)}
.bmx-payer-section{border-top:4px solid var(--bmx-accent)}
.bmx-participant-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:20px;
}
.bmx-participant-heading h3{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:0;
    color:var(--bmx-primary-deep);
    font-size:20px;
}
.bmx-payer-badge{
    display:inline-flex;
    align-items:center;
    padding:6px 11px;
    color:var(--bmx-primary-deep);
    font-size:11px;
    font-weight:750;
    letter-spacing:.04em;
    text-transform:uppercase;
    background:var(--bmx-accent-soft);
    border:1px solid rgba(181,139,69,.35);
    border-radius:999px;
}
.bmx-remove{
    display:grid;
    width:38px;
    height:38px;
    place-items:center;
    padding:0;
    color:var(--bmx-danger);
    font-size:26px;
    line-height:1;
    background:#fff7f7;
    border:1px solid #efd7da;
    border-radius:50%;
    cursor:pointer;
    transition:transform .18s ease,background .18s ease;
}
.bmx-remove:hover{transform:rotate(5deg) scale(1.05);background:#fcebed}
.bmx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.bmx-grid .form-row,.bmx-additional-participant .form-row{margin:0}
.bmx-grid label,.bmx-additional-participant label,.bmx-lodging-other-wrap label{
    display:block;
    margin:0 0 7px;
    color:var(--bmx-primary-deep);
    font-size:14px;
    font-weight:700;
}
.bmx-registration-form input[type="text"],
.bmx-registration-form input[type="email"],
.bmx-registration-form input[type="tel"],
.bmx-registration-form input[type="number"],
.bmx-registration-form select{
    width:100%;
    min-height:48px;
    padding:10px 13px;
    color:var(--bmx-text);
    font-size:15px;
    background:#fff;
    border:1px solid #cfdad7;
    border-radius:10px;
    outline:0;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.bmx-registration-form input[type="text"]:focus,
.bmx-registration-form input[type="email"]:focus,
.bmx-registration-form input[type="tel"]:focus,
.bmx-registration-form input[type="number"]:focus,
.bmx-registration-form select:focus{
    border-color:var(--bmx-primary);
    box-shadow:0 0 0 4px rgba(23,76,71,.12);
    background:#fff;
}
.bmx-span-2{grid-column:span 2}
.bmx-actions{margin:0 0 30px;text-align:center}
.bmx-registration-form #bmx-add-participant{
    min-height:46px;
    padding:10px 19px;
    color:var(--bmx-primary);
    font-weight:750;
    background:#fff;
    border:1px solid rgba(23,76,71,.32);
    border-radius:999px;
    box-shadow:0 7px 18px rgba(23,76,71,.08);
}
.bmx-registration-form #bmx-add-participant:hover{color:#fff;background:var(--bmx-primary);border-color:var(--bmx-primary)}
.bmx-registration-form #bmx-add-participant:disabled{opacity:.48;cursor:not-allowed}
.bmx-summary{
    margin:28px 0 22px;
    padding:clamp(20px,3vw,28px);
    color:#fff;
    background:linear-gradient(135deg,var(--bmx-primary-deep),#245e58);
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    box-shadow:0 16px 34px rgba(13,53,50,.17);
}
.bmx-summary h3{margin:0 0 8px;color:#fff;font-size:22px}
.bmx-summary-row,.bmx-total-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:13px 0;
    border-bottom:1px solid rgba(255,255,255,.13);
}
.bmx-summary-row small{display:block;margin-top:3px;color:rgba(255,255,255,.68);font-size:12px}
.bmx-summary-row strong{white-space:nowrap}
.bmx-total-row{align-items:center;padding-bottom:0;border-bottom:0;font-size:19px}
.bmx-choice-section{
    min-width:0;
    margin:0 0 22px;
    padding:clamp(20px,3vw,28px);
    background:#fff;
    border:1px solid var(--bmx-border);
    border-radius:18px;
    box-shadow:0 10px 28px rgba(19,58,55,.055);
}
.bmx-choice-section legend{
    padding:0 10px;
    color:var(--bmx-primary-deep);
    font-size:21px;
    font-weight:800;
}
.bmx-section-intro{margin:0 0 17px;color:var(--bmx-muted);line-height:1.6}
.bmx-payment-options-grid,.bmx-lodging-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.bmx-payment-option,.bmx-lodging-option{
    position:relative;
    display:flex;
    align-items:flex-start;
    gap:12px;
    min-height:92px;
    margin:0;
    padding:16px;
    color:var(--bmx-text);
    background:var(--bmx-ivory);
    border:1px solid var(--bmx-border);
    border-radius:14px;
    cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.bmx-payment-option:hover,.bmx-lodging-option:hover{
    transform:translateY(-1px);
    border-color:rgba(23,76,71,.36);
    box-shadow:0 9px 20px rgba(23,76,71,.08);
}
.bmx-payment-option:has(input:checked),.bmx-lodging-option:has(input:checked){
    background:linear-gradient(180deg,#fff,var(--bmx-accent-soft));
    border-color:var(--bmx-accent);
    box-shadow:0 0 0 3px rgba(181,139,69,.14);
}
.bmx-payment-option input,.bmx-lodging-option input{
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin:3px 0 0;
    accent-color:var(--bmx-primary);
}
.bmx-choice-content{display:block;line-height:1.35}
.bmx-choice-content strong{display:block;color:var(--bmx-primary-deep);font-size:15px}
.bmx-choice-content small{display:block;margin-top:5px;color:var(--bmx-muted);font-size:12px;line-height:1.45}
.bmx-payment-preview{
    margin-top:16px;
    padding:15px 17px;
    color:var(--bmx-primary-deep);
    line-height:1.55;
    background:rgba(23,76,71,.07);
    border-left:4px solid var(--bmx-primary);
    border-radius:8px;
}
.bmx-lodging-other-wrap{
    display:none;
    margin-top:15px;
    padding:16px;
    background:var(--bmx-accent-soft);
    border:1px solid rgba(181,139,69,.34);
    border-radius:12px;
}
.bmx-lodging-other-wrap.is-visible{display:block;animation:bmxReveal .2s ease-out}
@keyframes bmxReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.bmx-consent{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:20px 2px;
    padding:14px 16px;
    color:var(--bmx-text);
    line-height:1.5;
    background:#fff;
    border:1px solid var(--bmx-border);
    border-radius:12px;
}
.bmx-consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--bmx-primary)}
.bmx-registration-form .bmx-submit{
    width:100%;
    min-height:56px;
    padding:13px 22px;
    color:#fff!important;
    font-size:17px!important;
    font-weight:800!important;
    letter-spacing:.01em;
    background:linear-gradient(135deg,var(--bmx-primary),var(--bmx-primary-deep))!important;
    border:0!important;
    border-radius:13px!important;
    box-shadow:0 14px 28px rgba(13,53,50,.22);
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.bmx-registration-form .bmx-submit:hover{
    transform:translateY(-1px);
    filter:brightness(1.06);
    box-shadow:0 17px 32px rgba(13,53,50,.27);
}
.bmx-registration-form .bmx-submit:disabled{opacity:.65;cursor:wait;transform:none}
.bmx-registration-form .required{color:var(--bmx-danger)}
@media(max-width:760px){
    .bmx-registration-form{margin:14px auto;padding:10px;border-radius:20px}
    .bmx-form-header{padding:27px 21px;border-radius:16px}
    .bmx-participant,.bmx-choice-section,.bmx-summary{padding:18px;border-radius:15px}
    .bmx-grid,.bmx-payment-options-grid,.bmx-lodging-options{grid-template-columns:1fr}
    .bmx-span-2{grid-column:span 1}
    .bmx-summary-row{align-items:flex-start}
    .bmx-payment-option,.bmx-lodging-option{min-height:0}
}
@media(prefers-reduced-motion:reduce){
    .bmx-registration-form *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

.bmx-field-help{
    display:block;
    margin-top:7px;
    color:var(--bmx-muted);
    font-size:12px;
    line-height:1.45;
}
.bmx-age-profile-note:not(:empty){
    padding:8px 10px;
    color:var(--bmx-primary-deep);
    background:rgba(23,76,71,.07);
    border-left:3px solid var(--bmx-accent);
    border-radius:7px;
}
.bmx-registration-form select.bmx-auto-profile{
    border-color:var(--bmx-accent);
    background:linear-gradient(180deg,#fff,var(--bmx-accent-soft));
    box-shadow:0 0 0 3px rgba(181,139,69,.12);
}
