/* ═══════════════════════════════════════════════════════════════════════
   SCWNY Trophy Form — Custom Stylesheet
   Version: 1.0 for Gravity Forms 2.9.x (Orbital theme)
   Scope: everything targets .scwny-trophy-form to avoid
          affecting other forms on the site.
   ═══════════════════════════════════════════════════════════════════════ */

body .scwny-trophy-form {
  --teal: #009387;
  --teal-hover: #007a70;
  --teal-light: #e6f5f4;
  --teal-frost: #f0faf9;
  --gold: #fbcd06;
  --gold-dark: #d4ac00;
  --gold-faint: #fff7cc;
  --grey: #666666;
  --grey-light: #999999;
  --border: #cccccc;
  --bg: #f5f5f5;
  --white: #ffffff;
  --error: #c0392b;

  font-family: 'Raleway', -apple-system, sans-serif;
  color: #222;
  max-width: none;
  margin: 0;
}

/* ─── Form heading / description ─────────────────────────────────────── */
body .scwny-trophy-form .gform_title,
body .scwny-trophy-form h3 {
  font-family: 'Montserrat', sans-serif !important;
  color: var(--teal) !important;
  font-weight: 700 !important;
}

/* ─── 12-column grid layout ──────────────────────────────────────────── */
body .scwny-trophy-form .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  gap: 20px !important;
}

body .scwny-trophy-form .gform_fields > .gfield {
  grid-column: span 12 !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}

body .scwny-trophy-form .gform_fields > .scwny-col-6  { grid-column: span 6  !important; }
body .scwny-trophy-form .gform_fields > .scwny-col-4  { grid-column: span 4  !important; }
body .scwny-trophy-form .gform_fields > .scwny-col-3  { grid-column: span 3  !important; }

@media (max-width: 640px) {
  body .scwny-trophy-form .gform_fields > .scwny-col-6,
  body .scwny-trophy-form .gform_fields > .scwny-col-4,
  body .scwny-trophy-form .gform_fields > .scwny-col-3 {
    grid-column: span 12 !important;
  }
}

/* ─── Labels ─────────────────────────────────────────────────────────── */
body .scwny-trophy-form .gfield_label {
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  color: var(--teal) !important;
  margin-bottom: 7px !important;
  display: block !important;
}
body .scwny-trophy-form .gfield_required {
  color: var(--error) !important;
  font-weight: 700;
}

/* ─── Text inputs, selects, textareas ────────────────────────────────── */
body .scwny-trophy-form input[type="text"],
body .scwny-trophy-form input[type="email"],
body .scwny-trophy-form input[type="tel"],
body .scwny-trophy-form input[type="number"],
body .scwny-trophy-form input[type="date"],
body .scwny-trophy-form select,
body .scwny-trophy-form textarea {
  width: 100% !important;
  padding: 11px 14px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 15px !important;
  color: #222 !important;
  background: var(--white) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  transition: all 0.15s !important;
  box-sizing: border-box !important;
}

body .scwny-trophy-form input:focus,
body .scwny-trophy-form select:focus,
body .scwny-trophy-form textarea:focus {
  outline: none !important;
  border-color: var(--teal) !important;
  box-shadow: 0 0 0 3px rgba(0,147,135,0.12) !important;
}

body .scwny-trophy-form textarea {
  min-height: 90px;
  resize: vertical;
}

body .scwny-trophy-form select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%23009387' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 40px !important;
}

/* ─── Name field (First / Last side-by-side) ─────────────────────────── */
body .scwny-trophy-form .ginput_complex.ginput_container_name {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
}
body .scwny-trophy-form .ginput_complex.ginput_container_name > span {
  padding: 0 !important;
  width: 100% !important;
}
body .scwny-trophy-form .ginput_complex.ginput_container_name label {
  font-size: 12px !important;
  color: var(--grey-light) !important;
  font-weight: 400 !important;
  margin-top: 4px !important;
}
@media (max-width: 640px) {
  body .scwny-trophy-form .ginput_complex.ginput_container_name {
    grid-template-columns: 1fr !important;
  }
}

/* ─── Radio cards (membership status) ────────────────────────────────── */
body .scwny-trophy-form .gfield--type-radio .gfield_radio {
  display: grid !important;
  gap: 10px !important;
}
body .scwny-trophy-form .gfield--type-radio .gchoice {
  margin: 0 !important;
  padding: 14px 18px !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 10px !important;
  background: var(--white) !important;
  transition: all 0.15s !important;
  cursor: pointer;
  display: flex !important;
  align-items: center !important;
}
body .scwny-trophy-form .gfield--type-radio .gchoice:hover {
  border-color: var(--grey) !important;
}
body .scwny-trophy-form .gfield--type-radio .gchoice input[type="radio"] {
  margin-right: 12px !important;
  accent-color: var(--teal) !important;
  width: 18px !important;
  height: 18px !important;
}
body .scwny-trophy-form .gfield--type-radio .gchoice label {
  margin: 0 !important;
  font-size: 15px !important;
  color: var(--teal) !important;
  font-weight: 600 !important;
  cursor: pointer;
  flex: 1;
}
body .scwny-trophy-form .gfield--type-radio .gchoice:has(input:checked) {
  border-color: var(--teal) !important;
  background: var(--teal-frost) !important;
}

/* ─── Section headers (used for dance level headers) ─────────────────── */
body .scwny-trophy-form .gfield--type-section {
  padding: 16px 22px !important;
  background: var(--teal-frost) !important;
  border: 1px solid var(--teal-light) !important;
  border-radius: 10px !important;
  margin-top: 24px !important;
}
body .scwny-trophy-form .gfield--type-section .gsection_title {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  color: var(--teal) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
body .scwny-trophy-form .gfield--type-section .gsection_description {
  font-size: 13px !important;
  color: var(--grey) !important;
  margin: 6px 0 0 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
}

/* ─── Bonus chip (shows next to level title) ─────────────────────────── */
body .scwny-trophy-form .scwny-bonus-chip {
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 10px !important;
  background: var(--gold-faint) !important;
  color: var(--gold-dark) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  border-radius: 12px !important;
  opacity: 0.5 !important;
  transition: all 0.3s !important;
  vertical-align: middle !important;
}

/* Level complete state — JS adds body.scwny-level-{slug}-complete */
body.scwny-level-prelim-complete    .scwny-trophy-form .scwny-level-prelim    .scwny-bonus-chip,
body.scwny-level-prebronze-complete .scwny-trophy-form .scwny-level-prebronze .scwny-bonus-chip,
body.scwny-level-bronze-complete    .scwny-trophy-form .scwny-level-bronze    .scwny-bonus-chip,
body.scwny-level-presilver-complete .scwny-trophy-form .scwny-level-presilver .scwny-bonus-chip,
body.scwny-level-silver-complete    .scwny-trophy-form .scwny-level-silver    .scwny-bonus-chip,
body.scwny-level-pregold-complete   .scwny-trophy-form .scwny-level-pregold   .scwny-bonus-chip,
body.scwny-level-gold-complete      .scwny-trophy-form .scwny-level-gold      .scwny-bonus-chip {
  opacity: 1 !important;
  background: var(--gold) !important;
  color: var(--teal-hover) !important;
  animation: scwnyBonusPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

body.scwny-level-prelim-complete    .scwny-trophy-form .scwny-level-prelim,
body.scwny-level-prebronze-complete .scwny-trophy-form .scwny-level-prebronze,
body.scwny-level-bronze-complete    .scwny-trophy-form .scwny-level-bronze,
body.scwny-level-presilver-complete .scwny-trophy-form .scwny-level-presilver,
body.scwny-level-silver-complete    .scwny-trophy-form .scwny-level-silver,
body.scwny-level-pregold-complete   .scwny-trophy-form .scwny-level-pregold,
body.scwny-level-gold-complete      .scwny-trophy-form .scwny-level-gold {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 3px rgba(251,205,6,0.1) !important;
}

@keyframes scwnyBonusPop {
  0%   { transform: scale(0.9); }
  60%  { transform: scale(1.12); }
  100% { transform: scale(1); }
}

/* ─── Single-checkbox dance / test items ─────────────────────────────── */
body .scwny-trophy-form .gfield--type-checkbox {
  padding: 12px 16px !important;
  background: var(--white) !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  transition: all 0.15s !important;
}
body .scwny-trophy-form .gfield--type-checkbox .gfield_label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #222 !important;
  margin-bottom: 8px !important;
}
body .scwny-trophy-form .gfield--type-checkbox .gfield_checkbox {
  padding: 0 !important;
  margin: 0 !important;
}
body .scwny-trophy-form .gfield--type-checkbox .gchoice {
  display: flex !important;
  align-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
}
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"] {
  margin-right: 10px !important;
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--teal) !important;
  cursor: pointer;
}
body .scwny-trophy-form .gfield--type-checkbox .gchoice label {
  margin: 0 !important;
  font-size: 14px !important;
  color: var(--grey) !important;
  font-weight: 500 !important;
  cursor: pointer;
}

body .scwny-trophy-form .gfield--type-checkbox:has(input:checked) {
  border-color: var(--teal) !important;
  background: var(--teal-frost) !important;
}
body .scwny-trophy-form .gfield--type-checkbox:has(input:checked) .gfield_label {
  color: var(--teal) !important;
}

/* ─── Running subtotal fields (visible calculations) ─────────────────── */
body .scwny-trophy-form .scwny-subtotal,
body .scwny-trophy-form .scwny-grand-total {
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-hover) 100%) !important;
  color: var(--white) !important;
  padding: 18px 24px !important;
  border-radius: 12px !important;
  margin-top: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  box-shadow: 0 12px 28px rgba(0,147,135,0.18) !important;
  border: none !important;
}
body .scwny-trophy-form .scwny-subtotal .gfield_label,
body .scwny-trophy-form .scwny-grand-total .gfield_label {
  color: rgba(255,255,255,0.9) !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  font-weight: 700 !important;
  flex: 1;
}
body .scwny-trophy-form .scwny-subtotal input[type="number"],
body .scwny-trophy-form .scwny-grand-total input[type="number"] {
  background: transparent !important;
  border: none !important;
  color: var(--gold) !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 34px !important;
  font-weight: 800 !important;
  text-align: right !important;
  padding: 0 !important;
  width: auto !important;
  max-width: 200px !important;
  pointer-events: none !important;
  box-shadow: none !important;
  letter-spacing: -0.02em !important;
}

body .scwny-trophy-form .scwny-entry-pts {
  text-align: right;
}
body .scwny-trophy-form .scwny-entry-pts input[type="number"] {
  background: var(--gold-faint) !important;
  color: var(--gold-dark) !important;
  font-weight: 700 !important;
  text-align: center !important;
  max-width: 120px !important;
  margin-left: auto !important;
  pointer-events: none !important;
}

/* ─── Consent (membership confirmation) ──────────────────────────────── */
body .scwny-trophy-form .gfield--type-consent {
  padding: 18px 20px !important;
  background: var(--teal-frost) !important;
  border-left: 3px solid var(--teal) !important;
  border-radius: 6px !important;
}
body .scwny-trophy-form .gfield--type-consent > label.gfield_label {
  display: none !important;
}
body .scwny-trophy-form .gfield--type-consent .ginput_container_consent label {
  font-size: 14px !important;
  color: var(--grey) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  margin-left: 8px !important;
}
body .scwny-trophy-form .gfield--type-consent input[type="checkbox"] {
  accent-color: var(--teal) !important;
  width: 18px !important;
  height: 18px !important;
}

/* ─── HTML content blocks ────────────────────────────────────────────── */
body .scwny-trophy-form .gfield--type-html {
  margin: 8px 0 !important;
}
body .scwny-trophy-form .scwny-intro-block h3 {
  font-family: 'Montserrat', sans-serif !important;
  color: var(--teal) !important;
  font-weight: 800 !important;
  margin: 0 0 8px !important;
  font-size: 22px !important;
}
body .scwny-trophy-form .scwny-intro-block p {
  margin: 4px 0 !important;
  font-size: 14px !important;
  color: var(--grey) !important;
}

/* ─── Step 2 summary card ────────────────────────────────────────────── */
.scwny-summary-block .scwny-levels-box {
  background: var(--teal-frost);
  border-left: 4px solid var(--teal);
  padding: 18px 22px;
  border-radius: 6px;
}
.scwny-summary-block h4 {
  margin: 0 0 10px !important;
  color: var(--teal) !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
.scwny-summary-block .scwny-levels-box p {
  margin: 6px 0 !important;
  font-size: 14.5px !important;
  color: #222;
}
.scwny-summary-block .scwny-levels-box strong {
  color: var(--teal);
  font-weight: 700;
  margin-right: 8px;
}
.scwny-summary-block h3 {
  font-family: 'Montserrat', sans-serif !important;
  color: var(--teal) !important;
  font-weight: 700 !important;
  margin: 32px 0 16px !important;
  font-size: 17px !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* ─── Trophy category cards (Step 2 + Step 7) ────────────────────────── */
.scwny-trophy-cards,
.scwny-trophy-showcase {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 16px;
}
@media (max-width: 720px) {
  .scwny-trophy-cards,
  .scwny-trophy-showcase {
    grid-template-columns: 1fr;
  }
}

.scwny-trophy-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 14px;
  padding: 24px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
  transition: transform 0.25s, box-shadow 0.25s;
}
.scwny-trophy-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,147,135,0.14);
}
.scwny-trophy-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}
.scwny-trophy-card[data-trophy="singles"]::before {
  background: linear-gradient(90deg, var(--gold), var(--gold-dark));
}
.scwny-trophy-card[data-trophy="dance"]::before {
  background: linear-gradient(90deg, var(--teal), #00b09f);
}
.scwny-trophy-card[data-trophy="testpt"]::before {
  background: linear-gradient(90deg, var(--teal-hover), var(--teal));
}

.scwny-trophy-card .tc-icon {
  font-size: 28px;
  margin-bottom: 4px;
  display: block;
}
.scwny-trophy-card .tc-name,
.scwny-trophy-card .tc-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--teal);
  margin: 4px 0 12px;
}
.scwny-trophy-card .tc-badge {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  margin-bottom: 12px;
}
.scwny-trophy-card[data-trophy="singles"] .tc-badge {
  background: var(--gold-faint);
  color: var(--gold-dark);
}
.scwny-trophy-card[data-trophy="dance"] .tc-badge {
  background: var(--teal-light);
  color: var(--teal-hover);
}
.scwny-trophy-card[data-trophy="testpt"] .tc-badge {
  background: var(--teal-frost);
  color: var(--teal);
}
.scwny-trophy-card .tc-basis {
  font-size: 12px;
  color: var(--grey-light);
  margin-top: 8px;
  line-height: 1.45;
}

/* Step 7 showcase uses bigger cards with points displayed */
.scwny-trophy-showcase .scwny-trophy-card {
  padding: 32px 24px 28px;
}
.scwny-trophy-showcase .tc-icon {
  font-size: 44px;
}
.scwny-trophy-showcase .tc-points {
  font-family: 'Montserrat', sans-serif;
  font-size: 54px;
  font-weight: 800;
  color: var(--teal);
  line-height: 1;
  letter-spacing: -0.04em;
  margin: 14px 0 4px;
}
.scwny-trophy-showcase .tc-sublabel {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--grey-light);
}

/* ─── Nav buttons ────────────────────────────────────────────────────── */
body .scwny-trophy-form .gform_page_footer {
  display: flex !important;
  justify-content: space-between !important;
  padding-top: 32px !important;
  margin-top: 40px !important;
  border-top: 1px solid var(--border) !important;
  gap: 12px;
}
body .scwny-trophy-form .gform_button,
body .scwny-trophy-form .gform_next_button,
body .scwny-trophy-form .gform_previous_button,
body .scwny-trophy-form .gform_save_link {
  padding: 13px 28px !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  border: none !important;
  border-radius: 10px !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  text-transform: none !important;
  min-height: 48px !important;
}
body .scwny-trophy-form .gform_next_button {
  background: var(--teal) !important;
  color: var(--white) !important;
  box-shadow: 0 4px 12px rgba(0,147,135,0.25) !important;
}
body .scwny-trophy-form .gform_next_button:hover {
  background: var(--teal-hover) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(0,147,135,0.35) !important;
}
body .scwny-trophy-form .gform_previous_button {
  background: var(--white) !important;
  color: var(--teal) !important;
  border: 1.5px solid var(--border) !important;
}
body .scwny-trophy-form .gform_previous_button:hover {
  border-color: var(--teal) !important;
}
body .scwny-trophy-form .gform_button {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%) !important;
  color: var(--teal-hover) !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  padding: 15px 36px !important;
  box-shadow: 0 6px 20px rgba(251,205,6,0.4) !important;
}
body .scwny-trophy-form .gform_button:hover {
  box-shadow: 0 10px 28px rgba(251,205,6,0.55) !important;
  transform: translateY(-1px) !important;
}
body .scwny-trophy-form .gform_save_link {
  background: transparent !important;
  color: var(--grey) !important;
  text-decoration: underline !important;
  padding: 13px 18px !important;
}

/* ─── Progress bar ───────────────────────────────────────────────────── */
body .scwny-trophy-form .gf_progressbar_wrapper {
  margin-bottom: 36px !important;
}
body .scwny-trophy-form .gf_progressbar {
  background: var(--border) !important;
  height: 6px !important;
  border-radius: 3px !important;
  overflow: hidden !important;
}
body .scwny-trophy-form .gf_progressbar_percentage {
  background: linear-gradient(90deg, var(--teal-hover), var(--teal)) !important;
  border-radius: 3px !important;
  height: 100% !important;
  transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
body .scwny-trophy-form .gf_progressbar_percentage span {
  display: none !important;
}
body .scwny-trophy-form .gf_progressbar_title {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
  color: var(--teal) !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  margin-top: 8px !important;
}

/* ─── File upload ────────────────────────────────────────────────────── */
body .scwny-trophy-form .gfield--type-fileupload .gform_drop_area {
  border: 2px dashed var(--grey-light) !important;
  background: var(--teal-frost) !important;
  border-radius: 14px !important;
  padding: 40px 20px !important;
  text-align: center !important;
  transition: all 0.2s !important;
}
body .scwny-trophy-form .gfield--type-fileupload .gform_drop_area:hover {
  border-color: var(--teal) !important;
  background: var(--teal-light) !important;
}

/* ─── Signature field (typed name) ───────────────────────────────────── */
body .scwny-trophy-form .scwny-signature-field {
  background: var(--gold-faint) !important;
  padding: 24px !important;
  border-radius: 14px !important;
  border: 1px solid var(--gold-dark) !important;
}
body .scwny-trophy-form .scwny-signature-field .gfield_label {
  color: var(--gold-dark) !important;
}
body .scwny-trophy-form .scwny-signature-field input[type="text"] {
  font-family: 'Raleway', sans-serif !important;
  font-size: 22px !important;
  font-style: italic !important;
  font-weight: 400 !important;
  border-color: var(--gold-dark) !important;
}

/* ─── Hide the hidden category fields from view ──────────────────────── */
body .scwny-trophy-form .scwny-hidden-cat {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.1 PATCHES — fixes observed on live site Apr 24
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 1: Kill default browser fieldset border + padding.
   Gravity Forms 2.9 wraps single-checkbox fields in <fieldset><legend>…</legend>…</fieldset>.
   Browsers give <fieldset> a default border which "gaps around" the <legend> —
   that's the horizontal line appearing after "Dutch Waltz — Passed" etc. */
body .scwny-trophy-form fieldset,
body .scwny-trophy-form .gfield fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  background: transparent !important;
}
body .scwny-trophy-form legend,
body .scwny-trophy-form .gfield legend {
  border: none !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  width: 100% !important;
  float: none !important;
  display: block !important;
  box-sizing: border-box !important;
}

/* FIX 2: Force select font-size/height/color explicitly.
   Something in the theme cascade is applying a micro font-size to the
   selected-option display in closed <select>s. Locking these down
   with high-specificity + !important overrides it. */
body .scwny-trophy-form select,
body .scwny-trophy-form select.large,
body .scwny-trophy-form select.medium,
body .scwny-trophy-form select.small {
  font-size: 15px !important;
  font-family: 'Raleway', -apple-system, sans-serif !important;
  font-weight: 400 !important;
  color: #222222 !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 48px !important;
  text-indent: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  -moz-appearance: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
body .scwny-trophy-form select option {
  font-size: 15px;
  font-family: 'Raleway', -apple-system, sans-serif;
  color: #222222;
  background-color: #ffffff;
  padding: 6px 10px;
}

/* FIX 3: Hide the top "Membership Confirmation" label on the consent field
   so we don't duplicate the checkbox label inline below it. */
body .scwny-trophy-form .gfield--type-consent > label.gfield_label,
body .scwny-trophy-form .gfield--type-consent > legend.gfield_label,
body .scwny-trophy-form .gfield--type-consent > .gfield_label {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* FIX 4: Gravity Forms validation error styling — keep red & readable */
body .scwny-trophy-form .gfield_validation_message,
body .scwny-trophy-form .gfield_description.validation_message,
body .scwny-trophy-form .validation_message {
  color: #c0392b !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-top: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

/* FIX 5: Tighten grid gap — 20px was too airy in the two-column rows */
body .scwny-trophy-form .gform_fields {
  gap: 18px 20px !important;
}

/* FIX 6: Tighten radio card internal padding so the 4-option membership
   stack doesn't feel as tall. */
body .scwny-trophy-form .gfield--type-radio .gchoice {
  padding: 12px 18px !important;
}
body .scwny-trophy-form .gfield--type-radio .gfield_radio {
  gap: 8px !important;
}

/* FIX 7: Ensure checkbox field wrappers don't show any inherited
   fieldset/border artifacts. Belt-and-suspenders after FIX 1. */
body .scwny-trophy-form .gfield--type-checkbox > fieldset,
body .scwny-trophy-form .gfield--type-consent  > fieldset {
  all: unset;
  display: block;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.2 PATCHES — Apr 24 round 2
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 1: Default section fields are a simple heading-with-rule, not a
   full card. The card treatment is reserved for .scwny-level-section
   (dance level groupings), where the "+BONUS" chip genuinely needs
   its own container. */
body .scwny-trophy-form .gfield--type-section {
  padding: 6px 0 6px 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid var(--teal-light) !important;
  border-radius: 0 !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
}
body .scwny-trophy-form .gfield--type-section .gsection_title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--teal) !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}
body .scwny-trophy-form .gfield--type-section .gsection_description {
  font-size: 13px !important;
  color: var(--grey) !important;
  margin: 4px 0 8px 0 !important;
  padding: 0 !important;
  line-height: 1.5 !important;
}

/* Restore card treatment ONLY for dance level sections */
body .scwny-trophy-form .gfield--type-section.scwny-level-section {
  padding: 14px 20px !important;
  background: var(--teal-frost) !important;
  border: 1px solid var(--teal-light) !important;
  border-bottom: 1px solid var(--teal-light) !important;
  border-radius: 10px !important;
  margin-top: 18px !important;
}
body .scwny-trophy-form .gfield--type-section.scwny-level-section .gsection_title {
  font-size: 17px !important;
  color: var(--teal) !important;
}

/* FIX 2: Consent field — flatten any internal dividers so checkbox row
   and agreement text live in ONE unified teal-frost box. */
body .scwny-trophy-form .gfield--type-consent {
  padding: 16px 20px !important;
}
body .scwny-trophy-form .gfield--type-consent .ginput_container,
body .scwny-trophy-form .gfield--type-consent .ginput_container_consent,
body .scwny-trophy-form .gfield--type-consent .gfield_description,
body .scwny-trophy-form .gfield--type-consent .gfield_consent_description,
body .scwny-trophy-form .gfield--type-consent fieldset,
body .scwny-trophy-form .gfield--type-consent legend {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
body .scwny-trophy-form .gfield--type-consent .gfield_description,
body .scwny-trophy-form .gfield--type-consent .gfield_consent_description {
  padding-top: 10px !important;
  margin-top: 6px !important;
  font-size: 13px !important;
  color: var(--grey) !important;
  line-height: 1.5 !important;
}

/* FIX 3: Render checkboxes as round "radio-style" inputs.
   Kept as type="checkbox" in the markup (preserves multi-select), but
   visually presents as a round button. Does not affect the Consent
   field (which is .gfield--type-consent, not .gfield--type-checkbox). */
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"],
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"] {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 10px 0 0 !important;
  padding: 0 !important;
  border: 2px solid var(--border) !important;
  border-radius: 50% !important;
  background-color: var(--white) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px 10px !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  vertical-align: middle !important;
  transition: all 0.15s !important;
  box-shadow: none !important;
  accent-color: initial !important;
}
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]:checked,
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"]:checked {
  border-color: var(--teal) !important;
  background-color: var(--teal) !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><circle cx='5' cy='5' r='5' fill='white'/></svg>") !important;
}
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]:hover:not(:checked) {
  border-color: var(--grey-light) !important;
}

/* FIX 4: Tighten the dance/test card — less vertical weight */
body .scwny-trophy-form .gfield--type-checkbox {
  padding: 10px 14px !important;
}
body .scwny-trophy-form .gfield--type-checkbox .gfield_label {
  margin-bottom: 4px !important;
}

/* Slightly tighter grid gap across all rows on Step 3 */
body .scwny-trophy-form .gform_fields {
  gap: 14px 18px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.3 PATCHES — radio dot + field padding
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 1: Use a CSS radial-gradient for the radio dot instead of an SVG
   data-URI. The SVG approach was flaky in Safari — the native checkmark
   was bleeding through. A radial-gradient is 100% reliable:
     - white outer (white background-color)
     - teal inner (radial-gradient 5px teal → transparent)
     - transparent outside the 5px ring reveals the white bg
   Result: true radio-button look (white circle, solid teal dot center). */
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"],
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"] {
  background-color: var(--white) !important;
  background-image: none !important;
  background-size: auto !important;
}
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]:checked,
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"]:checked {
  border-color: var(--teal) !important;
  background-color: var(--white) !important;
  background-image: radial-gradient(circle, var(--teal) 5px, transparent 5.5px) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 100% !important;
}

/* Kill any pseudo-elements that browsers might try to render as fallback */
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]::before,
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]::after {
  display: none !important;
  content: none !important;
}

/* FIX 2: More generous horizontal padding inside entry fields so the
   text sits visibly off the border. Was 11px 14px (text hugging the left
   edge). Now 12px 20px — 14px-ish for selects' right side because the
   chevron eats 40px of right padding. */
body .scwny-trophy-form input[type="text"],
body .scwny-trophy-form input[type="email"],
body .scwny-trophy-form input[type="tel"],
body .scwny-trophy-form input[type="number"],
body .scwny-trophy-form input[type="date"],
body .scwny-trophy-form textarea {
  padding: 12px 20px !important;
}

/* Selects keep 40px right for the chevron, 20px left for breathing room */
body .scwny-trophy-form select {
  padding: 12px 44px 12px 20px !important;
}

/* Name field subfields (First / Last) inherit the same left padding */
body .scwny-trophy-form .ginput_complex.ginput_container_name input[type="text"] {
  padding: 12px 20px !important;
}

/* Date picker has its icon on the right — keep padding-right room */
body .scwny-trophy-form input[type="date"],
body .scwny-trophy-form .gfield--type-date input {
  padding: 12px 20px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.4 PATCHES — fieldset/legend positioning
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 1: <legend> inside <fieldset> natively sits ON the fieldset's top
   border (cutting through it). That's why "Skating Skills — Silver",
   "Dutch Waltz — Passed", etc. appear to float on the card's top edge
   instead of inside the padding.

   Solution: force the gfield fieldsets to display:flex. That takes the
   legend out of native "cut-through-border" positioning and treats it
   as a normal flex child that respects padding. Modern browser support:
   Safari 14+, Chrome all versions, Firefox 99+. */
body .scwny-trophy-form fieldset.gfield,
body .scwny-trophy-form .gfield--type-checkbox,
body .scwny-trophy-form .gfield--type-radio,
body .scwny-trophy-form .gfield--type-consent,
body .scwny-trophy-form .gfield--type-name {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
}

/* Ensure legends inside those fieldsets render as regular flex children,
   not in their default "anchored to top border" mode. */
body .scwny-trophy-form fieldset.gfield > legend,
body .scwny-trophy-form .gfield--type-checkbox > legend.gfield_label,
body .scwny-trophy-form .gfield--type-checkbox > .gfield_label,
body .scwny-trophy-form .gfield--type-radio > legend.gfield_label,
body .scwny-trophy-form .gfield--type-radio > .gfield_label,
body .scwny-trophy-form .gfield--type-name > legend.gfield_label,
body .scwny-trophy-form .gfield--type-name > .gfield_label {
  order: -1 !important;
  position: static !important;
  float: none !important;
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
  border: none !important;
  background: transparent !important;
  box-sizing: border-box !important;
  transform: none !important;
}

/* Ginput container sits below the legend as the second flex child */
body .scwny-trophy-form .gfield--type-checkbox > .ginput_container,
body .scwny-trophy-form .gfield--type-radio > .ginput_container,
body .scwny-trophy-form .gfield--type-name > .ginput_container {
  width: 100% !important;
  order: 1 !important;
}

/* Bump checkbox card padding now that the legend sits inside the padding
   area — 14px top/bottom gives the label room from the top border. */
body .scwny-trophy-form .gfield--type-checkbox {
  padding: 14px 16px !important;
}

/* Checkbox row (the round radio-style input + "Passed this season" label) */
body .scwny-trophy-form .gfield--type-checkbox .ginput_container_checkbox {
  padding: 0 !important;
  margin: 0 !important;
}

/* FIX 2: Radio dot bumped to 12px diameter for visual clarity (was 10px) */
body .scwny-trophy-form .gfield--type-checkbox input[type="checkbox"]:checked,
body .scwny-trophy-form .gfield--type-checkbox .gchoice input[type="checkbox"]:checked {
  background-image: radial-gradient(circle, var(--teal) 6px, transparent 6.5px) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.5 PATCHES — definitive legend fix for Safari
   ═══════════════════════════════════════════════════════════════════════ */

/* Safari renders <legend> inside <fieldset> at the fieldset's TOP BORDER
   position for legacy HTML compat, even when display:flex or order is set.
   The only reliable cross-browser fix is a two-part combo:
     1) Remove the ACTUAL top border — use inset box-shadow as the visual
        "border" instead. Legend can't cut through a shadow.
     2) Float the legend, which forces it out of its native anchor point
        into normal flow, sitting inside the card's padded content. */
body .scwny-trophy-form .gfield--type-checkbox {
  display: block !important;
  border: none !important;
  box-shadow: inset 0 0 0 1px var(--border) !important;
  padding: 14px 16px !important;
  background: var(--white) !important;
  border-radius: 8px !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.15s !important;
  min-width: 0 !important;
}

/* Float the legend so it renders as a normal block inside the padding */
body .scwny-trophy-form .gfield--type-checkbox > legend.gfield_label,
body .scwny-trophy-form .gfield--type-checkbox > .gfield_label {
  float: left !important;
  width: 100% !important;
  clear: both !important;
  padding: 0 !important;
  margin: 0 0 10px 0 !important;
  border: none !important;
  background: transparent !important;
  display: block !important;
  position: static !important;
  transform: none !important;
  order: 0 !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #222 !important;
}

/* Content area below the floated legend */
body .scwny-trophy-form .gfield--type-checkbox > .ginput_container,
body .scwny-trophy-form .gfield--type-checkbox > .ginput_container_checkbox {
  clear: both !important;
  display: block !important;
  width: 100% !important;
  float: none !important;
}

/* Checked-state card — teal box-shadow border + frost background */
body .scwny-trophy-form .gfield--type-checkbox:has(input:checked) {
  box-shadow: inset 0 0 0 1px var(--teal) !important;
  background: var(--teal-frost) !important;
}
body .scwny-trophy-form .gfield--type-checkbox:has(input:checked) > legend.gfield_label,
body .scwny-trophy-form .gfield--type-checkbox:has(input:checked) > .gfield_label {
  color: var(--teal) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.6 PATCHES — specificity war fix

   The generic reset:
     body .scwny-trophy-form .gform_fields > .gfield { padding: 0 !important; }
   has specificity (0,0,3,1). Every card-styling rule before this point was
   at (0,0,2,1), so the reset won — zeroing out all card padding, no matter
   how many !importants I piled on. Explains the "labels against border"
   visual that's been haunting us.

   Fix: bump all card-type selectors to (0,0,4,1) by chaining through
   .gform_fields > .gfield.gfield--type-X. Now card padding actually applies,
   and the v1.5 box-shadow + float legend fix finally has a padded area
   for the legend to live inside.
   ═══════════════════════════════════════════════════════════════════════ */

/* Checkbox card — full treatment with proper specificity */
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox {
  display: block !important;
  padding: 14px 16px !important;
  margin: 0 !important;
  background: var(--white) !important;
  border: none !important;
  box-shadow: inset 0 0 0 1px var(--border) !important;
  border-radius: 8px !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.15s !important;
  min-width: 0 !important;
}

body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox:has(input:checked) {
  box-shadow: inset 0 0 0 1px var(--teal) !important;
  background: var(--teal-frost) !important;
}

body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox > legend.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox > .gfield_label {
  float: left !important;
  width: 100% !important;
  clear: both !important;
  padding: 0 !important;
  margin: 0 0 10px 0 !important;
  border: none !important;
  background: transparent !important;
  display: block !important;
  position: static !important;
  transform: none !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #222 !important;
}

body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox > .ginput_container,
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox > .ginput_container_checkbox {
  clear: both !important;
  display: block !important;
  float: none !important;
  width: 100% !important;
}

body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox:has(input:checked) > legend.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-checkbox:has(input:checked) > .gfield_label {
  color: var(--teal) !important;
}

/* Consent card — same specificity fix */
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-consent {
  display: block !important;
  padding: 18px 20px !important;
  margin: 0 !important;
  background: var(--teal-frost) !important;
  border: none !important;
  border-left: 3px solid var(--teal) !important;
  border-radius: 6px !important;
}

/* Dance level section card — same specificity fix */
body .scwny-trophy-form .gform_fields > .gfield.scwny-level-section {
  padding: 14px 20px !important;
  margin-top: 18px !important;
  margin-bottom: 0 !important;
  background: var(--teal-frost) !important;
  border: 1px solid var(--teal-light) !important;
  border-radius: 10px !important;
}

/* Plain section headers stay as underlined headings */
body .scwny-trophy-form .gform_fields > .gfield.gfield--type-section:not(.scwny-level-section) {
  padding: 6px 0 !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid var(--teal-light) !important;
  border-radius: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.7 — gold subtotal numerals
   The generic reset at (0,0,3,1) was zeroing padding on subtotal calc
   fields too. Chain the selector through .gform_fields > .gfield so the
   teal-gradient banner and gold number treatment actually apply.
   ═══════════════════════════════════════════════════════════════════════ */
body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal,
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  padding: 16px 24px !important;
  margin-top: 24px !important;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-hover) 100%) !important;
  color: var(--white) !important;
  border-radius: 12px !important;
  border: none !important;
  box-shadow: 0 12px 28px rgba(0,147,135,0.18) !important;
}

body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal > label.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total > label.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal > legend.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total > legend.gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal > .gfield_label,
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total > .gfield_label {
  flex: 1 !important;
  color: rgba(255,255,255,0.95) !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  float: none !important;
  width: auto !important;
  text-align: left !important;
}

body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal .ginput_container,
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total .ginput_container {
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal input[type="number"],
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total input[type="number"],
body .scwny-trophy-form .gform_fields > .gfield.scwny-subtotal input[type="text"],
body .scwny-trophy-form .gform_fields > .gfield.scwny-grand-total input[type="text"] {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--gold) !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 34px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  text-align: right !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  width: auto !important;
  max-width: 200px !important;
  pointer-events: none !important;
  outline: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.8 — outer form padding
   The entire form sits flush against the left/right edges of its
   container on the live page. Add horizontal padding to the form
   wrapper AND the page/body wrappers that Gravity Forms paginated forms
   use, so there's breathing room on the outer gutter without affecting
   existing card styling.
   ═══════════════════════════════════════════════════════════════════════ */

/* Outer form wrapper — this is what skatingclubofwesternnewyork.org
   renders with zero horizontal padding. */
/* v1.8 outer padding REMOVED in v2.5 — header now provides edge framing */

/* Gravity Forms' inner body + page wrappers — also need horizontal
   padding cleared to 0 since we're padding the outer wrapper. Otherwise
   padding would stack. */
body .scwny-trophy-form .gform_body,
body .scwny-trophy-form .gform_page,
body .scwny-trophy-form .gform_page_fields {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Pagination + page footer (nav buttons) also inherit 0 horiz padding
   since the outer wrapper now handles it */
body .scwny-trophy-form .gf_page_steps,
body .scwny-trophy-form .gform_page_footer,
body .scwny-trophy-form .gform_footer {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Mobile: tighter outer padding so form doesn't feel cramped on narrow
   viewports */
@media (max-width: 640px) {
  body .scwny-trophy-form,
  body .gform_wrapper.scwny-trophy-form {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   v1.9 — Step 7 trophy card spacing + Required indicator space
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 1: Top padding/margin for the trophy card title on Step 7 so the
   "Singles Trophy / Dance Trophy / Test Point Trophy" label sits below
   the trophy icon (🏆 / 💃 / 📋) with breathing room. */
body .scwny-trophy-form .scwny-trophy-showcase .scwny-trophy-card .tc-name,
body .scwny-trophy-form .scwny-trophy-showcase .scwny-trophy-card .tc-title {
  margin-top: 14px !important;
  margin-bottom: 12px !important;
}

/* Step 2 trophy cards (smaller variant) — a touch of top spacing too */
body .scwny-trophy-form .scwny-trophy-cards .scwny-trophy-card .tc-name,
body .scwny-trophy-form .scwny-trophy-cards .scwny-trophy-card .tc-title {
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}

/* FIX 2: Space before the "(Required)" indicator.
   Gravity Forms renders it as: "Label(Required)" with no separator.
   Add a left margin so it reads as: "Label (Required)". */
body .scwny-trophy-form .gfield_required,
body .scwny-trophy-form .gfield_label .gfield_required {
  margin-left: 6px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v2.3 — Correct selectors based on actual DOM
   The form's outer wrapper class is scwny-trophy-form_wrapper (with
   underscore); .scwny-trophy-form is on the inner <form> element. The
   .gform_heading lives inside the WRAPPER, not the form. So all heading
   selectors must use .scwny-trophy-form_wrapper.
   ═══════════════════════════════════════════════════════════════════════ */

/* Header card — solid teal matching membership form */
body .scwny-trophy-form_wrapper .gform_heading,
html body .gform_wrapper.scwny-trophy-form_wrapper .gform_heading {
  background-color: #009387 !important;
  background-image: none !important;
  padding: 2rem 2rem 1.25rem 2rem !important;
  border: none !important;
  border-bottom: 4px solid #fbcd06 !important;
  border-radius: 12px 12px 0 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  display: block !important;
}

body .scwny-trophy-form_wrapper .gform_heading .gform_title,
html body .gform_wrapper.scwny-trophy-form_wrapper .gform_title {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  line-height: 1.2 !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  display: block !important;
  border: none !important;
}

body .scwny-trophy-form_wrapper .gform_heading .gform_description,
html body .gform_wrapper.scwny-trophy-form_wrapper .gform_description {
  font-family: 'Raleway', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,0.92) !important;
  line-height: 1.55 !important;
  margin: 0 0 16px 0 !important;
  padding: 0 !important;
  display: block !important;
  text-transform: none !important;
}

body .scwny-trophy-form_wrapper .gform_heading .gform_required_legend,
html body .gform_wrapper.scwny-trophy-form_wrapper .gform_required_legend {
  font-family: 'Raleway', sans-serif !important;
  font-size: 13px !important;
  color: rgba(255,255,255,0.75) !important;
  font-style: italic !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
body .scwny-trophy-form_wrapper .gform_heading .gform_required_legend .gfield_required {
  color: #fbcd06 !important;
  font-style: normal !important;
  font-weight: 700 !important;
  margin-left: 0 !important;
}

/* Outer wrapper — kill any padding so heading bleeds full container width */
body .gform_wrapper.scwny-trophy-form_wrapper {
  padding: 0 !important;
  margin: 0 !important;
}

/* Progress bar */
body .scwny-trophy-form_wrapper .gf_progressbar_wrapper {
  margin: 0 !important;
  padding: 24px 2rem 0 2rem !important;
  background: transparent !important;
}

body .scwny-trophy-form_wrapper .gf_progressbar {
  background: #e6e6e6 !important;
  height: 6px !important;
  border-radius: 3px !important;
  overflow: hidden !important;
  margin-top: 10px !important;
}

body .scwny-trophy-form_wrapper .gf_progressbar_percentage {
  background: linear-gradient(90deg, #007a70, #009387) !important;
  border-radius: 3px !important;
  height: 100% !important;
}

body .scwny-trophy-form_wrapper .gf_progressbar_percentage span {
  display: none !important;
}

body .scwny-trophy-form_wrapper .gf_progressbar_title {
  display: flex !important;
  align-items: center !important;
  margin: 20px 2rem 0 2rem !important;
  padding: 0 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  border: none !important;
}

body .scwny-trophy-form_wrapper .scwny-step-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 56px !important;
  height: 56px !important;
  background: linear-gradient(135deg, #fbcd06 0%, #d4ac00 100%) !important;
  color: #007a70 !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  margin-right: 18px !important;
  box-shadow: 0 6px 18px rgba(251,205,6,0.35) !important;
  line-height: 1 !important;
}

body .scwny-trophy-form_wrapper .scwny-step-text {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  flex: 1 !important;
}

body .scwny-trophy-form_wrapper .scwny-step-count {
  font-family: 'Raleway', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #666666 !important;
  line-height: 1.2 !important;
}

body .scwny-trophy-form_wrapper .scwny-step-label {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #009387 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  line-height: 1.2 !important;
}

/* Body content gets matching gutter so it lines up with the header */
body .scwny-trophy-form_wrapper .gform_body {
  padding: 0 2rem !important;
}

body .scwny-trophy-form_wrapper .gform_page_footer,
body .scwny-trophy-form_wrapper .gform_footer {
  padding: 32px 2rem 20px 2rem !important;
  margin: 0 !important;
}

body .scwny-trophy-form_wrapper .gf_page_steps {
  display: none !important;
}

/* HONEYPOT FIELD — Gravity Forms anti-spam field that should NEVER be
   visible to users. The visibility class .gfield_visibility_visible is
   being applied alongside .gform_validation_container, breaking GF's
   default hide. Force it hidden. */
body .scwny-trophy-form_wrapper .gfield--type-honeypot,
body .scwny-trophy-form_wrapper .gform_validation_container,
body .scwny-trophy-form_wrapper .gfield.gform_validation_container,
body .scwny-trophy-form .gfield--type-honeypot,
body .scwny-trophy-form .gform_validation_container,
body .gform_wrapper .gform_validation_container {
  display: none !important;
  position: absolute !important;
  left: -9000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

/* Mobile responsiveness */
@media (max-width: 640px) {
  body .scwny-trophy-form_wrapper .gform_heading {
    padding: 1.5rem 1.25rem 1rem 1.25rem !important;
  }
  body .scwny-trophy-form_wrapper .gform_title {
    font-size: 22px !important;
  }
  body .scwny-trophy-form_wrapper .gform_body,
  body .scwny-trophy-form_wrapper .gform_page_footer,
  body .scwny-trophy-form_wrapper .gform_footer,
  body .scwny-trophy-form_wrapper .gf_progressbar_wrapper,
  body .scwny-trophy-form_wrapper .gf_progressbar_title {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  body .scwny-trophy-form_wrapper .scwny-step-badge {
    width: 44px !important;
    height: 44px !important;
    font-size: 20px !important;
    margin-right: 14px !important;
  }
  body .scwny-trophy-form_wrapper .scwny-step-label {
    font-size: 15px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   v2.5 — Belt-and-suspenders step badge styling that doesn't depend on
   wrapper class location. Same look, broader selectors.
   ═══════════════════════════════════════════════════════════════════════ */
body .scwny-step-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 56px !important;
  height: 56px !important;
  background: linear-gradient(135deg, #fbcd06 0%, #d4ac00 100%) !important;
  color: #007a70 !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  margin-right: 18px !important;
  box-shadow: 0 6px 18px rgba(251,205,6,0.35) !important;
  line-height: 1 !important;
  text-transform: none !important;
}

body .scwny-step-text {
  display: inline-flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  flex: 1 !important;
  vertical-align: middle !important;
}

body .scwny-step-count {
  display: block !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #666666 !important;
  line-height: 1.2 !important;
}

body .scwny-step-label {
  display: block !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #009387 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  line-height: 1.2 !important;
}

/* Ensure the progress bar title becomes a flex container the moment
   the badge is injected, regardless of which ancestor scope wraps it */
body .gf_progressbar_title:has(.scwny-step-badge) {
  display: flex !important;
  align-items: center !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-size: inherit !important;
  color: inherit !important;
  font-weight: normal !important;
  border: none !important;
  padding: 0 !important;
  margin: 20px 2rem 16px 2rem !important;
}

@media (max-width: 640px) {
  body .scwny-step-badge {
    width: 44px !important;
    height: 44px !important;
    font-size: 20px !important;
    margin-right: 14px !important;
  }
  body .scwny-step-label {
    font-size: 15px !important;
  }
  body .gf_progressbar_title:has(.scwny-step-badge) {
    margin-left: 1.25rem !important;
    margin-right: 1.25rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   v2.6 — Date picker icon + hidden calc fields
   ═══════════════════════════════════════════════════════════════════════ */

/* FIX 2: Hide all calc/admin/hidden fields that GF is incorrectly rendering.
   In GF 2.9 these classes mark fields that should never display to the end
   user. Some configs leave them visible; force them hidden. */
body .scwny-trophy-form .gfield_visibility_hidden,
body .scwny-trophy-form .gfield_visibility_administrative,
body .scwny-trophy-form .gfield--type-hidden,
body .scwny-trophy-form .gform_fields > .gfield.gfield_visibility_hidden,
body .scwny-trophy-form .gform_fields > .gfield.gfield_visibility_administrative,
body .scwny-trophy-form .gform_fields > .gfield--type-hidden {
  display: none !important;
  visibility: hidden !important;
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Also hide any number field with the scwny-calc class that isn't a
   visible subtotal/grand-total. Calc fields used for internal point
   computation should never show to the user. */
body .scwny-trophy-form .gfield.scwny-calc,
body .scwny-trophy-form .gform_fields > .gfield.scwny-calc {
  display: none !important;
  visibility: hidden !important;
  position: absolute !important;
  left: -9999px !important;
}

/* Hide the "This field is hidden when viewing the form" text that sometimes
   appears for hidden fields when GF renders them anyway */
body .scwny-trophy-form .gfield_description.gfield_visibility_hidden,
body .scwny-trophy-form .gfield--type-hidden .gfield_description,
body .scwny-trophy-form .gfield_visibility_hidden .gfield_description,
body .scwny-trophy-form .gfield_visibility_administrative .gfield_description {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   v2.8 — Date picker fix based on actual GF DOM
   The DOM is:
     <div class="ginput_container ginput_container_date"> (flex container)
       <input type="text" class="datepicker mdy datepicker_with_icon">
       <img class="ui-datepicker-trigger" src=".../datepicker.svg">
       <span class="screen-reader-text">MM slash DD slash YYYY</span>
     </div>
   The icon is a SIBLING of the input, not a child. The container is
   currently display:flex which collapses to the input's 18px height,
   hiding the icon and pushing the date picker dropdown inline.
   ═══════════════════════════════════════════════════════════════════════ */

/* The ginput_container_date — make it a positioned context with
   normal block layout, not a collapsed flex */
body .scwny-trophy-form .ginput_container_date,
body .scwny-trophy-form .gfield--type-date .ginput_container {
  display: block !important;
  position: relative !important;
  width: 100% !important;
}

/* The date input itself — full width, room on right for icon */
body .scwny-trophy-form .ginput_container_date input.datepicker,
body .scwny-trophy-form .ginput_container_date input[type="text"],
body .scwny-trophy-form .gfield--type-date input.datepicker {
  width: 100% !important;
  padding-right: 44px !important;
  display: block !important;
}

/* The calendar icon img — pin it to the right side of the input */
body .scwny-trophy-form .ginput_container_date .ui-datepicker-trigger,
body .scwny-trophy-form img.ui-datepicker-trigger {
  position: absolute !important;
  right: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
  z-index: 2 !important;
  display: inline-block !important;
}

/* The jQuery UI date picker calendar dropdown — render as floating
   overlay above the form, not inline. GF puts this at the body level
   (#ui-datepicker-div), so we target it globally. */
#ui-datepicker-div,
body #ui-datepicker-div,
body .ui-datepicker.ui-widget {
  position: absolute !important;
  z-index: 99999 !important;
  background: #ffffff !important;
  border: 1px solid #cccccc !important;
  border-radius: 10px !important;
  padding: 10px !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.15) !important;
  font-family: 'Raleway', sans-serif !important;
  width: auto !important;
  min-width: 280px !important;
  display: none;  /* hidden by default; GF/jQuery UI will show on click */
}

#ui-datepicker-div.ui-datepicker {
  display: block !important;  /* visible when GF actively renders it */
}

/* Hide Safari's autofill/contact icon attempting to inject into the
   date input (visible in dev tools as -webkit-contacts-auto-fill-button) */
body .scwny-trophy-form input::-webkit-credentials-auto-fill-button,
body .scwny-trophy-form input::-webkit-contacts-auto-fill-button,
body .scwny-trophy-form input::-webkit-calendar-picker-indicator {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  margin: 0 !important;
}

/* Style the jQuery UI date picker contents to match form aesthetic */
#ui-datepicker-div .ui-datepicker-header {
  background: var(--teal-frost) !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 6px !important;
  margin-bottom: 6px !important;
}
#ui-datepicker-div .ui-datepicker-title select {
  font-family: 'Raleway', sans-serif !important;
  font-size: 13px !important;
  padding: 4px 8px !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  margin: 0 4px !important;
}
#ui-datepicker-div table {
  font-size: 13px !important;
  border-collapse: collapse !important;
  width: 100% !important;
}
#ui-datepicker-div th {
  color: var(--teal) !important;
  font-weight: 700 !important;
  padding: 4px !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
}
#ui-datepicker-div td {
  padding: 1px !important;
}
#ui-datepicker-div td a {
  display: block !important;
  text-align: center !important;
  padding: 6px !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  color: #222 !important;
}
#ui-datepicker-div td a.ui-state-hover,
#ui-datepicker-div td a:hover {
  background: var(--teal-frost) !important;
}
#ui-datepicker-div td a.ui-state-active,
#ui-datepicker-div td a.ui-state-highlight {
  background: var(--teal) !important;
  color: var(--white) !important;
}
