/* Registration is an independent, light interface with a focused form flow. */
.bond-registration {
  --orange: var(--gold-ink);
  --muted: #6d695e;
  --line: #e7e2d5;
  --reg-ink: #29271f;
  background: #fff;
  color: var(--reg-ink);
  color-scheme: light;
}
.bond-registration [hidden] { display: none !important; }
.bond-registration .site-header {
  height: 88px;
  padding-inline: max(28px, calc((100% - 1136px) / 2));
  background: #fff;
  border-color: var(--line);
}
.bond-registration .site-header .brand-word { font-size: 38px; }
.bond-registration .site-header .brand-sub { font-size: 8px; letter-spacing: 3.5px; }
.bond-registration .site-header nav { gap: 28px; font-size: 13px; }
.bond-registration .site-header nav .sub-menu { background: #fff; border: 1px solid var(--line); }
.bond-registration .menu-toggle > span { background: var(--reg-ink); }
.bond-registration .button {
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid var(--gold);
  border-radius: 6px;
  background: var(--gold);
  color: var(--reg-ink);
  font: 600 14px/1.5 var(--body);
  letter-spacing: 0;
  cursor: pointer;
}
.bond-registration .button:not(:disabled):not(.registration-cashapp-button):hover { background: var(--gold-hover) !important; transform: none; }
.bond-registration .button:disabled { cursor: wait; opacity: .65; }
.bond-registration .site-header .button { min-height: 42px; padding: 10px 16px; font-size: 11px; }
.bond-registration :is(a, button, summary):focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.registration-page { max-width: 1200px; margin: auto; padding: 48px 32px 88px; }
.registration-heading { margin-bottom: 38px; }
.bond-registration .registration-eyebrow { color: var(--orange); font: 600 12px/1.5 var(--body); letter-spacing: .09em; text-transform: uppercase; margin: 0 0 12px; }
.bond-registration .registration-heading h1 { font: 600 clamp(36px, 4vw, 50px)/1.1 var(--body); letter-spacing: -.045em; margin: 0 0 17px; }
.registration-heading > p:last-child { max-width: 540px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.7; }
.registration-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; align-items: start; }
.registration-form-column, .registration-sidebar { min-width: 0; }
.registration-form-column .bond-page-details { margin: 0; }
.registration-form-card { max-width: none !important; margin: 0 !important; border: 1px solid var(--line); border-radius: 12px; scroll-margin-top: 24px; background: #fff; overflow: hidden; }
.registration-form { padding: 0 32px 22px; }
.registration-progress { margin: 0 -32px 30px; padding: 22px 25px 20px; border-bottom: 1px solid var(--line); background: #fdfcf9; }
.registration-progress ol { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; }
.registration-progress li { min-width: 0; }
.registration-progress button { display: flex; align-items: center; gap: 7px; background: none; border: 0; padding: 5px 0; color: #777267; font: 500 11px/1.35 var(--body); cursor: pointer; text-align: left; }
.registration-progress button:disabled { cursor: default; }
.step-number { display: grid; place-items: center; width: 23px; height: 23px; flex-shrink: 0; border-radius: 50%; background: #efede6; color: #746e60; font-size: 11px; font-weight: 600; }
.registration-progress [aria-current=step] { color: var(--reg-ink); font-weight: 600; }
.registration-progress [aria-current=step] .step-number { background: var(--gold); color: var(--reg-ink); box-shadow: 0 0 0 4px var(--gold-soft); }
.registration-progress .is-complete { color: var(--orange); }
.registration-progress .is-complete .step-number { background: var(--gold-soft); color: var(--gold-ink); }
.registration-step { padding: 0; margin: 0; }
.registration-form:not(.is-guided) .registration-step { padding-top: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.registration-step-heading { margin: 0 0 26px; }
.bond-registration .registration-step-heading h2 { font: 600 27px/1.25 var(--body); letter-spacing: -.03em; margin: 0 0 10px; text-wrap: initial; }
.registration-step-heading h2:focus { outline: none; }
.registration-step-heading p { margin: 0; font-size: 13px; line-height: 1.7; color: var(--muted); }
.registration-step-heading .registration-step-count { color: var(--orange); font-size: 11px; line-height: 1.5; margin: 0 0 10px; letter-spacing: .035em; font-weight: 500; }
.registration-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px 20px; padding: 0; margin: 0; border: 0; min-width: 0; }
.registration-field, .registration-choice { min-width: 0; }
.registration-field-wide { grid-column: 1 / -1; }
.registration-field label, .registration-choice > legend { display: block; font: 500 13px/1.5 var(--body); color: var(--reg-ink); margin: 0 0 8px; padding: 0; }
.registration-optional { color: #797366; font-size: 11px; font-weight: 400; margin-left: 6px; }
.registration-fields :is(input:not([type=radio]), select, textarea) { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; min-height: 48px; margin: 0; padding: 11px 13px; color: var(--reg-ink); background: #fff; border: 1px solid #918b7d; border-radius: 6px; font: 400 16px/1.5 var(--body); color-scheme: light; transition: border-color .15s, box-shadow .15s; }
/* Keep the native date picker, but constrain its WebKit control and value. */
.registration-fields input[type=date] { -webkit-appearance: none; appearance: none; min-inline-size: 0; max-inline-size: 100%; }
.registration-fields input[type=date]::-webkit-date-and-time-value { min-width: 0; min-height: 1.5em; text-align: left; }
.registration-fields textarea { resize: vertical; min-height: 96px; }
.registration-fields :is(input, select, textarea):hover { border-color: #8a8066; }
.registration-fields :is(input, select, textarea):focus-visible { border-color: var(--orange); outline: 2px solid var(--orange); outline-offset: 2px; box-shadow: 0 0 0 5px #f8f1de; }
.registration-fields [aria-invalid=true] { border-color: #b04245 !important; }
.registration-choice { padding: 0; margin: 0; border: 0; }
.registration-radio-options { display: flex; gap: 20px; align-items: center; min-height: 48px; }
.registration-radio-options label { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; cursor: pointer; font-weight: 400; margin: 0; }
.registration-radio-options input { margin: 0; width: 17px; height: 17px; accent-color: var(--orange); }
.registration-field-error { font-size: 12px; line-height: 1.6; color: #a33136; margin: 8px 0 0; }
.registration-age { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 8px 0 0; }
.registration-fields > .registration-subheading { font: 600 14px/1.5 var(--body); margin: 0 0 18px; padding: 0; width: 100%; }
.registration-second-contact { border-block: 1px solid var(--line); margin: 26px 0; }
.registration-second-contact > summary { display: flex; gap: 10px; align-items: center; font-size: 13px; font-weight: 500; padding: 18px 0; cursor: pointer; list-style: none; }
.registration-second-contact > summary > span { font-size: 11px; color: var(--muted); font-weight: 400; }
.registration-second-contact > summary::after { content: '+'; margin-left: auto; font-size: 22px; font-weight: 400; color: var(--orange); }
.registration-second-contact[open] > summary::after { content: '−'; }
.registration-second-contact .registration-fields { margin-bottom: 24px; }
.registration-form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 18px; padding-top: 26px; margin-top: 28px; border-top: 1px solid var(--line); }
.registration-continue, .registration-send { min-width: 145px; }
.registration-back { margin-right: auto; border: 0; background: transparent; color: #58513f; min-height: 44px; padding: 10px 0; font-size: 14px; cursor: pointer; }
.registration-back:hover { color: var(--orange); }
.registration-errors { margin: 24px 0; padding: 18px; border: 1px solid #e3babb; border-radius: 6px; background: #fff7f6; color: #8c292c; }
.bond-registration .registration-errors h2 { font: 600 16px/1.5 var(--body); letter-spacing: 0; margin: 0; }
.registration-errors ul { font-size: 13px; line-height: 1.7; padding-left: 18px; margin-bottom: 0; }
.registration-review-group { padding: 0 0 22px; margin: 0 0 22px; border-bottom: 1px solid var(--line); }
.registration-review-group > div { display: flex; gap: 16px; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.registration-review-group h3 { font: 600 15px/1.5 var(--body); margin: 0; }
.registration-review-group button { background: none; border: 0; color: var(--orange); font-size: 12px; min-height: 36px; padding: 6px 0 6px 12px; cursor: pointer; }
.registration-review-group dl { margin: 0; }
.registration-review-group dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; font-size: 13px; line-height: 1.7; padding-block: 4px; }
.registration-review-group dt { color: var(--muted); }
.registration-review-group dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.registration-submit-note { font-size: 13px; line-height: 1.75; color: var(--muted); margin: 0; }
.registration-review-payment, .registration-cashapp-card { padding: 22px; border: 1px solid #dce6df; border-radius: 9px; background: #f9fcfa; }
.registration-review-payment { margin-top: 26px; }
.registration-payment-total { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; color: var(--reg-ink); font-size: 13px; line-height: 1.5; }
.registration-payment-total strong { font-size: 28px; font-weight: 600; letter-spacing: -.03em; text-align: right; }
.registration-review-payment > p, .registration-payment-help { color: var(--muted); font-size: 12px; line-height: 1.75; margin: 12px 0 0; }
.registration-cashapp-recipient { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 18px 0 22px; padding-top: 18px; border-top: 1px solid #dce6df; color: var(--muted); font-size: 13px; }
.registration-cashapp-recipient strong { color: var(--reg-ink); font-weight: 500; }
.bond-registration .registration-cashapp-button { width: 100%; background: #166e42; border-color: #166e42; color: #fff; }
.bond-registration .registration-cashapp-button:hover { background: #115b35 !important; }
.registration-payment-options a, .registration-home-link { color: var(--orange); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.registration-home-link { display: inline-block; margin-top: 24px; font-size: 13px; }
.registration-payment-overview { display: block; padding: 18px; margin-bottom: 18px; border: 1px solid #ded6bf; border-radius: 9px; background: #fff; color: var(--reg-ink); text-decoration: none; transition: border-color .15s, background .15s; }
.registration-payment-overview:hover { border-color: #166e42; background: #f9fcfa; }
.registration-payment-overview > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.registration-cashapp-label { padding: 5px 9px; border-radius: 4px; color: #166e42; background: #edf6f0; font: 600 11px/1.5 var(--body); }
.bond-registration .registration-payment-overview h2 { font: 600 32px/1.3 var(--body); letter-spacing: -.04em; margin: 0; }
.registration-payment-overview p { margin: 10px 0 0; font-size: 12px; line-height: 1.7; color: var(--muted); }
.registration-payment-overview .registration-payment-label { margin: 0 0 8px; font-weight: 500; color: var(--reg-ink); }
.registration-success { padding: 38px; }
.bond-registration .registration-success h2 { font: 600 30px/1.25 var(--body); letter-spacing: -.035em; margin: 0 0 20px; }
.registration-success > p { color: var(--muted); font-size: 15px; line-height: 1.75; }
.registration-reference { border-block: 1px solid var(--line); padding-block: 18px; margin-block: 28px; }
.registration-reference strong { color: var(--reg-ink); margin-left: 10px; }

/* Editable pricing blocks remain secondary to the form. */
.registration-sidebar { position: sticky; top: 28px; }
.registration-sidebar .wp-block-group { margin-block: 0; }
.registration-sidebar .wp-block-group > * { max-width: none !important; margin-inline: 0 !important; }
.registration-pricing { background: #fbfaf6; border: 1px solid #e9e2d0; border-radius: 10px; padding: 22px; }
.registration-pricing > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #514831; font: 600 16px/1.4 var(--body); cursor: pointer; }
.registration-pricing > summary::after { content: '+'; font: 400 22px/1 var(--body); color: var(--orange); }
.registration-pricing[open] > summary::after { content: '−'; }
.registration-rates { padding-top: 24px; }
.registration-rate-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; padding-bottom: 20px; }
.registration-rate-card + .registration-rate-card { border-top: 1px solid #e5decb; padding-top: 18px; }
.bond-registration .registration-rate-card h3 { font: 500 13px/1.5 var(--body); margin: 5px 0 0; letter-spacing: 0; }
.registration-rate-card .registration-price { font: 600 27px/1.25 var(--body); color: var(--gold-ink); letter-spacing: -.035em; margin: 0; }
.registration-rate-card > p:not(.registration-price) { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.registration-dates { padding: 18px 0; border-top: 1px solid #e5decb; }
.bond-registration .registration-dates h3 { font: 600 14px/1.5 var(--body); letter-spacing: -.015em; margin: 0 0 10px; }
.registration-dates p { font-size: 12px; line-height: 1.75; color: var(--muted); margin: 0 0 10px; }
.registration-dates p:last-child { margin-bottom: 0; }
.registration-sidebar :is(.registration-uniform, .registration-aid) { border-top: 1px solid #e5decb; margin-top: 12px; }
.registration-sidebar :is(.registration-uniform, .registration-aid) > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; font-size: 12px; font-weight: 500; line-height: 1.5; padding: 15px 0 3px; cursor: pointer; }
.registration-sidebar :is(.registration-uniform, .registration-aid) > summary::after { content: '+'; font-size: 18px; font-weight: 400; color: var(--orange); }
.registration-sidebar :is(.registration-uniform, .registration-aid)[open] > summary::after { content: '−'; }
.registration-sidebar .bond-uniform-photo { margin: 16px 0 0; }
.registration-sidebar .bond-uniform-photo img { display: block; width: 100%; height: auto; border-radius: 4px; }
.registration-sidebar .registration-assistance { font-size: 13px; line-height: 1.75; color: var(--muted); margin: 14px 0 0; }
.registration-additional { border-bottom: 1px solid var(--line); margin: 0; padding: 20px 0; }
.registration-sidebar .bond-registration-payment { background: transparent; border: 0; padding: 0; }
.registration-additional > summary { display: flex; justify-content: space-between; align-items: center; list-style: none; gap: 10px; font-size: 12px; font-weight: 500; line-height: 1.5; cursor: pointer; }
.registration-additional > summary::after { content: '+'; color: var(--orange); font-size: 20px; font-weight: 400; }
.registration-additional[open] > summary::after { content: '−'; }
.bond-registration .registration-additional h3 { font: 600 13px/1.5 var(--body); margin: 20px 0 10px; }
.registration-additional p { color: var(--muted); font-size: 12px; line-height: 1.75; margin: 12px 0; }
.registration-additional .wp-block-buttons { margin: 15px 0; }
.registration-additional .wp-block-button__link { border: 0; padding: 0 0 3px; background: transparent; color: var(--orange); border-radius: 0; border-bottom: 1px solid #c7b67f; font: 500 12px/1.5 var(--body); }
.registration-sidebar .bond-payment-preview { margin: 0; }
.registration-sidebar .bond-payment-preview p { font-size: 11px; color: var(--muted); }
.registration-contact { display: flex; flex-direction: column; gap: 6px; padding: 20px 0; align-items: flex-start; }
.registration-contact p { margin: 0; color: var(--muted); font-size: 12px; }
.registration-contact a { max-width: 100%; color: var(--orange); font-size: 12px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.registration-sidebar summary::-webkit-details-marker, .registration-second-contact summary::-webkit-details-marker { display: none; }
.bond-registration .site-footer { color: var(--reg-ink); background: #fff; border-top: 1px solid var(--line); }
.bond-registration .footer-bottom { border-color: var(--line); color: var(--muted); letter-spacing: .04em; }
.bond-registration .footer-bottom > a { color: #58513f; }
.bond-registration .site-footer .club-tagline { color: var(--muted); }
@media (max-width: 1100px) {
  .registration-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; }
  .registration-form { padding-inline: 26px; }
  .registration-progress { margin-inline: -26px; padding-inline: 20px; }
}
@media (max-width: 900px) {
  .registration-page { max-width: 720px; padding: 36px 28px 64px; }
  .registration-heading { margin-bottom: 26px; }
  .registration-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .registration-sidebar { display: contents; }
  .registration-payment-overview { grid-row: 1; margin: 0; }
  .registration-sidebar .bond-registration-copy { grid-row: 2; }
  .registration-form-column { width: 100%; grid-row: 3; }
  .registration-sidebar .bond-registration-payment { grid-row: 4; }
  .registration-contact { grid-row: 5; }
  .registration-pricing { padding: 18px 20px; }
  .registration-pricing > summary { font-size: 14px; }
  .registration-contact { padding-bottom: 0; }
  .registration-additional { padding-block: 15px; }
  .registration-rates { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .registration-rate-card + .registration-rate-card { border: 0; padding-top: 0; }
  .registration-sidebar .bond-uniform-photo { max-width: 340px !important; }
}
@media (max-width: 700px) {
  .bond-registration .site-header { height: 72px; padding-inline: 22px; gap: 14px; }
  .bond-registration .site-header .brand-word { font-size: 33px; }
  .bond-registration .site-header .brand-sub { font-size: 7px; letter-spacing: 2.8px; }
  .bond-registration .header-actions { gap: 12px; }
  .bond-registration .site-header .button { font-size: 10px; min-height: 42px; padding: 10px 12px; }
  .bond-registration .site-header nav.is-open { top: 100%; background: #fff; border-color: var(--line); box-shadow: 0 15px 25px #29271f12; }
  .bond-registration .site-header nav.is-open a { color: var(--reg-ink); font-size: 14px; }
  .registration-page { padding: 32px 20px 48px; }
  .bond-registration .registration-heading h1 { font-size: 38px; margin-bottom: 14px; }
  .registration-heading > p:last-child { font-size: 14px; line-height: 1.75; }
  .registration-heading .registration-eyebrow { font-size: 10px; margin-bottom: 10px; }
  .registration-layout { gap: 22px; }
  .registration-pricing { border-radius: 8px; padding: 16px; }
  .registration-contact { padding-top: 14px; }
  .registration-contact p, .registration-contact a { font-size: 11px; }
  .registration-form { padding: 0 20px 20px; }
  .registration-progress { margin: 0 -20px 25px; padding: 20px 16px 17px; }
  .registration-progress ol { gap: 5px; }
  .registration-progress button { flex-direction: column; gap: 9px; align-items: flex-start; font-size: 11px; line-height: 1.4; }
  .step-number { width: 22px; height: 22px; font-size: 10px; }
  .bond-registration .registration-step-heading h2 { font-size: 24px; }
  .registration-step-heading p { font-size: 12px; }
  .registration-step-heading { margin-bottom: 24px; }
  /* Wider phones also need full-width controls; a 400px cutoff misses them. */
  .registration-fields { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .registration-field label, .registration-choice > legend { font-size: 13px; }
  .registration-field-wide { grid-column: 1 / -1; }
  .registration-radio-options { gap: 12px; }
  .registration-radio-options label { gap: 6px; font-size: 12px; }
  .registration-fields :is(input:not([type=radio]), select, textarea) { padding-inline: 11px; }
  .registration-form-actions { margin-top: 26px; padding-top: 22px; }
  .registration-continue, .registration-send { min-width: 135px; }
  .registration-review-payment, .registration-cashapp-card { padding: 18px; }
  .registration-payment-total { font-size: 12px; gap: 12px; }
  .registration-review-group dl > div { grid-template-columns: 1fr; gap: 1px; padding-block: 7px; }
  .registration-rates { gap: 16px; }
  .registration-rate-card { display: block; }
  .registration-rate-card .registration-price { margin: 5px 0 8px !important; }
  .registration-rate-card > p:not(.registration-price) { font-size: 12px; }
  .registration-success { padding: 28px 22px; }
}
@media (max-width: 400px) {
  .registration-progress button { font-size: 10px; }
  .registration-radio-options { gap: 24px; }
  .registration-form-actions:has(.registration-send:not([hidden])) { flex-wrap: wrap; }
  .registration-send { width: 100%; order: -1; }
  .registration-payment-total { flex-wrap: wrap; }
}
@media (max-width: 350px) {
  .registration-page { padding-inline: 16px; }
  .registration-form { padding-inline: 16px; }
  .registration-progress { margin-inline: -16px; padding-inline: 12px; }
  .bond-registration .site-header { padding-inline: 16px; gap: 10px; }
  .bond-registration .header-actions { gap: 8px; }
  .bond-registration .site-header .button { font-size: 9px; padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) { .registration-fields :is(input, select, textarea), .registration-payment-overview { transition: none; } }
