/* FORM */
.form-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start;}
.form-intro h2{margin-bottom:16px;}
.form-intro p{font-size:16px;color:var(--body);margin:0 0 24px;}
.assurance{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;}
.assurance .ai{width:36px;height:36px;flex:0 0 36px;border-radius:9px;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;}
.assurance .at{font-size:15px;font-weight:700;}
.assurance .as{font-size:13.5px;color:var(--body);}
.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:34px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field.full{grid-column:1 / -1;}
.field label{font-size:13px;font-weight:600;color:var(--ink);}
.field label .req{color:var(--brand);}
.field input,.field select,.field textarea{font-family:inherit;font-size:15px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;transition:.15s;width:100%;}
.field input::placeholder,.field textarea::placeholder{color:#aab2c2;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(19,81,216,.12);}
.field textarea{resize:vertical;min-height:110px;}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}
.consent{display:flex;gap:11px;align-items:flex-start;margin:6px 0 4px;font-size:13px;color:var(--body);}
.consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--brand);flex:0 0 16px;}
.form-foot{font-size:12.5px;color:var(--muted);margin-top:14px;}

/* ---- Formidable Forms enquiry form, restyled to the Progryss design ---- */
.form-card .frm_forms,.form-card .frm_forms form{max-width:none;margin:0;}
.form-card .frm_form_fields>fieldset{border:0;margin:0;padding:0;}
.form-card .frm_form_fields legend{display:none;}
/* Formidable ships a 12-column grid framework + its own field spans; override to a
   clean 2-column layout (!important beats Formidable's higher-specificity rules). */
.form-card .frm_fields_container{display:grid !important;grid-template-columns:1fr 1fr !important;gap:18px !important;}
.form-card .frm_form_field{margin:0 !important;padding:0 !important;width:auto !important;grid-column:auto !important;}
/* Formidable's honeypot is only visibility:hidden, so in a grid it still reserves
   a whole row. Take it out of the layout entirely — it stays a spam trap. */
.form-card .frm_verify{display:none !important;}
/* Message + consent span the full width. */
.form-card .frm_form_field:has(textarea),
.form-card .frm_form_field:has(input[type="checkbox"]){grid-column:1 / -1 !important;}
.form-card .frm_primary_label{display:block;font-size:13px;font-weight:600;color:var(--ink);padding:0 0 7px;margin:0;}
.form-card .frm_required{color:var(--brand);}
.form-card .frm_forms input[type="text"],
.form-card .frm_forms input[type="email"],
.form-card .frm_forms input[type="tel"],
.form-card .frm_forms input[type="number"],
.form-card .frm_forms select,
.form-card .frm_forms textarea{font-family:inherit;font-size:15px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;width:100%;
  box-shadow:none;transition:.15s;line-height:1.3;}
.form-card .frm_forms input::placeholder,.form-card .frm_forms textarea::placeholder{color:#aab2c2;}
.form-card .frm_forms input:focus,
.form-card .frm_forms select:focus,
.form-card .frm_forms textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(19,81,216,.12);}
.form-card .frm_forms textarea{resize:vertical;min-height:110px;}
.form-card .frm_forms select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}
/* Consent checkbox: hide the field name, show only the agreement line. */
.form-card .frm_form_field:has(input[type="checkbox"])>.frm_primary_label{display:none;}
.form-card .frm_checkbox label,.form-card .frm_opt_container label{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400;color:var(--body);}
.form-card .frm_checkbox input[type="checkbox"]{margin-top:3px;width:16px;height:16px;accent-color:var(--brand);flex:0 0 16px;}
/* Submit button -> brand primary, full width. Formidable wraps the submit in its
   own .frm_form_field, so the span has to be applied to that wrapper — the
   .frm_submit inside it is not the grid item. */
.form-card .frm_fields_container>.frm_form_field:has(.frm_submit){grid-column:1 / -1 !important;}
.form-card .frm_submit{grid-column:1 / -1;margin:6px 0 0;clear:both;text-align:left;width:100%;}
.form-card .frm_button_submit{display:inline-flex;width:100% !important;align-items:center;justify-content:center;gap:8px;
  background:var(--brand) !important;color:#fff !important;font-family:inherit;font-weight:600;font-size:15px;
  border:1.5px solid transparent !important;border-radius:10px !important;padding:13px 22px !important;cursor:pointer;
  box-shadow:0 6px 16px rgba(19,81,216,.22);transition:.18s;}
.form-card .frm_button_submit:hover{background:var(--brand-dark) !important;transform:translateY(-1px);}
/* The design pairs the label with an arrow; Formidable renders a bare <button>,
   so the icon is drawn as a masked pseudo-element in the same currentColor. */
.form-card .frm_button_submit::after{content:"";width:18px;height:18px;flex:none;background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;}
.form-card .frm_error,.form-card .frm_error_style{color:#d33;font-size:12.5px;margin-top:5px;}
.form-card .frm_message{color:var(--brand);font-weight:600;}

/* RESPONSIVE */
@media(max-width:960px){.form-wrap{grid-template-columns:1fr;gap:32px}}
/* Single column on phones, as in the reference. The container's 2-column rule
   above is !important (it has to beat Formidable's own grid), so this override
   needs !important too or it loses regardless of source order. */
@media(max-width:560px){.form-grid{grid-template-columns:1fr}
  .form-card .frm_fields_container{grid-template-columns:1fr !important}
  .form-card{padding:24px}}
