.elementor-400 .elementor-element.elementor-element-ed1fc77{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--padding-top:50px;--padding-bottom:50px;--padding-left:0px;--padding-right:0px;}.elementor-400 .elementor-element.elementor-element-ed1fc77:not(.elementor-motion-effects-element-type-background), .elementor-400 .elementor-element.elementor-element-ed1fc77 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F8F8F8;}.elementor-400 .elementor-element.elementor-element-14b7fdf{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--margin-top:50px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-400 .elementor-element.elementor-element-8cdad5b{--display:flex;}.elementor-400 .elementor-element.elementor-element-799ae7e .elementor-alert-title{font-size:13px;font-weight:400;}.elementor-400 .elementor-element.elementor-element-89b3b92 > .elementor-widget-container{margin:30px 0px 0px 0px;}.elementor-400 .elementor-element.elementor-element-89b3b92{text-align:end;}.elementor-400 .elementor-element.elementor-element-89b3b92 img{width:120px;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-400 .elementor-element.elementor-element-14b7fdf{--content-width:1000px;}}@media(max-width:767px){.elementor-400 .elementor-element.elementor-element-ed1fc77{--padding-top:15px;--padding-bottom:15px;--padding-left:15px;--padding-right:15px;}.elementor-400 .elementor-element.elementor-element-c1aeab8 .elementor-heading-title{line-height:1.3em;}}/* Start custom CSS for container, class: .elementor-element-14b7fdf *//* ============================================================
   SingaporeVisaOnline.sg — Gravity Forms v39 Responsive Styling
   Form ID: 39 (Test Page: /a-v39-test/)
   Single-page form — all sections visible on one page.

   HOW TO ADD:
   Paste into Appearance → Customize → Additional CSS
   OR wrap in <style>...</style> in an Elementor HTML widget.

   FIXES:
   ✅ Searchable dropdowns (TomSelect) — adds visible dropdown arrow
   ✅ Regular select dropdowns — fixes arrow positioning
   ✅ Radio buttons — larger, card-style tap targets
   ✅ Hides "Price" label from Transaction Fees field
   ✅ Buttons in one row (Save left, Submit right) — stacks on mobile
   ✅ All fields responsive across all screen sizes

   REPLACES THESE OLD RULES (no longer needed):
   ❌ .gchoice { margin: 4px 0 0 0; } → replaced by flexbox gap
   ❌ .chosen-single div b { display:none } → replaced by custom arrow
   ❌ .gform_page_footer flex-direction → replaced below
   ============================================================ */


/* ── GENERAL FORM WRAPPER ── */
#gform_wrapper_39 {
  max-width: 100%;
  padding: 0 10px;
  box-sizing: border-box;
}

#gform_wrapper_39 *,
#gform_wrapper_39 *::before,
#gform_wrapper_39 *::after {
  box-sizing: border-box;
}


/* ── FIELD SPACING ── */
#gform_wrapper_39 .gfield {
  margin-bottom: 22px;
}


/* ── LABELS ── */
#gform_wrapper_39 .gfield_label,
#gform_wrapper_39 .gfield_label_before_complex {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  margin-bottom: 6px;
  display: block;
}

#gform_wrapper_39 .gfield .gform-field-label--type-sub {
  font-size: 12px;
  color: #666;
  margin-top: 4px;
}

#gform_wrapper_39 .gfield_required {
  color: #e53e3e;
}


/* ── SECTION HEADERS (Personal Information, Trip Info, etc.) ── */
#gform_wrapper_39 .gsection {
  border-bottom: 2px solid #16a34a;
  padding-bottom: 10px;
  margin: 36px 0 24px 0;
}

#gform_wrapper_39 .gsection_title {
  font-size: 20px;
  font-weight: 700;
  color: #1a1a2e;
}


/* ============================================================
   FIX #1: TEXT INPUTS, TEXTAREAS, REGULAR SELECTS
   ============================================================ */
#gform_wrapper_39 input[type="text"],
#gform_wrapper_39 input[type="email"],
#gform_wrapper_39 input[type="tel"],
#gform_wrapper_39 input[type="number"],
#gform_wrapper_39 input[type="password"],
#gform_wrapper_39 input[type="url"],
#gform_wrapper_39 textarea {
  width: 100%;
  max-width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #333;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#gform_wrapper_39 input:focus,
#gform_wrapper_39 textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

/* Regular (non-searchable) <select> — fix arrow positioning */
#gform_wrapper_39 select {
  width: 100%;
  max-width: 100%;
  padding: 12px 42px 12px 14px;
  font-size: 15px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background-color: #fff;
  color: #333;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%23555' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5L2.5 6h11z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#gform_wrapper_39 select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}


/* ============================================================
   FIX #2: SEARCHABLE DROPDOWNS (TomSelect / Chosen)
   Gravity Forms 2.8+ uses TomSelect for enhanced selects.
   This adds a visible dropdown arrow and proper styling.
   ============================================================ */

/* --- TomSelect wrapper --- */
#gform_wrapper_39 .ts-wrapper,
#gform_wrapper_39 .ts-wrap {
  position: relative;
}

#gform_wrapper_39 .ts-wrapper .ts-control,
#gform_wrapper_39 .ts-wrap .ts-control {
  padding: 12px 42px 12px 14px !important;
  font-size: 15px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #333 !important;
  min-height: 46px !important;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#gform_wrapper_39 .ts-wrapper .ts-control:focus,
#gform_wrapper_39 .ts-wrapper.focus .ts-control {
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15) !important;
}

/* Add dropdown arrow to TomSelect */
#gform_wrapper_39 .ts-wrapper::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #555;
  pointer-events: none;
  z-index: 10;
}

/* Rotate arrow when dropdown is open */
#gform_wrapper_39 .ts-wrapper.dropdown-active::after {
  border-top: none;
  border-bottom: 7px solid #555;
}

/* TomSelect dropdown menu */
#gform_wrapper_39 .ts-dropdown {
  border: 1px solid #d1d5db !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
  max-height: 280px !important;
  overflow-y: auto;
}

#gform_wrapper_39 .ts-dropdown .ts-dropdown-content {
  max-height: 280px;
  overflow-y: auto;
}

#gform_wrapper_39 .ts-dropdown .option {
  padding: 10px 14px !important;
  font-size: 14px !important;
  cursor: pointer;
}

#gform_wrapper_39 .ts-dropdown .option:hover,
#gform_wrapper_39 .ts-dropdown .option.active {
  background: #eff6ff !important;
  color: #1a1a2e !important;
}

/* TomSelect search input inside dropdown */
#gform_wrapper_39 .ts-dropdown .ts-input,
#gform_wrapper_39 .ts-control > input {
  font-size: 15px !important;
}

/* --- Chosen library (used by this form for searchable dropdowns) --- */

/* Chosen container: full width */
#gform_wrapper_39 .chosen-container {
  width: 100% !important;
}

/* ── CLOSED STATE: Main select bar ── */
#gform_wrapper_39 .chosen-container .chosen-single {
  height: 48px !important;
  line-height: 48px !important;
  padding: 0 50px 0 14px !important;
  font-size: 15px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 8px !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #333 !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#gform_wrapper_39 .chosen-container .chosen-single span {
  line-height: 48px !important;
}

/* Focus state */
#gform_wrapper_39 .chosen-container-active .chosen-single {
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15) !important;
}

/* Arrow container — more gap from edge */
#gform_wrapper_39 .chosen-container .chosen-single div {
  width: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  right: 0 !important;
  top: 0 !important;
  position: absolute !important;
  height: 100% !important;
}

/* Hide the default broken arrow image (b element) */
#gform_wrapper_39 .chosen-container .chosen-single div b {
  display: none !important;
}

/* Custom clean dropdown arrow via ::after */
#gform_wrapper_39 .chosen-container .chosen-single div::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid #555;
  margin-right: 6px;
}

/* Flip arrow when open */
#gform_wrapper_39 .chosen-container-active .chosen-single div::after {
  border-top: none;
  border-bottom: 7px solid #555;
}

/* ── OPEN STATE: Dropdown panel ── */
#gform_wrapper_39 .chosen-container .chosen-drop {
  border: 1px solid #d1d5db !important;
  border-top: none !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
  margin-top: -1px;
}

/* ── SEARCH BOX inside dropdown — hide broken icons ── */

/* Hide ALL icons/pseudo-elements inside the search area */
#gform_wrapper_39 .chosen-container .chosen-search::before,
#gform_wrapper_39 .chosen-container .chosen-search::after,
#gform_wrapper_39 .chosen-container .chosen-search label,
#gform_wrapper_39 .chosen-container .chosen-search span {
  display: none !important;
}

/* Hide the broken sort arrows (▾▴), cross (✕), search icon (🔍) */
#gform_wrapper_39 .chosen-container .chosen-drop .chosen-search-input-icon,
#gform_wrapper_39 .chosen-container .chosen-drop .icon,
#gform_wrapper_39 .chosen-container .chosen-drop .search-icon,
#gform_wrapper_39 .chosen-container .chosen-drop [class*="icon"],
#gform_wrapper_39 .chosen-container .chosen-drop svg {
  display: none !important;
}

/* Also hide sort/deselect controls that GF injects */
#gform_wrapper_39 .chosen-container .search-choice-close,
#gform_wrapper_39 .chosen-container .chosen-search-input ~ *:not(.chosen-results):not(input) {
  display: none !important;
}

/* Nuclear option: hide everything in the search wrapper except the input itself */
#gform_wrapper_39 .chosen-container .chosen-search {
  position: relative !important;
  padding: 8px !important;
  overflow: hidden;
}

#gform_wrapper_39 .chosen-container .chosen-search > *:not(input) {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* Style the actual search input cleanly */
#gform_wrapper_39 .chosen-container .chosen-search input,
#gform_wrapper_39 .chosen-container .chosen-search input[type="text"] {
  font-size: 15px !important;
  padding: 10px 14px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  background: #fff !important;
  background-image: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
  outline: none !important;
  color: #333 !important;
}

#gform_wrapper_39 .chosen-container .chosen-search input:focus {
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1) !important;
}

/* ── RESULTS LIST ── */
#gform_wrapper_39 .chosen-container .chosen-results {
  padding: 4px 0 !important;
  margin: 0 !important;
  max-height: 260px !important;
}

#gform_wrapper_39 .chosen-container .chosen-results li {
  padding: 10px 14px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  color: #333 !important;
  border: none !important;
}

#gform_wrapper_39 .chosen-container .chosen-results li.highlighted {
  background: #3b82f6 !important;
  color: #fff !important;
}

#gform_wrapper_39 .chosen-container .chosen-results li.no-results {
  padding: 12px 14px !important;
  color: #94a3b8 !important;
  font-style: italic;
}

/* ── DESELECT / CLEAR BUTTON on main bar ── */
#gform_wrapper_39 .chosen-container .chosen-single abbr {
  display: none !important;
}


/* ============================================================
   FIX #3: RADIO BUTTONS — Larger, card-style, FULL CARD CLICKABLE
   The label is made to cover the entire card so clicking
   anywhere on the card (not just the text) selects the radio.
   ============================================================ */
#gform_wrapper_39 .gfield_radio,
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
}

#gform_wrapper_39 .gfield_radio .gchoice,
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0;
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  flex: 1;
  min-width: 130px;
  overflow: hidden;
}

/* Make the LABEL fill the entire card — this is the clickable fix */
#gform_wrapper_39 .gfield_radio .gchoice label,
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice label {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 18px;
  font-size: 15px;
  color: #333;
  cursor: pointer;
  margin: 0;
  font-weight: 500;
}

/* Position the radio/checkbox input INSIDE the label visually */
#gform_wrapper_39 .gfield_radio .gchoice input[type="radio"],
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* Custom radio circle drawn via label ::before */
#gform_wrapper_39 .gfield_radio .gchoice label::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 22px;
  min-width: 22px;
  border: 2px solid #cbd5e1;
  border-radius: 50%;
  background: #fff;
  transition: all 0.2s ease;
  flex-shrink: 0;
  box-sizing: border-box;
}

/* Custom checkbox square drawn via label ::before */
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice label::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 22px;
  min-width: 22px;
  border: 2px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  transition: all 0.2s ease;
  flex-shrink: 0;
  box-sizing: border-box;
}

/* Hover state */
#gform_wrapper_39 .gfield_radio .gchoice:hover,
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice:hover {
  border-color: #3b82f6;
  background: #eff6ff;
}

/* ── Selected / Checked states ── */

/* Radio selected — card highlight */
#gform_wrapper_39 .gfield_radio .gchoice:has(input:checked) {
  border-color: #3b82f6;
  background: #eff6ff;
  box-shadow: 0 0 0 1px #3b82f6;
}

/* Radio selected — custom circle fill */
#gform_wrapper_39 .gfield_radio .gchoice:has(input:checked) label::before {
  border-color: #3b82f6;
  background: #fff;
  box-shadow: inset 0 0 0 4px #3b82f6;
}

/* Checkbox selected — card highlight */
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice:has(input:checked) {
  border-color: #16a34a;
  background: #f0fdf4;
  box-shadow: 0 0 0 1px #16a34a;
}

/* Checkbox selected — custom check fill */
#gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice:has(input:checked) label::before {
  border-color: #16a34a;
  background: #16a34a;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M13.485 3.929a1 1 0 0 1 .086 1.406l-6 7a1 1 0 0 1-1.47.021l-3-3.25a1 1 0 1 1 1.468-1.358l2.252 2.439 5.258-6.172a1 1 0 0 1 1.406-.086z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px;
}


/* ============================================================
   NAME FIELD (Surname / Given Name side by side)
   ============================================================ */
#gform_wrapper_39 .ginput_complex {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

#gform_wrapper_39 .ginput_complex > span,
#gform_wrapper_39 .ginput_complex > div {
  flex: 1;
  min-width: 0;
}


/* ============================================================
   ADDRESS FIELD
   ============================================================ */
#gform_wrapper_39 .ginput_container_address {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

#gform_wrapper_39 .ginput_container_address > span {
  flex: 1 1 calc(50% - 6px);
  min-width: 0;
}

#gform_wrapper_39 .ginput_container_address > span.ginput_full {
  flex: 1 1 100%;
}


/* ============================================================
   DATE FIELD (Day / Month / Year dropdowns + Datepicker)
   ============================================================ */
#gform_wrapper_39 .ginput_container_date {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
}

#gform_wrapper_39 .ginput_container_date select {
  min-width: 0;
  flex: 1;
}

/* Date field inner spans (GF wraps each select in a span) */
#gform_wrapper_39 .ginput_container_date > span,
#gform_wrapper_39 .ginput_container_date > div {
  flex: 1;
  min-width: 0;
}

/* DD/MM/YYYY split fields — force row layout on all screens */
#gform_wrapper_39 .gfield--type-date .ginput_complex.gform-grid-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 8px;
}

#gform_wrapper_39 .gfield--type-date .ginput_complex.gform-grid-row > .gform-grid-col {
  flex: 1 !important;
  min-width: 0 !important;
}

#gform_wrapper_39 .gfield_date_day input,
#gform_wrapper_39 .gfield_date_month input,
#gform_wrapper_39 .gfield_date_year input {
  width: 100% !important;
  box-sizing: border-box;
}

#gform_wrapper_39 .datepicker {
  width: 100% !important;
}

/* ── FIX: Calendar icon — keep it INSIDE the input field ── */
#gform_wrapper_39 .ginput_container_date {
  position: relative;
}

/* The datepicker input — make room for the icon on the right */
#gform_wrapper_39 .ginput_container_date input.datepicker {
  padding-right: 44px !important;
}

/* Calendar icon (Gravity Forms uses an image or icon after the input) */
#gform_wrapper_39 .ginput_container_date .ui-datepicker-trigger,
#gform_wrapper_39 .ginput_container_date img.ui-datepicker-trigger,
#gform_wrapper_39 .ginput_container_date .gfield_date_picker_icon {
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  cursor: pointer !important;
  opacity: 0.6;
  transition: opacity 0.2s ease;
  z-index: 5;
}

#gform_wrapper_39 .ginput_container_date .ui-datepicker-trigger:hover,
#gform_wrapper_39 .ginput_container_date img.ui-datepicker-trigger:hover {
  opacity: 1;
}

/* If the icon is rendered as a button, style it cleanly */
#gform_wrapper_39 .ginput_container_date button.ui-datepicker-trigger {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: none !important;
  border: none !important;
  padding: 4px !important;
  cursor: pointer !important;
  z-index: 5;
}

/* GF 2.9+ uses an inline SVG icon — position it properly */
#gform_wrapper_39 .ginput_container_date .gform-icon,
#gform_wrapper_39 .ginput_container_date svg {
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  height: 20px !important;
  pointer-events: none;
  z-index: 5;
}


/* ============================================================
   FILE UPLOAD AREAS
   ============================================================ */
#gform_wrapper_39 .gform_drop_area {
  border: 2px dashed #cbd5e1;
  border-radius: 10px;
  padding: 28px 16px;
  text-align: center;
  background: #f8fafc;
  transition: all 0.2s ease;
}

#gform_wrapper_39 .gform_drop_area:hover {
  border-color: #3b82f6;
  background: #f0f7ff;
}

#gform_wrapper_39 .gform_drop_area .gform_drop_instructions {
  font-size: 14px;
  color: #64748b;
  margin-bottom: 8px;
}

#gform_wrapper_39 .gform_button_select_files {
  background: #3b82f6;
  color: #fff;
  border: none;
  padding: 10px 24px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s ease;
}

#gform_wrapper_39 .gform_button_select_files:hover {
  background: #2563eb;
}


/* ============================================================
   PRODUCT / PRICING / TOTAL FIELDS
   ============================================================ */
#gform_wrapper_39 .gfield_price .ginput_container {
  font-size: 16px;
  font-weight: 600;
  color: #1a1a2e;
}

/* Hide "Price" label from Transaction Fees (carried over from old CSS) */
#gform_wrapper_39 .ginput_product_price_label {
  display: none;
}

#gform_wrapper_39 .ginput_total {
  font-size: 20px;
  font-weight: 700;
  color: #16a34a;
}


/* ============================================================
   COUPON FIELD
   ============================================================ */
#gform_wrapper_39 .gf_coupon_container {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

#gform_wrapper_39 .gf_coupon_container input {
  flex: 1;
  min-width: 150px;
}


/* ============================================================
   BUTTONS (Submit, Save & Continue)
   ============================================================ */
/* Buttons in one row — Save left, Submit right */
#gform_wrapper_39 .gform_footer,
#gform_wrapper_39 .gform_page_footer {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 24px;
  margin-top: 16px;
  border-top: 1px solid #e2e8f0;
}

#gform_wrapper_39 input[type="submit"],
#gform_wrapper_39 .gform_button {
  display: inline-block;
  padding: 14px 36px;
  font-size: 16px;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  background: linear-gradient(135deg, #16a34a, #15803d);
  color: #fff;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
  order: 2;
}

#gform_wrapper_39 input[type="submit"]:hover,
#gform_wrapper_39 .gform_button:hover {
  background: linear-gradient(135deg, #15803d, #166534);
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.4);
  transform: translateY(-1px);
}

#gform_wrapper_39 .gform_save_link {
  display: inline-block;
  padding: 12px 24px;
  font-size: 14px;
  color: #3b82f6;
  text-decoration: none;
  border: 1px solid #3b82f6;
  border-radius: 6px;
  transition: all 0.2s ease;
  order: 1;
}

/* Multi-step: Next/Previous buttons — Save left, Next right */
#gform_wrapper_39 .gform_page_footer .gform_next_button,
#gform_wrapper_39 .gform_page_footer .gform_button[value="Next"],
#gform_wrapper_39 .gform_page_footer input[type="button"].gform_next_button {
  order: 2 !important;
}

#gform_wrapper_39 .gform_page_footer .gform_previous_button,
#gform_wrapper_39 .gform_page_footer input[type="button"].gform_previous_button {
  order: 0 !important;
  background: #f1f5f9;
  color: #475569;
  box-shadow: none;
  border: 1px solid #cbd5e1;
}

#gform_wrapper_39 .gform_page_footer .gform_previous_button:hover {
  background: #e2e8f0;
  box-shadow: none;
  transform: none;
}

#gform_wrapper_39 .gform_save_link:hover {
  background: #eff6ff;
}


/* ============================================================
   CONSENT FIELD — separate from card-style checkboxes above
   ============================================================ */

/* Reset: ensure consent checkbox is NOT hidden by the radio/checkbox card styles */
#gform_wrapper_39 .gfield--type-consent .ginput_container {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* The consent checkbox — properly sized and visible */
#gform_wrapper_39 .gfield--type-consent input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 22px !important;
  height: 22px !important;
  min-width: 22px;
  border: 2px solid #cbd5e1;
  border-radius: 6px;
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  background: #fff;
  margin: 0;
  padding: 0;
  display: inline-block !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#gform_wrapper_39 .gfield--type-consent input[type="checkbox"]:checked {
  border-color: #16a34a;
  background: #16a34a;
}

#gform_wrapper_39 .gfield--type-consent input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M13.485 3.929a1 1 0 0 1 .086 1.406l-6 7a1 1 0 0 1-1.47.021l-3-3.25a1 1 0 1 1 1.468-1.358l2.252 2.439 5.258-6.172a1 1 0 0 1 1.406-.086z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px;
}

/* Consent label text — proper alignment */
#gform_wrapper_39 .gfield--type-consent .ginput_container label,
#gform_wrapper_39 .gfield--type-consent .gfield_consent_label {
  font-size: 15px;
  color: #333;
  cursor: pointer;
  line-height: 1.4;
  margin: 0;
}

#gform_wrapper_39 .gfield--type-consent .gfield_consent_label a {
  color: #16a34a;
  font-weight: 600;
}


/* ============================================================
   STRIPE / PAYMENT CARD FIELD
   ============================================================ */
#gform_wrapper_39 .gfield_stripe_card,
#gform_wrapper_39 .gfield_creditcard {
  max-width: 100%;
}

#gform_wrapper_39 .gfield_stripe_card iframe,
#gform_wrapper_39 .gfield_creditcard iframe {
  width: 100% !important;
  max-width: 100% !important;
}


/* ============================================================
   VALIDATION & ERRORS
   ============================================================ */
#gform_wrapper_39 .gfield_error input,
#gform_wrapper_39 .gfield_error select,
#gform_wrapper_39 .gfield_error textarea,
#gform_wrapper_39 .gfield_error .ts-control {
  border-color: #e53e3e !important;
  box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.1) !important;
}

#gform_wrapper_39 .gfield_error .gfield_label {
  color: #e53e3e;
}

#gform_wrapper_39 .validation_message {
  font-size: 13px;
  color: #e53e3e;
  margin-top: 4px;
}


/* ============================================================
   DESCRIPTION / HELPER TEXT
   ============================================================ */
#gform_wrapper_39 .gfield_description {
  font-size: 13px;
  color: #64748b;
  line-height: 1.5;
  margin-top: 4px;
}


/* ============================================================
   HTML BLOCKS (Premium/Standard info boxes, alerts)
   ============================================================ */
#gform_wrapper_39 .gfield_html {
  line-height: 1.6;
  overflow: hidden;
}


/* ============================================================
   TABLET — 768px
   ============================================================ */
@media (max-width: 768px) {

  #gform_wrapper_39 {
    padding: 0 8px;
  }

  #gform_wrapper_39 .gfield_label {
    font-size: 14px;
  }

  #gform_wrapper_39 .gsection_title {
    font-size: 18px;
  }

  #gform_wrapper_39 input[type="text"],
  #gform_wrapper_39 input[type="email"],
  #gform_wrapper_39 input[type="tel"],
  #gform_wrapper_39 input[type="number"],
  #gform_wrapper_39 input[type="password"],
  #gform_wrapper_39 select,
  #gform_wrapper_39 textarea {
    padding: 11px 12px;
    font-size: 14px;
  }

  #gform_wrapper_39 select {
    padding-right: 38px;
  }

  #gform_wrapper_39 .ts-wrapper .ts-control {
    padding: 11px 38px 11px 12px !important;
    min-height: 42px !important;
  }

  #gform_wrapper_39 .gfield_radio .gchoice,
  #gform_wrapper_39 .gfield_checkbox .gchoice {
    padding: 12px 14px;
    min-width: 110px;
  }

  #gform_wrapper_39 .ginput_container_address > span {
    flex: 1 1 100%;
  }

  #gform_wrapper_39 input[type="submit"],
  #gform_wrapper_39 .gform_button {
    padding: 12px 28px;
    font-size: 15px;
  }
}


/* ============================================================
   MOBILE — 480px
   ============================================================ */
@media (max-width: 480px) {

  #gform_wrapper_39 {
    padding: 0 4px;
  }

  #gform_wrapper_39 .gfield {
    margin-bottom: 16px;
  }

  #gform_wrapper_39 .gfield_label {
    font-size: 13px;
    margin-bottom: 4px;
  }

  #gform_wrapper_39 .gsection {
    margin: 28px 0 18px 0;
  }

  #gform_wrapper_39 .gsection_title {
    font-size: 16px;
  }

  /* Inputs: 16px font prevents iOS zoom */
  #gform_wrapper_39 input[type="text"],
  #gform_wrapper_39 input[type="email"],
  #gform_wrapper_39 input[type="tel"],
  #gform_wrapper_39 input[type="number"],
  #gform_wrapper_39 input[type="password"],
  #gform_wrapper_39 select,
  #gform_wrapper_39 textarea {
    padding: 12px;
    font-size: 16px !important;
    border-radius: 6px;
    width: 100% !important;
    max-width: 100% !important;
  }

  #gform_wrapper_39 select {
    padding-right: 38px;
  }

  /* TomSelect mobile */
  #gform_wrapper_39 .ts-wrapper .ts-control {
    padding: 12px 38px 12px 12px !important;
    font-size: 16px !important;
    min-height: 46px !important;
  }

  #gform_wrapper_39 .ts-dropdown .option {
    padding: 12px 14px !important;
    font-size: 15px !important;
  }

  /* Chosen mobile */
  #gform_wrapper_39 .chosen-container .chosen-single {
    height: 48px !important;
    line-height: 48px !important;
    font-size: 16px !important;
    padding: 0 50px 0 12px !important;
  }

  #gform_wrapper_39 .chosen-container .chosen-search input,
  #gform_wrapper_39 .chosen-container .chosen-search input[type="text"] {
    font-size: 16px !important;
    padding: 10px 12px !important;
  }

  #gform_wrapper_39 .chosen-container .chosen-results li {
    padding: 12px 14px !important;
    font-size: 15px !important;
  }

  /* Name field: stack vertically */
  #gform_wrapper_39 .ginput_complex {
    flex-direction: column;
    gap: 10px;
  }

  #gform_wrapper_39 .ginput_complex > span,
  #gform_wrapper_39 .ginput_complex > div {
    width: 100%;
    flex: none;
  }

  /* Date field: keep in one row on mobile */
  #gform_wrapper_39 .ginput_container_date {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 6px;
  }

  #gform_wrapper_39 .ginput_container_date select {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    padding: 10px 8px;
  }

  /* DD/MM/YYYY split fields — stay in row on mobile */
  #gform_wrapper_39 .gfield--type-date .ginput_complex.gform-grid-row {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 6px;
  }

  /* Radio/Checkbox: full width stacked */
  #gform_wrapper_39 .gfield_radio,
  #gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) {
    flex-direction: column;
    gap: 8px;
  }

  #gform_wrapper_39 .gfield_radio .gchoice,
  #gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice {
    width: 100%;
    min-width: 0;
  }

  #gform_wrapper_39 .gfield_radio .gchoice label,
  #gform_wrapper_39 .gfield_checkbox:not(.gfield--type-consent .gfield_checkbox) .gchoice label {
    font-size: 14px;
    padding: 14px;
  }

  /* File upload: compact */
  #gform_wrapper_39 .gform_drop_area {
    padding: 20px 12px;
  }

  #gform_wrapper_39 .gform_button_select_files {
    width: 100%;
    padding: 12px;
  }

  /* Buttons: stack vertically on mobile */
  #gform_wrapper_39 .gform_footer,
  #gform_wrapper_39 .gform_page_footer {
    flex-direction: column;
    align-items: stretch;
  }

  #gform_wrapper_39 input[type="submit"],
  #gform_wrapper_39 .gform_button {
    width: 100%;
    padding: 14px;
    font-size: 16px;
    text-align: center;
    order: 1;
  }

  #gform_wrapper_39 .gform_save_link {
    width: 100%;
    text-align: center;
    padding: 12px;
    order: 2;
  }

  /* Force single column layout */
  #gform_wrapper_39 .gform_fields {
    grid-template-columns: 1fr !important;
  }

  #gform_wrapper_39 .gfield--width-half,
  #gform_wrapper_39 .gfield--width-third,
  #gform_wrapper_39 .gfield--width-quarter {
    grid-column: span 1 !important;
    width: 100% !important;
  }

  /* Coupon field: stack */
  #gform_wrapper_39 .gf_coupon_container {
    flex-direction: column;
  }

  #gform_wrapper_39 .gf_coupon_container input {
    width: 100%;
  }

  /* Consent */
  #gform_wrapper_39 .gfield--type-consent label {
    font-size: 13px;
  }

  /* Total */
  #gform_wrapper_39 .ginput_total {
    font-size: 18px;
  }

  /* Description text */
  #gform_wrapper_39 .gfield_description {
    font-size: 12px;
  }

  /* Stripe */
  #gform_wrapper_39 .gfield_stripe_card,
  #gform_wrapper_39 .gfield_creditcard {
    width: 100%;
    overflow: hidden;
  }
}


/* ============================================================
   VERY SMALL SCREENS — 360px
   ============================================================ */
@media (max-width: 360px) {

  #gform_wrapper_39 {
    padding: 0 2px;
  }

  #gform_wrapper_39 .gfield {
    margin-bottom: 14px;
  }

  #gform_wrapper_39 .gfield_label {
    font-size: 12px;
  }

  #gform_wrapper_39 input[type="text"],
  #gform_wrapper_39 input[type="email"],
  #gform_wrapper_39 input[type="tel"],
  #gform_wrapper_39 input[type="number"],
  #gform_wrapper_39 input[type="password"],
  #gform_wrapper_39 select,
  #gform_wrapper_39 textarea {
    padding: 10px;
    font-size: 16px !important;
  }

  #gform_wrapper_39 .gfield_radio .gchoice,
  #gform_wrapper_39 .gfield_checkbox .gchoice {
    padding: 12px;
  }

  #gform_wrapper_39 .gfield_radio input[type="radio"],
  #gform_wrapper_39 .gfield_checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
  }

  #gform_wrapper_39 input[type="submit"],
  #gform_wrapper_39 .gform_button {
    padding: 12px;
    font-size: 15px;
  }

  #gform_wrapper_39 .gform_drop_area {
    padding: 16px 10px;
  }
}


/* ============================================================
   iOS ZOOM PREVENTION
   ============================================================ */
@media screen and (max-width: 768px) {
  #gform_wrapper_39 input,
  #gform_wrapper_39 select,
  #gform_wrapper_39 textarea,
  #gform_wrapper_39 .ts-control,
  #gform_wrapper_39 .ts-control > input,
  #gform_wrapper_39 .chosen-container .chosen-single {
    font-size: 16px !important;
  }
}/* End custom CSS */