/**
 * Gravity Forms, styled to match the Gibbon theme.
 *
 * Gravity Forms' own front-end CSS is switched off (inc/forms.php), so this
 * file covers layout, fields, validation and the confirmation message.
 * Variants: .hero-form (homepage hero) and .contact-form (Contact section).
 */

.gform_wrapper{--gfm-navy:var(--navy,#0b2c52);--gfm-brand:var(--brand,#2f80c4);--gfm-accent:var(--accent,#f7b32b);
  --gfm-ink:var(--ink,#17283a);--gfm-muted:var(--muted,#5a6b7b);--gfm-line:var(--line,#e2e8f0);--gfm-error:#c0392b;
  background:#fff;border:1px solid var(--gfm-line);border-radius:var(--radius,16px);
  padding:30px 32px 26px;box-shadow:var(--shadow,0 10px 30px rgba(11,44,82,.10));color:var(--gfm-ink);text-align:left}

/* Heading */
.gform_wrapper .gform_heading{margin:0 0 20px}
.gform_wrapper .gform_title{font-family:'Poppins',sans-serif;font-size:25px;line-height:1.2;color:var(--gfm-navy);margin:0 0 8px}
.gform_wrapper .gform_description{display:block;margin:0;color:var(--gfm-muted);font-size:15.5px;line-height:1.6}
.gform_wrapper .gform_required_legend{display:none}

/* Field grid. Gravity Forms sets gfield--width-half etc. from the field's Layout setting. */
.gform_wrapper .gform_fields{display:grid;grid-template-columns:repeat(12,1fr);gap:16px 18px;margin:0;padding:0;list-style:none}
.gform_wrapper .gfield{grid-column:1/-1;margin:0;padding:0;border:0;min-width:0}
.gform_wrapper .gfield--width-half{grid-column:span 6}
.gform_wrapper .gfield--width-third{grid-column:span 4}
.gform_wrapper .gfield--width-two-thirds{grid-column:span 8}
.gform_wrapper .gfield--width-quarter{grid-column:span 3}
.gform_wrapper .gfield--width-three-quarter{grid-column:span 9}

/* Labels */
.gform_wrapper .gfield_label,.gform_wrapper legend.gfield_label{display:block;font-weight:600;font-size:14px;color:var(--gfm-navy);margin:0 0 6px;padding:0}
.gform_wrapper .gfield_required{color:var(--gfm-error);margin-left:2px;font-weight:600}
.gform_wrapper .gfield_required .gfield_required_text{font-size:12px}
.gform_wrapper .gfield_description{color:var(--gfm-muted);font-size:13px;line-height:1.5;margin-top:6px}
.gform_wrapper .ginput_complex{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gform_wrapper .ginput_complex label,.gform_wrapper .gform-field-label--type-sub{display:block;font-size:12.5px;color:var(--gfm-muted);margin-top:4px}

/* Inputs */
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],
.gform_wrapper input[type=number],.gform_wrapper input[type=url],.gform_wrapper input[type=date],
.gform_wrapper select,.gform_wrapper textarea{
  width:100%;font:inherit;font-size:15.5px;color:var(--gfm-ink);background:#fff;
  border:1.5px solid var(--gfm-line);border-radius:10px;padding:11px 13px;transition:.15s;box-sizing:border-box;margin:0}
.gform_wrapper textarea{resize:vertical;min-height:112px;line-height:1.6}
.gform_wrapper select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6b7b' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:38px}
.gform_wrapper input:focus,.gform_wrapper select:focus,.gform_wrapper textarea:focus{
  outline:none;border-color:var(--gfm-brand);box-shadow:0 0 0 3px rgba(47,128,196,.18)}
.gform_wrapper ::placeholder{color:#94a3b3}

/* Radios and checkboxes */
.gform_wrapper .gfield_radio,.gform_wrapper .gfield_checkbox{display:grid;gap:8px}
.gform_wrapper .gchoice{display:flex;align-items:center;gap:9px}
.gform_wrapper .gchoice input{width:18px;height:18px;margin:0;accent-color:var(--gfm-brand)}
.gform_wrapper .gchoice label{font-size:15px;color:var(--gfm-ink)}

/* Submit */
.gform_wrapper .gform_footer,.gform_wrapper .gform_page_footer{display:flex;align-items:center;gap:12px;margin:22px 0 0;padding:0}
.gform_wrapper .gform_button,.gform_wrapper .gform_next_button,.gform_wrapper .gform_previous_button{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;font:inherit;font-weight:700;font-size:15.5px;
  padding:14px 26px;border-radius:999px;border:0;cursor:pointer;transition:.18s;
  background:var(--gfm-accent);color:var(--gfm-navy);box-shadow:0 8px 22px rgba(247,179,43,.42);-webkit-appearance:none}
.gform_wrapper .gform_button:hover,.gform_wrapper .gform_next_button:hover{background:var(--accent-600,#e89d10);transform:translateY(-1px)}
.gform_wrapper .gform_previous_button{background:#fff;color:var(--gfm-navy);box-shadow:none;border:1.5px solid var(--gfm-line)}
.gform_wrapper .gform_button:disabled{opacity:.6;cursor:progress}
.gform_wrapper .gform_footer,.gform_wrapper .gform_page_footer{position:relative}
.gform_wrapper .gform_ajax_spinner,.gform_wrapper .gform-loader{position:absolute;right:12px;top:50%;width:18px;height:18px;margin-top:-9px;pointer-events:none}

/* Validation */
.gform_wrapper .gform_validation_errors{border:1px solid #f1c6c0;background:#fdf5f4;border-radius:10px;padding:12px 14px;margin:0 0 18px}
.gform_wrapper .gform_validation_errors h2,.gform_wrapper .gform_submission_error{font-size:14.5px;font-weight:600;color:var(--gfm-error);margin:0}
.gform_wrapper .gform_validation_errors ol{margin:6px 0 0 18px;font-size:13.5px}
.gform_wrapper .gform_validation_errors a{color:var(--gfm-error)}
.gform_wrapper .gfield_error input,.gform_wrapper .gfield_error select,.gform_wrapper .gfield_error textarea{border-color:var(--gfm-error);background:#fdf5f4}
.gform_wrapper .validation_message{color:var(--gfm-error);font-size:13px;font-weight:600;margin-top:6px}

/* Things that must stay hidden now that Gravity Forms' CSS is off */
.gform_wrapper .gform_validation_container,.gform_wrapper .gfield--type-honeypot,
.gform_wrapper .gform_hidden,.gform_wrapper .gfield_visibility_hidden,.gform_wrapper .gfield--type-hidden{
  position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.gform_wrapper .screen-reader-text,.gform_wrapper .hidden_label>.gfield_label{
  position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
iframe[id^=gform_ajax_frame_]{display:none!important}

/* Consent / small print (an HTML field with the CSS class "form-note") */
.gform_wrapper .form-note,.gform_wrapper .gfield--type-html{color:var(--gfm-muted);font-size:12.5px;line-height:1.55}

/* Confirmation */
.gform_confirmation_wrapper{background:#fff;border:1px solid var(--line,#e2e8f0);border-radius:var(--radius,16px);
  padding:40px 32px;text-align:center;box-shadow:var(--shadow,0 10px 30px rgba(11,44,82,.10))}
.gform_confirmation_message{color:var(--muted,#5a6b7b);font-size:15.5px;line-height:1.6}
.gform_confirmation_message::before{content:"✓";display:flex;align-items:center;justify-content:center;width:54px;height:54px;
  margin:0 auto 16px;border-radius:50%;background:#e8f5ed;color:#1d7a3f;font-size:27px;font-weight:700}
.gform_confirmation_message strong,.gform_confirmation_message h2,.gform_confirmation_message h3{
  display:block;font-family:'Poppins',sans-serif;font-size:22px;color:var(--navy,#0b2c52);margin:0 0 8px;line-height:1.3}
.gform_confirmation_message a{color:var(--brand,#2f80c4);font-weight:700}

/* --- Homepage hero: compact, single column ----------------------------- */
.hero-form .gform_wrapper{padding:24px 24px 22px;border:0;background:rgba(255,255,255,.97);backdrop-filter:blur(6px)}
.hero-form .gform_wrapper .gform_title{font-size:20px;margin-bottom:4px}
.hero-form .gform_wrapper .gform_heading{margin-bottom:14px}
.hero-form .gform_wrapper .gform_fields{gap:12px}
.hero-form .gform_wrapper .gfield{grid-column:1/-1}
.hero-form .gform_wrapper .gform_footer{margin-top:16px}
.hero-form .gform_wrapper .gform_button{width:100%}
.hero-form .gform_wrapper .form-note{text-align:center;font-size:11.5px}
.hero-form .gform_confirmation_wrapper{color:var(--ink,#17283a)}

/* --- Multi-step forms: step indicator and page buttons ------------------ */
.gform_wrapper .gf_page_steps{display:flex;gap:6px;margin:0 0 18px;padding:0;border:0}
.gform_wrapper .gf_step{flex:1;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--gfm-muted);
  padding:0 0 8px;border-bottom:3px solid var(--gfm-line);margin:0}
.gform_wrapper .gf_step_number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;
  background:var(--gfm-line);color:var(--gfm-navy);font-size:12.5px;font-weight:700;flex:none}
.gform_wrapper .gf_step_active{color:var(--gfm-navy);border-bottom-color:var(--gfm-brand)}
.gform_wrapper .gf_step_active .gf_step_number{background:var(--gfm-brand);color:#fff}
.gform_wrapper .gf_step_completed .gf_step_number{background:#e8f5ed;color:#1d7a3f}
.gform_wrapper .gf_step_completed{border-bottom-color:#9fd3b1}
.gform_wrapper .gf_step_clear{display:none}
.gform_wrapper .gform_page_footer .gform_previous_button{order:-1}
.gform_wrapper .gform_page_footer .gform_next_button,.gform_wrapper .gform_page_footer .gform_button{flex:1}

/* Hero: one column throughout, shorter note boxes */
.hero-form .gform_wrapper .ginput_complex{grid-template-columns:1fr;gap:10px}
.hero-form .gform_wrapper textarea{min-height:90px;height:110px}
.hero-form .gform_wrapper .gf_step_label{font-size:12.5px}

/* Hero: fixed-height panel. Every step keeps the size of step 1; the fields
   scroll inside while the title, step indicator and buttons stay put. */
.hero-form .gform_wrapper{height:580px;display:flex;flex-direction:column;box-sizing:border-box}
.hero-form .gform_wrapper form{flex:1;min-height:0;display:flex;flex-direction:column}
.hero-form .gform_wrapper .gform_body{flex:1;min-height:0;display:flex;flex-direction:column}
.hero-form .gform_wrapper .gform_page{flex:1;min-height:0;display:flex;flex-direction:column}
.hero-form .gform_wrapper .gform_page_fields{flex:1;min-height:0;overflow-y:auto;
  padding:2px 8px 4px 2px;margin-right:-8px;scrollbar-width:thin;scrollbar-color:var(--gfm-line) transparent}
.hero-form .gform_wrapper .gform_page_footer{flex:none;margin-top:14px}
.hero-form .gform_confirmation_wrapper{min-height:580px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}

/* Phones and tablets: no inner scrolling. A scroll area inside the page
   catches the swipe and people get stuck on the form, so here the panel
   simply grows to fit each step and the page scrolls as normal. */
@media(max-width:980px){
  .hero-form .gform_wrapper{height:auto}
  .hero-form .gform_wrapper .gform_page_fields{overflow:visible;margin-right:0;padding-right:2px}
  .hero-form .gform_confirmation_wrapper{min-height:0}
}

/* --- Contact section: the section supplies the heading, keep one column - */
.contact-form .gform_wrapper .gfield{grid-column:1/-1}

@media(max-width:680px){
  .gform_wrapper{padding:24px 20px 22px}
  .gform_wrapper .gfield{grid-column:1/-1!important}
  .gform_wrapper .gform_title{font-size:22px}
  .gform_wrapper .gform_footer{flex-direction:column;align-items:stretch}
  .gform_wrapper .gform_button{width:100%}
  .gform_wrapper .ginput_complex{grid-template-columns:1fr}
}
