/* ==========================================================================
   Galaxywing — Forms Bridge
   Makes the live Gravity Forms render pixel-match the static reference for:
     • .hero-form     (homepage audit + free-audit page)
     • .ct-form       (contact page)
     • .cr-form       (career page)
     • .gw-form       (get-a-website page)
     • .nl-form       (newsletter footer)
   The booking modal already has all of this in style.css scoped to
   .booking-form-wrap.
   ========================================================================== */

/* --- Layout helpers ---------------------------------------------------- */
.hero-form .gform_fields,
.ct-form .gform_fields,
.cr-form .gform_fields,
.gw-form .gform_fields,
.lh-form .gform_fields,
.wd-form .gform_fields,
.ls-form .gform_fields,
.aic-form .gform_fields,
.aic-form .gform_fields {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

/* Sub-page inquiry forms (Design/Branding/Dev/SEO) — tighter vertical
   rhythm than the global bridge defaults; the label+field+gap stack was
   stretching the card. */
.gw-form .gform_fields,
.lh-form .gform_fields,
.wd-form .gform_fields,
.ls-form .gform_fields,
.aic-form .gform_fields,
.aic-form .gform_fields {
	gap: 6px 14px;
}
.gw-form .gfield,
.lh-form .gfield,
.wd-form .gfield,
.ls-form .gfield { margin: 0; padding: 0; }
.aic-form .gfield { margin: 0; padding: 0; }
.gw-form .gfield_label,
.lh-form .gfield_label,
.wd-form .gfield_label,
.ls-form .gfield_label { margin-bottom: 4px !important; }
.aic-form .gfield_label { margin-bottom: 4px !important; }
.hero-form .gfield--width-full,
.ct-form .gfield--width-full,
.cr-form .gfield--width-full,
.gw-form .gfield--width-full,
.lh-form .gfield--width-full,
.wd-form .gfield--width-full,
.ls-form .gfield--width-full { grid-column: 1 / -1; }
.aic-form .gfield--width-full { grid-column: 1 / -1; }
.hero-form .gfield--width-half,
.ct-form .gfield--width-half,
.cr-form .gfield--width-half,
.gw-form .gfield--width-half,
.lh-form .gfield--width-half,
.wd-form .gfield--width-half,
.ls-form .gfield--width-half { grid-column: span 1; }
.aic-form .gfield--width-half { grid-column: span 1; }

/* hero-form is single-column on the homepage card */
.hero-form-card .hero-form .gform_fields { grid-template-columns: 1fr; }
.hero-form-card .hero-form .gfield        { grid-column: 1 / -1; }

/* --- Hide labels (GF adds screen-reader-text via labelPlacement=hidden_label) --- */
.hero-form .gfield_label,
.ct-form .gfield_label,
.cr-form .gfield_label,
.nl-form .gfield_label {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* gw-form / lh-form / wd-form / ls-form (service sub-page inquiry forms)
   — labels visible above each field, per static HTML */
.gw-form .gfield_label,
.lh-form .gfield_label,
.wd-form .gfield_label,
.ls-form .gfield_label,
.aic-form .gfield_label {
	display: block !important;
	font-family: 'Inter', sans-serif;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #2a3353 !important;
	margin: 0 0 6px 4px !important;
	letter-spacing: 0.02em;
	text-transform: none !important;
	position: static !important;
	width: auto; height: auto;
	clip: auto;
	overflow: visible;
	white-space: normal;
}
.gw-form .gfield_required,
.lh-form .gfield_required,
.wd-form .gfield_required,
.ls-form .gfield_required { color: #c0151c; margin-left: 4px; font-weight: 700; }
.aic-form .gfield_required { color: #c0151c; margin-left: 4px; font-weight: 700; }

/* --- Field containers + icons ----------------------------------------- */
.hero-form .gfield .ginput_container,
.ct-form .gfield .ginput_container,
.cr-form .gfield .ginput_container,
.gw-form .gfield .ginput_container,
.lh-form .gfield .ginput_container,
.wd-form .gfield .ginput_container,
.ls-form .gfield .ginput_container,
.aic-form .gfield .ginput_container,
.nl-form .gfield .ginput_container {
	position: relative;
}

.hero-form .gfield.gf-icon-person   .ginput_container::before,
.hero-form .gfield.gf-icon-email    .ginput_container::before,
.hero-form .gfield.gf-icon-phone    .ginput_container::before,
.hero-form .gfield.gf-icon-website  .ginput_container::before,
.hero-form .gfield.gf-icon-tag      .ginput_container::before,
.hero-form .gfield.gf-icon-message  .ginput_container::before,
.hero-form .gfield.gf-icon-file     .ginput_container::before,
.ct-form  .gfield.gf-icon-person   .ginput_container::before,
.ct-form  .gfield.gf-icon-email    .ginput_container::before,
.ct-form  .gfield.gf-icon-phone    .ginput_container::before,
.ct-form  .gfield.gf-icon-website  .ginput_container::before,
.ct-form  .gfield.gf-icon-tag      .ginput_container::before,
.ct-form  .gfield.gf-icon-message  .ginput_container::before,
.cr-form  .gfield.gf-icon-person   .ginput_container::before,
.cr-form  .gfield.gf-icon-email    .ginput_container::before,
.cr-form  .gfield.gf-icon-phone    .ginput_container::before,
.cr-form  .gfield.gf-icon-website  .ginput_container::before,
.cr-form  .gfield.gf-icon-tag      .ginput_container::before,
.cr-form  .gfield.gf-icon-message  .ginput_container::before,
.cr-form  .gfield.gf-icon-file     .ginput_container::before,
.gw-form  .gfield.gf-icon-person   .ginput_container::before,
.gw-form  .gfield.gf-icon-email    .ginput_container::before,
.gw-form  .gfield.gf-icon-phone    .ginput_container::before,
.gw-form  .gfield.gf-icon-tag      .ginput_container::before,
.gw-form  .gfield.gf-icon-message  .ginput_container::before,
.gw-form  .gfield.gf-icon-website  .ginput_container::before,
.lh-form  .gfield.gf-icon-person   .ginput_container::before,
.lh-form  .gfield.gf-icon-email    .ginput_container::before,
.lh-form  .gfield.gf-icon-phone    .ginput_container::before,
.lh-form  .gfield.gf-icon-tag      .ginput_container::before,
.lh-form  .gfield.gf-icon-message  .ginput_container::before,
.wd-form  .gfield.gf-icon-person   .ginput_container::before,
.wd-form  .gfield.gf-icon-email    .ginput_container::before,
.wd-form  .gfield.gf-icon-phone    .ginput_container::before,
.wd-form  .gfield.gf-icon-tag      .ginput_container::before,
.wd-form  .gfield.gf-icon-message  .ginput_container::before,
.ls-form  .gfield.gf-icon-person   .ginput_container::before,
.aic-form  .gfield.gf-icon-person   .ginput_container::before,
.ls-form  .gfield.gf-icon-email    .ginput_container::before,
.aic-form  .gfield.gf-icon-email    .ginput_container::before,
.ls-form  .gfield.gf-icon-phone    .ginput_container::before,
.aic-form  .gfield.gf-icon-phone    .ginput_container::before,
.ls-form  .gfield.gf-icon-tag      .ginput_container::before,
.aic-form  .gfield.gf-icon-tag      .ginput_container::before,
.ls-form  .gfield.gf-icon-message  .ginput_container::before,
.aic-form  .gfield.gf-icon-message  .ginput_container::before,
.nl-form  .gfield.gf-icon-email    .ginput_container::before {
	font-family: "bootstrap-icons" !important;
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: #6b7290;
	font-size: 16px;
	z-index: 2;
	pointer-events: none;
}

/* unicode codepoints — same as .booking-form-wrap (Bootstrap Icons font) */
.hero-form .gfield.gf-icon-person  .ginput_container::before,
.ct-form  .gfield.gf-icon-person  .ginput_container::before,
.cr-form  .gfield.gf-icon-person  .ginput_container::before,
.gw-form  .gfield.gf-icon-person  .ginput_container::before,
.lh-form  .gfield.gf-icon-person  .ginput_container::before,
.wd-form  .gfield.gf-icon-person  .ginput_container::before,
.ls-form  .gfield.gf-icon-person  .ginput_container::before { content: "\f4da"; }
.aic-form  .gfield.gf-icon-person  .ginput_container::before { content: "\f4da"; }

.hero-form .gfield.gf-icon-email   .ginput_container::before,
.ct-form  .gfield.gf-icon-email   .ginput_container::before,
.cr-form  .gfield.gf-icon-email   .ginput_container::before,
.gw-form  .gfield.gf-icon-email   .ginput_container::before,
.lh-form  .gfield.gf-icon-email   .ginput_container::before,
.wd-form  .gfield.gf-icon-email   .ginput_container::before,
.ls-form  .gfield.gf-icon-email   .ginput_container::before,
.aic-form  .gfield.gf-icon-email   .ginput_container::before,
.nl-form  .gfield.gf-icon-email   .ginput_container::before { content: "\f32e"; }

.hero-form .gfield.gf-icon-phone   .ginput_container::before,
.ct-form  .gfield.gf-icon-phone   .ginput_container::before,
.cr-form  .gfield.gf-icon-phone   .ginput_container::before,
.gw-form  .gfield.gf-icon-phone   .ginput_container::before,
.lh-form  .gfield.gf-icon-phone   .ginput_container::before,
.wd-form  .gfield.gf-icon-phone   .ginput_container::before,
.ls-form  .gfield.gf-icon-phone   .ginput_container::before { content: "\f5c1"; }
.aic-form  .gfield.gf-icon-phone   .ginput_container::before { content: "\f5c1"; }

.hero-form .gfield.gf-icon-website .ginput_container::before,
.ct-form  .gfield.gf-icon-website .ginput_container::before,
.cr-form  .gfield.gf-icon-website .ginput_container::before,
.gw-form  .gfield.gf-icon-website .ginput_container::before { content: "\f3ac"; }

.hero-form .gfield.gf-icon-tag     .ginput_container::before,
.ct-form  .gfield.gf-icon-tag     .ginput_container::before,
.cr-form  .gfield.gf-icon-tag     .ginput_container::before,
.gw-form  .gfield.gf-icon-tag     .ginput_container::before,
.lh-form  .gfield.gf-icon-tag     .ginput_container::before,
.wd-form  .gfield.gf-icon-tag     .ginput_container::before,
.ls-form  .gfield.gf-icon-tag     .ginput_container::before { content: "\f5af"; }
.aic-form  .gfield.gf-icon-tag     .ginput_container::before { content: "\f5af"; }

.hero-form .gfield.gf-icon-message .ginput_container::before,
.ct-form  .gfield.gf-icon-message .ginput_container::before,
.cr-form  .gfield.gf-icon-message .ginput_container::before,
.gw-form  .gfield.gf-icon-message .ginput_container::before,
.lh-form  .gfield.gf-icon-message .ginput_container::before,
.wd-form  .gfield.gf-icon-message .ginput_container::before,
.ls-form  .gfield.gf-icon-message .ginput_container::before { content: "\f268"; top: 14px; transform: none; }
.aic-form  .gfield.gf-icon-message .ginput_container::before { content: "\f268"; top: 14px; transform: none; }

.cr-form .gfield.gf-icon-file     .ginput_container::before { content: "\f438"; }

/* --- Inputs / textarea / select styling ------------------------------- */
.hero-form .ginput_container input[type="text"],
.hero-form .ginput_container input[type="email"],
.hero-form .ginput_container input[type="tel"],
.hero-form .ginput_container input[type="url"],
.hero-form .ginput_container input[type="date"],
.hero-form .ginput_container select,
.hero-form .ginput_container textarea,
.ct-form  .ginput_container input[type="text"],
.ct-form  .ginput_container input[type="email"],
.ct-form  .ginput_container input[type="tel"],
.ct-form  .ginput_container input[type="url"],
.ct-form  .ginput_container input[type="date"],
.ct-form  .ginput_container select,
.ct-form  .ginput_container textarea,
.cr-form  .ginput_container input[type="text"],
.cr-form  .ginput_container input[type="email"],
.cr-form  .ginput_container input[type="tel"],
.cr-form  .ginput_container input[type="url"],
.cr-form  .ginput_container input[type="date"],
.cr-form  .ginput_container input[type="file"],
.cr-form  .ginput_container select,
.cr-form  .ginput_container textarea,
.gw-form  .ginput_container input[type="text"],
.gw-form  .ginput_container input[type="email"],
.gw-form  .ginput_container input[type="url"],
.gw-form  .ginput_container input[type="tel"],
.gw-form  .ginput_container input[type="phone"],
.gw-form  .ginput_container input[type="number"],
.gw-form  .ginput_container select,
.gw-form  .ginput_container textarea,
.lh-form  .ginput_container input[type="text"],
.lh-form  .ginput_container input[type="email"],
.lh-form  .ginput_container input[type="url"],
.lh-form  .ginput_container input[type="tel"],
.lh-form  .ginput_container input[type="phone"],
.lh-form  .ginput_container input[type="number"],
.lh-form  .ginput_container select,
.lh-form  .ginput_container textarea,
.wd-form  .ginput_container input[type="text"],
.wd-form  .ginput_container input[type="email"],
.wd-form  .ginput_container input[type="url"],
.wd-form  .ginput_container input[type="tel"],
.wd-form  .ginput_container input[type="phone"],
.wd-form  .ginput_container input[type="number"],
.wd-form  .ginput_container select,
.wd-form  .ginput_container textarea,
.ls-form  .ginput_container input[type="text"],
.aic-form  .ginput_container input[type="text"],
.ls-form  .ginput_container input[type="email"],
.aic-form  .ginput_container input[type="email"],
.ls-form  .ginput_container input[type="url"],
.aic-form  .ginput_container input[type="url"],
.ls-form  .ginput_container input[type="tel"],
.aic-form  .ginput_container input[type="tel"],
.ls-form  .ginput_container input[type="phone"],
.aic-form  .ginput_container input[type="phone"],
.ls-form  .ginput_container input[type="number"],
.aic-form  .ginput_container input[type="number"],
.ls-form  .ginput_container select,
.aic-form  .ginput_container select,
.ls-form  .ginput_container textarea,
.aic-form  .ginput_container textarea,
.nl-form  .ginput_container input[type="email"] {
	width: 100%;
	height: 52px;
	padding: 5px 18px 5px 18px;
	background: #f5f7fb;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font-size: 15px;
	color: #11142b;
	box-shadow: none;
	/* Animate background-COLOR only — using the `background` shorthand was
	   animating background-image + background-position too, which made the
	   select chevron visibly slide from left to right on hover/focus even
	   though both states share the same `right 18px center` position. */
	transition: border-color .2s, background-color .2s, box-shadow .2s;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	outline: none;
	text-decoration: none;
}

/* Bump left padding when a field has an icon, so text doesn't overlap the icon. */
.gw-form  .gfield[class*="gf-icon-"] .ginput_container input,
.gw-form  .gfield[class*="gf-icon-"] .ginput_container select,
.gw-form  .gfield[class*="gf-icon-"] .ginput_container textarea,
.lh-form  .gfield[class*="gf-icon-"] .ginput_container input,
.lh-form  .gfield[class*="gf-icon-"] .ginput_container select,
.lh-form  .gfield[class*="gf-icon-"] .ginput_container textarea,
.wd-form  .gfield[class*="gf-icon-"] .ginput_container input,
.wd-form  .gfield[class*="gf-icon-"] .ginput_container select,
.wd-form  .gfield[class*="gf-icon-"] .ginput_container textarea,
.ls-form  .gfield[class*="gf-icon-"] .ginput_container input,
.aic-form  .gfield[class*="gf-icon-"] .ginput_container input,
.ls-form  .gfield[class*="gf-icon-"] .ginput_container select,
.aic-form  .gfield[class*="gf-icon-"] .ginput_container select,
.ls-form  .gfield[class*="gf-icon-"] .ginput_container textarea,
.aic-form  .gfield[class*="gf-icon-"] .ginput_container textarea {
	padding-left: 44px;
}

/* Hard-lock background for all sub-page form fields — defeats any per-page CSS
   (and GF framework CSS) that tries to paint select/textarea a different shade. */
.gw-form  .ginput_container input,
.gw-form  .ginput_container select,
.gw-form  .ginput_container textarea,
.lh-form  .ginput_container input,
.lh-form  .ginput_container select,
.lh-form  .ginput_container textarea,
.wd-form  .ginput_container input,
.wd-form  .ginput_container select,
.wd-form  .ginput_container textarea,
.ls-form  .ginput_container input,
.aic-form  .ginput_container input,
.ls-form  .ginput_container select,
.aic-form  .ginput_container select,
.ls-form  .ginput_container textarea,
.aic-form  .ginput_container textarea {
	background-color: #f5f7fb !important;
	border: 1.5px solid transparent !important;
	color: #11142b !important;
	font-size: 15px !important;
}
/* Textarea — multi-line, slightly squarer corners than the pill inputs. */
.gw-form .ginput_container textarea,
.lh-form .ginput_container textarea,
.wd-form .ginput_container textarea,
.ls-form .ginput_container textarea,
.aic-form .ginput_container textarea {
	height: 100px;
	padding-top: 16px;
	padding-bottom: 16px;
	border-radius: 22px;
	line-height: 1.55;
	resize: vertical;
}

.gw-contact textarea {
	height: 120px !important;
}

/* Select dropdown — custom chevron, no native arrow + no wavy hover artifact */
.gw-form .ginput_container select,
.lh-form .ginput_container select,
.wd-form .ginput_container select,
.ls-form .ginput_container select,
.aic-form .ginput_container select {
	padding-right: 44px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%2311142b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 14px 10px;
	cursor: pointer;
	text-decoration: none;
	-webkit-text-decoration: none;
}
.gw-form .ginput_container select:hover,
.gw-form .ginput_container select:focus,
.gw-form .ginput_container select:active,
.lh-form .ginput_container select:hover,
.lh-form .ginput_container select:focus,
.lh-form .ginput_container select:active,
.wd-form .ginput_container select:hover,
.wd-form .ginput_container select:focus,
.wd-form .ginput_container select:active,
.ls-form .ginput_container select:hover,
.aic-form .ginput_container select:hover,
.ls-form .ginput_container select:focus,
.aic-form .ginput_container select:focus,
.ls-form .ginput_container select:active,
.aic-form .ginput_container select:active {
	text-decoration: none;
	-webkit-text-decoration: none;
	outline: none;
	box-shadow: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%2311142b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 18px center !important;
	background-size: 14px 10px !important;
}
/* Kill spellcheck/grammar wavy lines that browsers can paint on inputs */
.gw-form .ginput_container select,
.gw-form .ginput_container input,
.gw-form .ginput_container textarea,
.lh-form .ginput_container select,
.lh-form .ginput_container input,
.lh-form .ginput_container textarea,
.wd-form .ginput_container select,
.wd-form .ginput_container input,
.wd-form .ginput_container textarea,
.ls-form .ginput_container select,
.aic-form .ginput_container select,
.ls-form .ginput_container input,
.aic-form .ginput_container input,
.ls-form .ginput_container textarea,
.aic-form .ginput_container textarea {
	-webkit-text-decoration-line: none;
	text-decoration-line: none;
}

.hero-form textarea, .ct-form textarea, .cr-form textarea {
	height: 120px;
	border-radius: 18px;
	padding-top: 14px;
	resize: vertical;
}

.hero-form .ginput_container input:focus,
.ct-form  .ginput_container input:focus,
.cr-form  .ginput_container input:focus,
.gw-form  .ginput_container input:focus,
.lh-form  .ginput_container input:focus,
.wd-form  .ginput_container input:focus,
.ls-form  .ginput_container input:focus,
.aic-form  .ginput_container input:focus,
.nl-form  .ginput_container input:focus,
.hero-form .ginput_container textarea:focus,
.ct-form  .ginput_container textarea:focus,
.cr-form  .ginput_container textarea:focus,
.gw-form  .ginput_container textarea:focus,
.lh-form  .ginput_container textarea:focus,
.wd-form  .ginput_container textarea:focus,
.ls-form  .ginput_container textarea:focus,
.aic-form  .ginput_container textarea:focus,
.hero-form .ginput_container select:focus,
.ct-form  .ginput_container select:focus,
.cr-form  .ginput_container select:focus,
.gw-form  .ginput_container select:focus,
.lh-form  .ginput_container select:focus,
.wd-form  .ginput_container select:focus,
.ls-form  .ginput_container select:focus,
.aic-form  .ginput_container select:focus {
	border-color: #7ACC0D !important;
	background-color: #ffffff !important;
	box-shadow: 0 0 0 4px rgba(122, 204, 13, .15) !important;
	outline: none !important;color: #666 !important;
}

::placeholder { color: #8b91ad; opacity: 1; }

/* Sub-page inquiry forms — lighter placeholder than the rest of the bridge */
.gw-form .ginput_container input::placeholder,
.gw-form .ginput_container textarea::placeholder,
.gw-form .ginput_container select::placeholder,
.lh-form .ginput_container input::placeholder,
.lh-form .ginput_container textarea::placeholder,
.lh-form .ginput_container select::placeholder,
.wd-form .ginput_container input::placeholder,
.wd-form .ginput_container textarea::placeholder,
.wd-form .ginput_container select::placeholder,
.ls-form .ginput_container input::placeholder,
.aic-form .ginput_container input::placeholder,
.ls-form .ginput_container textarea::placeholder,
.aic-form .ginput_container textarea::placeholder,
.ls-form .ginput_container select::placeholder,
.aic-form .ginput_container select::placeholder {
	color: #bcc3d4 !important;
	opacity: 1 !important;
}
/* Empty-state select option (the placeholder-equivalent for selects) */
.gw-form .ginput_container select:invalid,
.lh-form .ginput_container select:invalid,
.wd-form .ginput_container select:invalid,
.ls-form .ginput_container select:invalid { color: #bcc3d4 !important; }
.aic-form .ginput_container select:invalid { color: #bcc3d4 !important; }

/* --- Required-field asterisk inside hidden label : nothing extra needed --- */

/* --- Submit button --------------------------------------------------- */
.hero-form .gform_footer,
.ct-form  .gform_footer,
.cr-form  .gform_footer,
.gw-form  .gform_footer,
.lh-form  .gform_footer,
.wd-form  .gform_footer,
.ls-form  .gform_footer,
.aic-form  .gform_footer,
.nl-form  .gform_footer {
	margin-top: 14px;
	padding: 0;
	border: 0;
}

/* Default submit button — light bg sites (hero, contact, career, newsletter): lime gradient on light. */
.hero-form .gform_footer .gform_button,
.ct-form  .gform_footer .gform_button,
.cr-form  .gform_footer .gform_button,
.nl-form  .gform_footer .gform_button,
.hero-form .gform_footer button[type="submit"],
.ct-form  .gform_footer button[type="submit"],
.cr-form  .gform_footer button[type="submit"],
.nl-form  .gform_footer button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	height: 56px;
	padding: 0 28px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #09102e;
	background: linear-gradient(95deg, #7ACC0D 0%, #c5f07a 100%);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: 0 14px 32px -14px rgba(122, 204, 13, .55);
	transition: transform .15s, box-shadow .25s, filter .2s, background .25s, color .2s;
}

.hero-form .gform_footer .gform_button:hover,
.ct-form  .gform_footer .gform_button:hover,
.cr-form  .gform_footer .gform_button:hover,
.nl-form  .gform_footer .gform_button:hover {
	transform: translateY(-2px);
	box-shadow: 0 22px 40px -16px rgba(122, 204, 13, .7);
	filter: brightness(1.02);
}

/* Service sub-page inquiry forms (Design/Branding/Dev/SEO) — navy bg + lime text
   per the static .gw-contact / .lh-contact / .wd-contact / .ls-contact reference.
   !important on color/bg defeats Gravity Forms' framework "Get Free Audit" blue
   gradient that bleeds in from gforms_orbital.min.css on .gform_button. */
.gw-form  .gform_footer .gform_button,
.lh-form  .gform_footer .gform_button,
.wd-form  .gform_footer .gform_button,
.ls-form  .gform_footer .gform_button,
.aic-form  .gform_footer .gform_button,
.gw-form  .gform_footer button[type="submit"],
.lh-form  .gform_footer button[type="submit"],
.wd-form  .gform_footer button[type="submit"],
.ls-form  .gform_footer button[type="submit"],
.aic-form  .gform_footer button[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: auto !important;
	height: auto !important;
	padding: 14px 30px !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	color: #c5f07a !important;
	background: #09102e !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 999px !important;
	cursor: pointer;
	box-shadow: 0 12px 26px rgba(9, 16, 46, .25) !important;
	transition: background .22s ease, color .22s ease, transform .22s ease, box-shadow .22s ease;
	text-decoration: none !important;
}

.gw-form  .gform_footer .gform_button:hover,
.gw-form  .gform_footer .gform_button:focus,
.gw-form  .gform_footer .gform_button:active,
.lh-form  .gform_footer .gform_button:hover,
.lh-form  .gform_footer .gform_button:focus,
.lh-form  .gform_footer .gform_button:active,
.wd-form  .gform_footer .gform_button:hover,
.wd-form  .gform_footer .gform_button:focus,
.wd-form  .gform_footer .gform_button:active,
.ls-form  .gform_footer .gform_button:hover,
.aic-form  .gform_footer .gform_button:hover,
.ls-form  .gform_footer .gform_button:focus,
.aic-form  .gform_footer .gform_button:focus,
.ls-form  .gform_footer .gform_button:active,
.aic-form  .gform_footer .gform_button:active {
	background: #7ACC0D !important;
	background-image: none !important;
	color: #09102e !important;
	transform: translateY(-2px);
	box-shadow: 0 16px 30px rgba(122, 204, 13, .4) !important;
	outline: none !important;
	filter: none !important;
}

.gw-form  .gform_footer .gform_button .gform_button_arrow i,
.lh-form  .gform_footer .gform_button .gform_button_arrow i,
.wd-form  .gform_footer .gform_button .gform_button_arrow i,
.ls-form  .gform_footer .gform_button .gform_button_arrow i { color: inherit !important; }
.aic-form  .gform_footer .gform_button .gform_button_arrow i { color: inherit !important; }

.gform_button_arrow { display: inline-flex; align-items: center; }
.gform_button_arrow i { font-size: 16px; transition: transform .2s; }
.hero-form .gform_button:hover .gform_button_arrow i,
.ct-form  .gform_button:hover .gform_button_arrow i,
.cr-form  .gform_button:hover .gform_button_arrow i,
.gw-form  .gform_button:hover .gform_button_arrow i,
.lh-form  .gform_button:hover .gform_button_arrow i,
.wd-form  .gform_button:hover .gform_button_arrow i,
.ls-form  .gform_button:hover .gform_button_arrow i,
.aic-form  .gform_button:hover .gform_button_arrow i,
.nl-form  .gform_button:hover .gform_button_arrow i { transform: translateX(3px); }

/* --- Validation errors ----------------------------------------------- */
.gfield_error .ginput_container input,
.gfield_error .ginput_container textarea,
.gfield_error .ginput_container select {
	border-color: #d23030 !important;
	background: #fff5f5 !important;
}
.gfield_validation_message {
	font-size: 12px;
	color: #d23030;
	margin-top: 4px;
	padding-left: 18px;
}

/* --- Validation error summary ---------------------------------------- */
.gform_validation_errors {
	background: #fff5f5;
	border: 1px solid #f1cdcd;
	border-left: 4px solid #d23030;
	color: #6a1d1d;
	border-radius: 10px;
	padding: 14px 18px;
	margin-bottom: 14px;
	font-size: 14px;
}
.gform_validation_errors h2 { font-size: 15px; margin: 0 0 6px; }

/* =====================================================================
 * Hero form-card — applies regardless of whether the GF form has the
 * .hero-form class manually set. Scoped to the .hero-form-card wrapper
 * (rendered by banner.php when right_variant = form).
 * =================================================================== */

.hero-form-card .gform_wrapper form .gfield .ginput_container,
.hero-form-card .gform_wrapper form .gfield_html { position: relative; }

/* Inputs / textarea / select — pill style, padded for left-icon */
.hero-form-card .gform_wrapper form .ginput_container input[type="text"],
.hero-form-card .gform_wrapper form .ginput_container input[type="email"],
.hero-form-card .gform_wrapper form .ginput_container input[type="tel"],
.hero-form-card .gform_wrapper form .ginput_container input[type="url"],
.hero-form-card .gform_wrapper form .ginput_container input[type="number"],
.hero-form-card .gform_wrapper form .ginput_container select,
.hero-form-card .gform_wrapper form .ginput_container textarea {
	width: 100%;
	height: 52px;
	padding: 0 18px 0 44px;
	background: #f5f7fb;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: #09102e;
	outline: none;
	transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.hero-form-card .gform_wrapper form .ginput_container textarea {
	height: auto;
	min-height: 96px;
	padding: 14px 18px;
	border-radius: 14px;
}
.hero-form-card .gform_wrapper form .ginput_container input::placeholder,
.hero-form-card .gform_wrapper form .ginput_container textarea::placeholder { color: #94a3b8; }
.hero-form-card .gform_wrapper form .ginput_container input:focus,
.hero-form-card .gform_wrapper form .ginput_container textarea:focus,
.hero-form-card .gform_wrapper form .ginput_container select:focus {
	border-color: #7ACC0D;
	background: #fff;
	box-shadow: 0 0 0 4px rgba(122, 204, 13, 0.15);
}

/* Icons — auto-pick by Gravity Forms field type. No editor config needed. */
.hero-form-card .gform_wrapper form .gfield_text  .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_name  .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_email .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_phone .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_website .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_url .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_textarea .ginput_container::before {
	font-family: "bootstrap-icons" !important;
	font-style: normal;
	font-weight: 400;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: #6b7290;
	font-size: 16px;
	z-index: 2;
	pointer-events: none;
}
.hero-form-card .gform_wrapper form .gfield_text  .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_name  .ginput_container::before { content: "\f4da"; }   /* person-fill */
.hero-form-card .gform_wrapper form .gfield_email .ginput_container::before { content: "\f32e"; }   /* envelope-fill */
.hero-form-card .gform_wrapper form .gfield_phone .ginput_container::before { content: "\f5c1"; }   /* telephone-fill */
.hero-form-card .gform_wrapper form .gfield_website .ginput_container::before,
.hero-form-card .gform_wrapper form .gfield_url     .ginput_container::before { content: "\f3ac"; } /* globe2 */
.hero-form-card .gform_wrapper form .gfield_textarea .ginput_container::before {
	content: "\f268"; top: 14px; transform: none;
} /* chat-left-text-fill */

/* Manual GF CSS classes still win if the editor sets them */
.hero-form-card .gform_wrapper form .gf-icon-person  .ginput_container::before { content: "\f4da" !important; }
.hero-form-card .gform_wrapper form .gf-icon-email   .ginput_container::before { content: "\f32e" !important; }
.hero-form-card .gform_wrapper form .gf-icon-phone   .ginput_container::before { content: "\f5c1" !important; }
.hero-form-card .gform_wrapper form .gf-icon-website .ginput_container::before { content: "\f3ac" !important; }

/* Submit button — pill, lime, with right arrow injected via ::after */
.hero-form-card .gform_wrapper form .gform_footer { padding: 0; margin-top: 14px; }
.hero-form-card .gform_wrapper form .gform_footer input[type="submit"],
.hero-form-card .gform_wrapper form .gform_footer button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: 56px;
	padding: 0 32px;
	background: #7ACC0D;
	color: #09102e !important;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 1.28px;
	text-transform: uppercase;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: none;
	transition: background 0.2s ease, transform 0.15s ease;
}
.hero-form-card .gform_wrapper form .gform_footer input[type="submit"]:hover,
.hero-form-card .gform_wrapper form .gform_footer button[type="submit"]:hover {
	background: #68b10a;
	color: #09102e !important;
}

/* Hide labels (placeholders carry the meaning) */
.hero-form-card .gform_wrapper form .gfield_label,
.hero-form-card .gform_wrapper form .gform-field-label {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px; width: 1px;
	overflow: hidden;
}

/* =====================================================================
 * Hero form-card — overrides for Gravity Forms 2.7+ Orbital framework
 * (uses different DOM than the classic theme). Body prefix beats GF's
 * default rules in the cascade.
 * =================================================================== */

body .hero-form-card .gform_wrapper input[type="text"],
body .hero-form-card .gform_wrapper input[type="email"],
body .hero-form-card .gform_wrapper input[type="tel"],
body .hero-form-card .gform_wrapper input[type="url"],
body .hero-form-card .gform_wrapper input[type="number"],
body .hero-form-card .gform_wrapper select,
body .hero-form-card .gform_wrapper textarea {
	width: 100% !important;
	height: 52px !important;
	padding: 0 18px 0 44px !important;
	background: #f5f7fb !important;
	border: 1.5px solid transparent !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	color: #09102e !important;
	outline: none !important;
	box-shadow: none !important;
}

body .hero-form-card .gform_wrapper textarea {
	height: auto !important;
	min-height: 96px !important;
	padding: 14px 18px !important;
	border-radius: 14px !important;
}

body .hero-form-card .gform_wrapper input::placeholder,
body .hero-form-card .gform_wrapper textarea::placeholder {
	color: #94a3b8 !important;
}

body .hero-form-card .gform_wrapper input:focus,
body .hero-form-card .gform_wrapper textarea:focus,
body .hero-form-card .gform_wrapper select:focus {
	border-color: #7ACC0D !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(122, 204, 13, 0.15) !important;
}

/* Position: ensure parent of input is relative so ::before icon anchors right */
body .hero-form-card .gform_wrapper .gfield,
body .hero-form-card .gform_wrapper .ginput_container,
body .hero-form-card .gform_wrapper .gform-field-label-wrapper,
body .hero-form-card .gform_wrapper .gfield_label_before_complex {
	position: relative !important;
}

/* GF legacy markup pushes .ginput_container right via percentage margin-left
   (intended for forms with side labels). Reset it so inputs sit edge-to-edge. */
body .hero-form-card .gform_wrapper .ginput_container,
body .hero-form-card .gform_wrapper .ginput_container_text,
body .hero-form-card .gform_wrapper .ginput_container_email,
body .hero-form-card .gform_wrapper .ginput_container_phone,
body .hero-form-card .gform_wrapper .ginput_container_website,
body .hero-form-card .gform_wrapper .ginput_container_url,
body .hero-form-card .gform_wrapper .ginput_container_textarea {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

/* Auto-detect icon by GF body class — first matched class wins */
body .hero-form-card .gform_wrapper .gfield_text  > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_name  > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_email > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_phone > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_website > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_url   > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_textarea > .ginput_container::before {
	font-family: "bootstrap-icons" !important;
	font-style: normal !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	-webkit-font-smoothing: antialiased !important;
	position: absolute !important;
	left: 18px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: #6b7290 !important;
	font-size: 16px !important;
	z-index: 5 !important;
	pointer-events: none !important;
}
body .hero-form-card .gform_wrapper .gfield_text   > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_name   > .ginput_container::before { content: "\f4da" !important; } /* person-fill */
body .hero-form-card .gform_wrapper .gfield_email  > .ginput_container::before { content: "\f32e" !important; } /* envelope-fill */
body .hero-form-card .gform_wrapper .gfield_phone  > .ginput_container::before { content: "\f5c1" !important; } /* telephone-fill */
body .hero-form-card .gform_wrapper .gfield_website > .ginput_container::before,
body .hero-form-card .gform_wrapper .gfield_url    > .ginput_container::before { content: "\f3ac" !important; } /* globe2 */
body .hero-form-card .gform_wrapper .gfield_textarea > .ginput_container::before {
	content: "\f268" !important;
	top: 14px !important;
	transform: none !important;
}

/* GF manually-set CSS Class names take priority */
body .hero-form-card .gform_wrapper .gf-icon-person  > .ginput_container::before { content: "\f4da" !important; }
body .hero-form-card .gform_wrapper .gf-icon-email   > .ginput_container::before { content: "\f32e" !important; }
body .hero-form-card .gform_wrapper .gf-icon-phone   > .ginput_container::before { content: "\f5c1" !important; }
body .hero-form-card .gform_wrapper .gf-icon-website > .ginput_container::before { content: "\f3ac" !important; }

/* Submit button — pill, lime */
body .hero-form-card .gform_wrapper input[type="submit"],
body .hero-form-card .gform_wrapper button[type="submit"],
body .hero-form-card .gform_wrapper .gform_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	width: 100% !important;
	height: 56px !important;
	padding: 0 32px !important;
	background: #7ACC0D !important;
	color: #09102e !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: 1.28px !important;
	text-transform: uppercase !important;
	border: none !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	box-shadow: none !important;
}
body .hero-form-card .gform_wrapper input[type="submit"]:hover,
body .hero-form-card .gform_wrapper button[type="submit"]:hover,
body .hero-form-card .gform_wrapper .gform_button:hover {
	background: #68b10a !important;
}

/* Hide labels (placeholders carry the meaning) */
body .hero-form-card .gform_wrapper .gfield_label,
body .hero-form-card .gform_wrapper .gform-field-label,
body .hero-form-card .gform_wrapper .gfield_label_before_complex {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	height: 1px !important; width: 1px !important;
	overflow: hidden !important;
}

/* Field row spacing */
body .hero-form-card .gform_wrapper .gform_fields,
body .hero-form-card .gform_wrapper .gform-grid {
	gap: 12px !important;
}

/* =====================================================================
 * Hero form-card — width + button arrow fix (matches static reference)
 * =================================================================== */

/* Kill any inherited width caps from GF / WP-core so inputs go edge-to-edge */
body .hero-form-card .gform_wrapper,
body .hero-form-card .gform_wrapper form,
body .hero-form-card .gform_wrapper .gform_body,
body .hero-form-card .gform_wrapper .gform-body,
body .hero-form-card .gform_wrapper .gform_fields,
body .hero-form-card .gform_wrapper .gform-grid,
body .hero-form-card .gform_wrapper .gform_footer {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Force fields to full row even if GF saved them with --width-half/quarter */
body .hero-form-card .gform_wrapper .gfield {
	width: 100% !important;
	max-width: none !important;
	grid-column: 1 / -1 !important;
	flex-basis: 100% !important;
	padding: 0 !important;
}

/* Submit-button arrow comes from the GF button text itself ("GET FREE
   AUDIT →" set in GF admin). No CSS-injected ::after — that was creating
   a duplicate arrow when the button text already contained one. */

/* Force every layout-row + col to span full width — kills GF Orbital's
   default 50%/quarter columns that left empty space on the left. */
body .hero-form-card .gform_wrapper .gform-grid-row,
body .hero-form-card .gform_wrapper .gform-body-grid-row,
body .hero-form-card .gform_wrapper .gform_fields > * {
	width: 100% !important;
	max-width: none !important;
	display: block !important;
	flex: 1 1 100% !important;
	grid-column: 1 / -1 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
body .hero-form-card .gform_wrapper .gform-grid-col,
body .hero-form-card .gform_wrapper .gform-body-grid-col,
body .hero-form-card .gform_wrapper .gfield--width-half,
body .hero-form-card .gform_wrapper .gfield--width-third,
body .hero-form-card .gform_wrapper .gfield--width-quarter,
body .hero-form-card .gform_wrapper .gfield--width-three-quarter,
body .hero-form-card .gform_wrapper .gfield--width-two-thirds {
	width: 100% !important;
	max-width: none !important;
	flex-basis: 100% !important;
	grid-column: 1 / -1 !important;
}

/* =====================================================================
 * Booking modal — Legacy GF override
 * GF legacy markup forces .gform_fields to display:block and gives
 * .ginput_container a percentage left-margin (intended for forms with
 * side labels). That breaks the booking modal's two-column grid and
 * pushes inputs to the right. Force a real CSS Grid + edge-to-edge
 * inputs scoped to .booking-form-wrap so other forms are untouched.
 * =================================================================== */

/* In the WP template, .booking-form-wrap and .gform_wrapper are SEPARATE
   elements (the static reference combined them), so padding has to be on
   the wrap itself — the heading + form must not touch the modal edges. */
body .booking-form-wrap {
	padding: 48px 52px !important;
	background: #ffffff !important;
	max-height: calc(100vh - 32px) !important;
	overflow-y: auto !important;
}
body .booking-form-wrap::-webkit-scrollbar { width: 10px; }
body .booking-form-wrap::-webkit-scrollbar-thumb {
	background: rgba(9, 16, 46, 0.18);
	border-radius: 999px;
	border: 3px solid #fff;
}
@media (max-width: 991.98px) {
	body .booking-form-wrap { padding: 36px 28px !important; }
}
body .booking-form-wrap .gform_wrapper .gform-body,
body .booking-form-wrap .gform_wrapper .gform_body {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body .booking-form-wrap .gform_wrapper .gform_fields {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 20px 18px !important;
	width: 100% !important;
}
body .booking-form-wrap .gform_wrapper .gfield {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	float: none !important;
	clear: none !important;
}
/* Half-width = 1 grid col; full-width = both cols */
body .booking-form-wrap .gform_wrapper .gfield--width-half,
body .booking-form-wrap .gform_wrapper .gf_left_half,
body .booking-form-wrap .gform_wrapper .gf_right_half {
	grid-column: span 1 !important;
}
body .booking-form-wrap .gform_wrapper .gfield--width-full,
body .booking-form-wrap .gform_wrapper .gf_full_width {
	grid-column: 1 / -1 !important;
}
/* Orphan-last: a lone half-width field at the end fills the row */
body .booking-form-wrap .gform_wrapper .gfield--width-half:last-child,
body .booking-form-wrap .gform_wrapper .gf_left_half:last-child,
body .booking-form-wrap .gform_wrapper .gf_right_half:last-child {
	grid-column: 1 / -1 !important;
}

/* Reset GF legacy's percentage margin on .ginput_container so inputs
   start at the field's left edge. */
body .booking-form-wrap .gform_wrapper .ginput_container,
body .booking-form-wrap .gform_wrapper .ginput_container_text,
body .booking-form-wrap .gform_wrapper .ginput_container_email,
body .booking-form-wrap .gform_wrapper .ginput_container_phone,
body .booking-form-wrap .gform_wrapper .ginput_container_url,
body .booking-form-wrap .gform_wrapper .ginput_container_select,
body .booking-form-wrap .gform_wrapper .ginput_container_date,
body .booking-form-wrap .gform_wrapper .ginput_container_textarea,
body .booking-form-wrap .gform_wrapper .ginput_container_radio {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: none !important;
}

/* Service-tile radio group sits at full width with a 2-col tile grid */
body .booking-form-wrap .gform_wrapper .gf-service-tiles .ginput_container_radio,
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gfield_radio {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

/* Textarea — half the previous height for a more balanced layout */
body .booking-form-wrap .gform_wrapper textarea {
	min-height: 56px !important;
	height: 100px !important;
	padding: 12px 14px 12px 44px !important;
	resize: vertical !important;
}

/* Force input/select/textarea to a consistent shape — GF legacy gives the
   select a flat 3px radius via --gf-radius and a different height than the
   text inputs. Lock them all to one look. */
body .booking-form-wrap .gform_wrapper input[type="text"],
body .booking-form-wrap .gform_wrapper input[type="email"],
body .booking-form-wrap .gform_wrapper input[type="tel"],
body .booking-form-wrap .gform_wrapper input[type="url"],
body .booking-form-wrap .gform_wrapper input[type="date"],
body .booking-form-wrap .gform_wrapper input[type="number"],
body .booking-form-wrap .gform_wrapper select,
body .booking-form-wrap .gform_wrapper .gfield_select {
	width: 100% !important;
	height: 46px !important;
	padding: 0 14px 0 44px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	color: #09102e !important;
	background-color: #f6f9fc !important;
	border: 1.5px solid rgba(9, 16, 46, 0.08) !important;
	border-radius: 12px !important;
	outline: none !important;
	box-sizing: border-box !important;
	line-height: 1 !important;
}

/* Native <select>: kill the OS chevron, draw our own lime arrow */
body .booking-form-wrap .gform_wrapper select,
body .booking-form-wrap .gform_wrapper .gfield_select {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	cursor: pointer !important;
	padding-right: 42px !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%237ACC0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 18px center !important;
	background-size: 12px 9px !important;
}
body .booking-form-wrap .gform_wrapper select option,
body .booking-form-wrap .gform_wrapper select optgroup {
	background: #ffffff !important;
	color: #1a2240 !important;
	font-size: 14.5px !important;
	padding: 10px 12px !important;
}

/* Focus state — same lime ring on every control */
body .booking-form-wrap .gform_wrapper input:focus,
body .booking-form-wrap .gform_wrapper select:focus,
body .booking-form-wrap .gform_wrapper textarea:focus {
	background-color: #ffffff !important;
	border-color: #7ACC0D !important;
	box-shadow: 0 0 0 4px rgba(122, 204, 13, 0.12) !important;
}

/* Mobile: collapse to single column */
@media (max-width: 520px) {
	body .booking-form-wrap .gform_wrapper .gform_fields {
		grid-template-columns: 1fr !important;
	}
	body .booking-form-wrap .gform_wrapper .gfield--width-half,
	body .booking-form-wrap .gform_wrapper .gf_left_half,
	body .booking-form-wrap .gform_wrapper .gf_right_half {
		grid-column: 1 / -1 !important;
	}
}

/* =====================================================================
 * Booking modal — heading + labels + button + service tiles + icons
 * Mirrors the static reference (style.css `.booking-form-wrap *` block)
 * but rewritten for the WP DOM (booking-form-wrap and gform_wrapper are
 * separate elements) with !important to beat GF legacy CSS.
 * =================================================================== */

/* WP template heading (uses .booking-form-title / .booking-form-sub,
   not .gform_title / .gform_description). Style both, so static + WP
   look identical. */
body .booking-form-wrap .booking-form-head { margin-bottom: 28px; }
body .booking-form-wrap .booking-form-title,
body .booking-form-wrap .gform_title {
	font-family: "Publico Banner", "Fraunces", Georgia, serif !important;
	font-weight: 700 !important;
	font-size: 32px !important;
	line-height: 1.18 !important;
	color: #09102e !important;
	letter-spacing: -0.4px !important;
	margin: 0 0 8px !important;
}
body .booking-form-wrap .booking-form-sub,
body .booking-form-wrap .gform_description {
	color: #64748b !important;
	font-size: 14.5px !important;
	margin: 0 !important;
	display: block !important;
}

/* Field labels — Inter / 13px / dark */
body .booking-form-wrap .gform_wrapper .gfield_label,
body .booking-form-wrap .gform_wrapper .gform-field-label {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #09102e !important;
	letter-spacing: 0.16px !important;
	margin: 0 !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
}
body .booking-form-wrap .gform_wrapper .gfield_required,
body .booking-form-wrap .gform_wrapper .gfield_required_asterisk {
	color: #7ACC0D !important;
	font-weight: 700 !important;
	margin-left: 2px !important;
}
body .booking-form-wrap .gform_wrapper .gfield_description_inline {
	font-weight: 500 !important;
	color: #94a3b8 !important;
	font-size: 11.5px !important;
	letter-spacing: 0 !important;
	margin-left: 4px !important;
}

/* Bootstrap-icon glyph at the left edge of each input */
body .booking-form-wrap .gform_wrapper .ginput_container::before {
	position: absolute !important;
	left: 14px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	color: #94a3b8 !important;
	font-size: 15px !important;
	font-family: "bootstrap-icons" !important;
	pointer-events: none !important;
	transition: color 0.2s !important;
	z-index: 2 !important;
}
body .booking-form-wrap .gform_wrapper .gf-icon-person   > .ginput_container::before { content: "\f4da" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-email    > .ginput_container::before { content: "\f32e" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-phone    > .ginput_container::before { content: "\f5c1" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-website  > .ginput_container::before { content: "\f3ac" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-budget   > .ginput_container::before { content: "\f262" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-date     > .ginput_container::before { content: "\f1e8" !important; }
body .booking-form-wrap .gform_wrapper .gf-icon-message  > .ginput_container::before {
	content: "\f268" !important;
	top: 14px !important;
	transform: none !important;
}
/* Auto-detect by GF type class, in case .gf-icon-* wasn't set in admin */
body .booking-form-wrap .gform_wrapper .gfield--type-text  > .ginput_container::before,
body .booking-form-wrap .gform_wrapper .gfield--type-name  > .ginput_container::before { content: "\f4da" !important; }
body .booking-form-wrap .gform_wrapper .gfield--type-email > .ginput_container::before { content: "\f32e" !important; }
body .booking-form-wrap .gform_wrapper .gfield--type-phone > .ginput_container::before { content: "\f5c1" !important; }
body .booking-form-wrap .gform_wrapper .gfield--type-website > .ginput_container::before,
body .booking-form-wrap .gform_wrapper .gfield--type-url     > .ginput_container::before { content: "\f3ac" !important; }
body .booking-form-wrap .gform_wrapper .gfield--type-date   > .ginput_container::before { content: "\f1e8" !important; }
body .booking-form-wrap .gform_wrapper .gfield--type-textarea > .ginput_container::before {
	content: "\f268" !important;
	top: 14px !important;
	transform: none !important;
}

/* Focus state changes the icon to lime */
body .booking-form-wrap .gform_wrapper .ginput_container:focus-within::before {
	color: #7ACC0D !important;
}

/* Service tiles — interactive radio cards */
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice {
	margin: 0 !important;
	position: relative !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice input[type="radio"] {
	position: absolute !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice label {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 13px 14px !important;
	background: #f6f9fc !important;
	border: 1.5px solid rgba(9, 16, 46, 0.08) !important;
	border-radius: 12px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #09102e !important;
	cursor: pointer !important;
	transition: all 0.22s ease !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	min-width: 100% !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice label i {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 9px !important;
	background: rgba(9, 16, 46, 0.05) !important;
	color: #09102e !important;
	font-size: 14.5px !important;
	flex-shrink: 0 !important;
	transition: background 0.2s ease, color 0.2s ease !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice:hover label {
	border-color: rgba(122, 204, 13, 0.35) !important;
	background: #fff !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice:has(input:checked) label {
	border-color: #7ACC0D !important;
	background: linear-gradient(135deg, rgba(122, 204, 13, 0.1), rgba(122, 204, 13, 0.02)) !important;
	box-shadow: 0 6px 16px rgba(122, 204, 13, 0.15) !important;
}
body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice:has(input:checked) label i {
	background: #7ACC0D !important;
	color: #09102e !important;
}

/* Submit button — full-width gradient pill */
body .booking-form-wrap .gform_wrapper .gform_footer {
	padding: 0 !important;
	margin-top: 26px !important;
}
body .booking-form-wrap .gform_wrapper .gform_button,
body .booking-form-wrap .gform_wrapper input[type="submit"],
body .booking-form-wrap .gform_wrapper button[type="submit"] {
	width: 100% !important;
	height: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 14px !important;
	padding: 16px 28px !important;
	background: linear-gradient(135deg, #7ACC0D 0%, #68b10a 100%) !important;
	color: #09102e !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 800 !important;
	font-size: 15.5px !important;
	letter-spacing: 0.32px !important;
	text-transform: none !important;
	cursor: pointer !important;
	transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
	box-shadow: 0 14px 32px rgba(122, 204, 13, 0.4) !important;
}
body .booking-form-wrap .gform_wrapper .gform_button:hover,
body .booking-form-wrap .gform_wrapper input[type="submit"]:hover,
body .booking-form-wrap .gform_wrapper button[type="submit"]:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 18px 40px rgba(122, 204, 13, 0.55) !important;
	background: linear-gradient(135deg, #7ACC0D 0%, #68b10a 100%) !important;
}
body .booking-form-wrap .gform_wrapper .gform_button_arrow {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50% !important;
	background: #09102e !important;
	color: #fff !important;
	font-size: 13px !important;
	transition: transform 0.25s ease !important;
}
body .booking-form-wrap .gform_wrapper .gform_button:hover .gform_button_arrow {
	transform: translateX(4px) !important;
}

/* Mobile heading scale */
@media (max-width: 991.98px) {
	body .booking-form-wrap .booking-form-title,
	body .booking-form-wrap .gform_title {
		font-size: 26px !important;
	}
}

/* =====================================================================
 * Global GF legacy cleanup
 * Strips the red error halo GF wraps around fields, hides the auto-
 * generated validation summary box, and removes residual side-label
 * indents that leak through on hidden_label / form_sublabel layouts.
 * Applies to every GF legacy form on the site, not just the booking modal.
 * =================================================================== */
.gform_legacy_markup_wrapper li.gfield.gfield_error,
.gform_legacy_markup_wrapper li.gfield.gfield_error.gfield_contains_required.gfield_creditcard_warning {
	background-color: inherit !important;
	margin-bottom: 5px !important;
	border-top: none !important;
	border-bottom: none !important;
	padding-bottom: 0px !important;
	padding-top: 0px !important;
}

.gform_validation_errors { display: none !important; }

html:not([dir="rtl"]) .gform_legacy_markup_wrapper ul.gform_fields:not(.top_label) .clear-multi,
html:not([dir="rtl"]) .gform_legacy_markup_wrapper ul.gform_fields:not(.top_label) .gfield_description,
html:not([dir="rtl"]) .gform_legacy_markup_wrapper ul.gform_fields:not(.top_label) .ginput_container:not(.ginput_container_time):not(.ginput_container_date) {
	margin-left: 0px !important;
	font-weight: 400;
}

/* =====================================================================
 * Universal submit-feedback — visual-only.
 * DOES NOT touch button.disabled or button.innerHTML (that was breaking
 * Gravity Forms' AJAX submission and freezing the form). JS just adds
 * .is-submitting on the <form>; CSS shows a spinner overlay on the
 * submit button + a wait cursor. Auto-cleared by GF's gform_post_render
 * hook OR a 6-second safety timeout.
 * =================================================================== */

form.is-submitting {
	cursor: wait;
}
form.is-submitting [type="submit"],
form.is-submitting button[type="submit"],
form.is-submitting .gform_button {
	position: relative;
	cursor: wait !important;
	padding-right: 44px !important; /* room for the spinner */
}
form.is-submitting [type="submit"]::after,
form.is-submitting button[type="submit"]::after,
form.is-submitting .gform_button::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: gw-spin 0.7s linear infinite;
	opacity: 0.75;
	pointer-events: none;
}

@keyframes gw-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	form.is-submitting [type="submit"]::after,
	form.is-submitting button[type="submit"]::after,
	form.is-submitting .gform_button::after { animation: none !important; }
}

/* =====================================================================
 * Universal validation error styling — same red-bordered card look on
 * every form across the site (Gravity Forms or otherwise).
 *   • Per-field error message  (.gfield_validation_message / .validation_message)
 *   • Top-of-form summary       (.gform_validation_errors)
 *   • Field input border        (.gfield_error inputs / textareas / selects)
 *   • Radio + checkbox group container border
 * =================================================================== */

/* Per-field error message — plain red text, no box / no border / no bg */
.gfield_validation_message,
.validation_message,
.gw-form-error {
	color: #d23030 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	margin-top: 6px !important;
	display: block !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
}
.gfield_validation_message a,
.validation_message a { color: #d23030 !important; text-decoration: underline; }

/* Top-of-form summary — also plain red text, no box */
.gform_validation_errors {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #d23030 !important;
	padding: 0 !important;
	margin-bottom: 12px !important;
	font-size: 14px !important;
	box-shadow: none !important;
}
.gform_validation_errors h2,
.gform_validation_errors > h2,
.gform_validation_errors > .gform_submission_error {
	color: #d23030 !important;
	font-size: 14px !important;
	margin: 0 0 4px !important;
	font-weight: 700 !important;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
}
.gform_validation_errors a { color: #d23030 !important; text-decoration: underline; }

/* Inputs / textarea / select inside an errored field — subtle red border only */
.gfield_error input[type="text"],
.gfield_error input[type="email"],
.gfield_error input[type="tel"],
.gfield_error input[type="url"],
.gfield_error input[type="number"],
.gfield_error input[type="date"],
.gfield_error input[type="password"],
.gfield_error select,
.gfield_error textarea {
	border-color: #d23030 !important;
}

/* Radio / checkbox / service-tile groups in error — no border / box */
.gfield--type-radio.gfield_error,
.gfield--type-checkbox.gfield_error,
.gfield_radio_field.gfield_error,
.gf-service-tiles.gfield_error {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	border-radius: 0 !important;
}
.gfield--type-radio.gfield_error .gchoice label,
.gfield--type-checkbox.gfield_error .gchoice label,
.gf-service-tiles.gfield_error .gchoice label {
	border-color: inherit !important;
}

/* Force the radio/checkbox validation message to render below the tile
   grid (it sometimes lands inside .gfield_radio as a stray grid cell;
   force it to span the full row so it's visible on its own line). */
.gfield--type-radio .gfield_validation_message,
.gfield--type-checkbox .gfield_validation_message,
.gfield_radio_field .gfield_validation_message,
.gf-service-tiles .gfield_validation_message,
.gfield--type-radio .validation_message,
.gfield--type-checkbox .validation_message,
.gfield_radio_field .validation_message,
.gf-service-tiles .validation_message {
	display: block !important;
	width: 100% !important;
	grid-column: 1 / -1 !important;
	margin-top: 8px !important;
	color: #d23030 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	visibility: visible !important;
	opacity: 1 !important;
	height: auto !important;
}

/* Required asterisk in red on every form */
.gfield_required,
.gfield_required_asterisk { color: #d23030 !important; }

/* ====================================================================
   .lh-fc-form (Industry single contact form) — same icon system as
   .ct-form / .hero-form. Adds the icon ::before to .ginput_container
   when the field has gf-icon-* class, plus padding to keep the icon
   from overlapping the placeholder.
   ==================================================================== */
.lh-fc-form .gfield .ginput_container { position: relative; }
.lh-fc-form .gfield.gf-icon-person   .ginput_container::before,
.lh-fc-form .gfield.gf-icon-email    .ginput_container::before,
.lh-fc-form .gfield.gf-icon-phone    .ginput_container::before,
.lh-fc-form .gfield.gf-icon-website  .ginput_container::before,
.lh-fc-form .gfield.gf-icon-tag      .ginput_container::before,
.lh-fc-form .gfield.gf-icon-budget   .ginput_container::before,
.lh-fc-form .gfield.gf-icon-date     .ginput_container::before,
.lh-fc-form .gfield.gf-icon-message  .ginput_container::before,
.lh-fc-form .gfield.gf-icon-file     .ginput_container::before {
	font-family: "bootstrap-icons" !important;
	font-style: normal;
	font-weight: 400;
	font-variant: normal;
	text-transform: none;
	line-height: 1;
	-webkit-font-smoothing: antialiased;
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: #6b7290;
	font-size: 16px;
	z-index: 2;
	pointer-events: none;
}
.lh-fc-form .gfield.gf-icon-person  .ginput_container::before { content: "\f4da"; }
.lh-fc-form .gfield.gf-icon-email   .ginput_container::before { content: "\f32f"; }
.lh-fc-form .gfield.gf-icon-phone   .ginput_container::before { content: "\f5c1"; }
.lh-fc-form .gfield.gf-icon-website .ginput_container::before { content: "\f3ee"; }
.lh-fc-form .gfield.gf-icon-tag     .ginput_container::before { content: "\f5af"; }
.lh-fc-form .gfield.gf-icon-budget  .ginput_container::before { content: "\f632"; }
.lh-fc-form .gfield.gf-icon-date    .ginput_container::before { content: "\f1e8"; }
.lh-fc-form .gfield.gf-icon-message .ginput_container::before { content: "\f268"; top: 18px; transform: none; }
.lh-fc-form .gfield.gf-icon-file    .ginput_container::before { content: "\f438"; }

/* Chevron arrow on the right of every select inside .lh-fc-form
   (was missing — appearance:none kills the native arrow). */
.lh-fc-form .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%237ACC0D' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592c.859 0 1.319 1.013.753 1.658l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 12px;
	padding-right: 38px !important;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
}

/* Reserve left-pad for the icon on every text-like input in lh-fc. */
.lh-fc-form .gfield input[type="text"],
.lh-fc-form .gfield input[type="email"],
.lh-fc-form .gfield input[type="tel"],
.lh-fc-form .gfield input[type="url"],
.lh-fc-form .gfield textarea,
.lh-fc-form .gfield select {
	padding: 14px 16px 14px 46px !important;
	font-size: 14px !important;
	border-radius: 12px !important;
}
.lh-fc-form .gfield textarea { padding-top: 16px !important; min-height: 130px !important; }

/* Force labels visible even when GF marks them as screen-reader-text. */
.lh-fc-form .gfield_label,
.lh-fc-form .gform-field-label {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	white-space: normal !important;
	border: 0 !important;
	display: block !important;
	font-size: 11.5px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: #09102e !important;
}

/* Branding sub-page form is rendered INSIDE .lh-fc-form (Industry wrapper)
   but uses cssClass="lh-form" on the <form> itself — same as the other
   sub-page inquiry forms. Without this override its labels inherit the
   industry uppercase/bold style above, making "BRAND STAGE" look totally
   different from "Channel" / "Platform" / "Audit Depth" / "Stack" on the
   other sub-pages. Re-pin the inner .lh-form labels to the shared sub-page
   label style so all 5 services match. */
.lh-fc-form .lh-form .gfield_label {
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	color: #2a3353 !important;
	margin: 0 0 4px 4px !important;
}

/* The Industry .lh-fc-form rule above pins padding to 14px/16px/14px/46px
   and border-radius to 12px for every input/textarea/select inside the
   wrapper, but the inner .lh-form is supposed to render as a pill with
   the forms-bridge values (height 52px, padding 0 18px, radius 999px,
   icon-padding 44px). Re-override here so the branding sub-page form
   matches the other 4 services. */
.lh-fc-form .lh-form .ginput_container input[type="text"],
.lh-fc-form .lh-form .ginput_container input[type="email"],
.lh-fc-form .lh-form .ginput_container input[type="url"],
.lh-fc-form .lh-form .ginput_container input[type="tel"],
.lh-fc-form .lh-form .ginput_container input[type="phone"],
.lh-fc-form .lh-form .ginput_container input[type="number"],
.lh-fc-form .lh-form .ginput_container select {
	height: 52px !important;
	padding: 0 18px !important;
	border-radius: 999px !important;
	font-size: 15px !important;
	min-height: 0 !important;
}
.lh-fc-form .lh-form .gfield[class*="gf-icon-"] .ginput_container input,
.lh-fc-form .lh-form .gfield[class*="gf-icon-"] .ginput_container select,
.lh-fc-form .lh-form .gfield[class*="gf-icon-"] .ginput_container textarea {
	padding-left: 44px !important;
}
/* Select: keep room for the custom chevron on the right AND force the
   chevron image itself, because the `.lh-fc-form .gfield select` rule at
   the top of this section sets padding+radius but no background-image —
   wiping out the chevron the .lh-form rule was painting. */
.lh-fc-form .lh-form .ginput_container select {
	padding-right: 44px !important;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%2311142b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 18px center !important;
	background-size: 14px 10px !important;
	background-color: #f5f7fb !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
}
.lh-fc-form .lh-form .ginput_container select:hover,
.lh-fc-form .lh-form .ginput_container select:focus,
.lh-fc-form .lh-form .ginput_container select:active {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%2311142b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-position: right 18px center !important;
}
/* Textarea: full-width like inputs, multi-line height, rounded but not pill.
   Triple selector to beat any .lh-fc-form .gfield textarea rule that tries
   to constrain its width or set a different padding/border-radius. */
.lh-fc-form .lh-form .ginput_container textarea,
.lh-fc-form .lh-form .gfield textarea,
.lh-fc-form .gfield.gf-icon-message .ginput_container textarea {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	display: block !important;
	height: 100px !important;
	min-height: 100px !important;
	padding: 16px 18px 16px 44px !important;
	border-radius: 22px !important;
	font-size: 15px !important;
}

/* Force the 2-column grid: name + email on row 1, phone + project on row 2,
   textarea + submit row spans full width. */
.lh-fc-form .gform_fields,
.lh-fc-form ul.gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 16px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 14px !important;
}
.lh-fc-form .gfield { width: auto !important; }
.lh-fc-form .gfield--type-textarea,
.lh-fc-form .gfield.gfield_message,
.lh-fc-form .gfield.gf-icon-message,
.lh-fc-form .gfield_message { grid-column: 1 / -1 !important; }
@media (max-width: 600px) {
	.lh-fc-form .gform_fields,
	.lh-fc-form ul.gform_fields { grid-template-columns: 1fr !important; }
}

/* ====================================================================
   .dsg-contact-form-wrap — DIRECT styling of the AI Dev / service-hub
   contact form wrapper. Mirrors static .dsg-contact-form / .dsg-form-fields
   / .dsg-form-submit rules from service-detail.css 2624-2720 but targets
   the wrapper + GF default classes so it works regardless of any class
   injection. Bulletproof — uses !important throughout so default GF /
   browser styling can't win.
   ==================================================================== */
.dsg-contact-form-wrap {
	padding: 44px !important;
	background: rgba(255, 255, 255, 0.04) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 22px !important;
}
.dsg-contact-form-wrap form,
.dsg-contact-form-wrap .gform_wrapper,
.dsg-contact-form-wrap .gform_legacy_markup_wrapper { margin: 0 !important; }
.dsg-contact-form-wrap .gform_body { width: 100%; }

/* 2-col grid on field list. Layout rule: first 4 fields = half-width (so
   Name+Email pair on row 1, Phone+Select pair on row 2), every later field
   plus any textarea = full-width. Wins regardless of GF's per-field
   "Field Width" admin setting via grid-column overrides. */
body .dsg-contact-form-wrap .gform_fields,
body .dsg-contact-form-wrap ul.gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 22px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
}
body .dsg-contact-form-wrap .gform_fields > .gfield {
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
	max-width: 100% !important;
	min-width: 0 !important;
	grid-column: 1 / -1 !important; /* default: full-width */
}
body .dsg-contact-form-wrap .gform_fields > .gfield:nth-child(-n+4) {
	grid-column: span 1 !important; /* first 4 fields: half-width (pair up) */
}
/* Any textarea is always full-width even if it's in positions 1-4. */
body .dsg-contact-form-wrap .gform_fields > .gfield--type-textarea,
body .dsg-contact-form-wrap .gform_fields > .gfield_textarea,
body .dsg-contact-form-wrap .gform_fields > li:has(textarea) {
	grid-column: 1 / -1 !important;
}

/* Mobile/tablet: stack every field full-width, one per row.
   The desktop 2-col grid squeezed placeholders ("Email addre…",
   "Phone / Wh…", "Your websit…") because Name/Email/Phone/Website
   sat in half-width cells. */
@media (max-width: 767px) {
	body .dsg-contact-form-wrap .gform_fields,
	body .dsg-contact-form-wrap ul.gform_fields {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}
	body .dsg-contact-form-wrap .gform_fields > .gfield,
	body .dsg-contact-form-wrap .gform_fields > .gfield:nth-child(-n+4) {
		grid-column: 1 / -1 !important;
	}
}

/* Labels — force visible above inputs. Overrides every form of label
   hiding GF / themes apply: .screen-reader-text, .visually-hidden,
   gfield_label_before_complex, etc. */
body .dsg-contact-form-wrap .gfield_label,
body .dsg-contact-form-wrap .gform-field-label,
body .dsg-contact-form-wrap label,
body .dsg-contact-form-wrap .gfield .screen-reader-text,
body .dsg-contact-form-wrap .gfield_label.screen-reader-text {
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	-webkit-clip-path: none !important;
	clip-path: none !important;
	overflow: visible !important;
	white-space: normal !important;
	border: 0 !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: rgba(255, 255, 255, 0.6) !important;
	font-family: 'Inter', sans-serif !important;
}
.dsg-contact-form-wrap .gfield_required,
.dsg-contact-form-wrap .gfield_required_asterisk { color: #c5f07a !important; }

.dsg-contact-form-wrap .gfield .ginput_container { position: relative; display: block; }

/* Inputs / select / textarea — dark translucent fill, white text, brand pill. */
.dsg-contact-form-wrap .gfield input[type="text"],
.dsg-contact-form-wrap .gfield input[type="email"],
.dsg-contact-form-wrap .gfield input[type="tel"],
.dsg-contact-form-wrap .gfield input[type="url"],
.dsg-contact-form-wrap .gfield input[type="number"],
.dsg-contact-form-wrap .gfield textarea,
.dsg-contact-form-wrap .gfield select,
.dsg-contact-form-wrap input,
.dsg-contact-form-wrap textarea,
.dsg-contact-form-wrap select {
	width: 100% !important;
	padding: 14px 16px !important;
	background-color: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: 10px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	caret-color: #fff !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.25s ease, background-color 0.25s ease;
}
.dsg-contact-form-wrap textarea {
	min-height: 108px !important;
	resize: vertical;
	line-height: 1.55;
}

.dsg-contact-form textarea,
.dsg-contact-form-wrap textarea {
	height: 60px;
}
.dsg-contact-form-wrap select {
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer;
	padding-right: 44px !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%237ACC0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
.dsg-contact-form-wrap select option,
.dsg-contact-form-wrap select optgroup {
	background: #ffffff !important;
	color: #1a2240 !important;
	padding: 10px 12px !important;
	font-size: 14.5px !important;
}
.dsg-contact-form-wrap input::placeholder,
.dsg-contact-form-wrap textarea::placeholder { color: rgba(255, 255, 255, 0.35) !important; opacity: 1 !important; }
.dsg-contact-form-wrap input:focus,
.dsg-contact-form-wrap textarea:focus,
.dsg-contact-form-wrap select:focus {
	border-color: #7ACC0D !important;
	background-color: rgba(255, 255, 255, 0.09) !important;
}

/* Submit button — lime gradient pill with arrow, full width on the row. */
.dsg-contact-form-wrap .gform_footer { margin-top: 0 !important; padding: 0 !important; }
.dsg-contact-form-wrap .gform_button,
.dsg-contact-form-wrap [type="submit"],
.dsg-contact-form-wrap input[type="submit"],
.dsg-contact-form-wrap button[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 16px 30px !important;
	background: linear-gradient(135deg, #c5f07a 0%, #7ACC0D 100%) !important;
	color: #1a1206 !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	border: 0 !important;
	border-radius: 999px !important;
	cursor: pointer;
	transition: transform 0.25s ease, box-shadow 0.25s ease !important;
	box-shadow: 0 16px 36px -12px rgba(122, 204, 13, 0.5) !important;
	width: auto !important;
	text-shadow: none !important;
	-webkit-text-fill-color: #1a1206 !important;
}
.dsg-contact-form-wrap .gform_button:hover,
.dsg-contact-form-wrap [type="submit"]:hover,
.dsg-contact-form-wrap button[type="submit"]:hover {
	transform: translateY(-2px) !important;
}

/* Validation message — red text below input, breaks out of grid row. */
.dsg-contact-form-wrap .gfield_validation_message,
.dsg-contact-form-wrap .validation_message,
.dsg-contact-form-wrap .gfield_description.validation_message {
	display: block !important;
	color: #ff7b86 !important;
	background: transparent !important;
	border: 0 !important;
	padding: 6px 4px 0 !important;
	margin: 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	clip: auto !important; height: auto !important; width: auto !important;
	white-space: normal !important; overflow: visible !important;
}
.dsg-contact-form-wrap .gfield_error input,
.dsg-contact-form-wrap .gfield_error select,
.dsg-contact-form-wrap .gfield_error textarea {
	border-color: #ff7b86 !important;
	box-shadow: 0 0 0 4px rgba(255, 123, 134, 0.18) !important;
}

/* Browser autofill — keep dark fill, white text. */
.dsg-contact-form-wrap input:-webkit-autofill,
.dsg-contact-form-wrap input:-webkit-autofill:hover,
.dsg-contact-form-wrap input:-webkit-autofill:focus {
	-webkit-text-fill-color: #fff !important;
	-webkit-box-shadow: 0 0 0 1000px rgba(20, 28, 60, 0.95) inset !important;
	caret-color: #fff !important;
	transition: background-color 9999s ease-in-out 0s;
}

@media (max-width: 600px) {
	.dsg-contact-form-wrap { padding: 28px !important; }
	.dsg-contact-form-wrap .gform_fields,
	.dsg-contact-form-wrap ul.gform_fields { grid-template-columns: 1fr !important; }
}

.dsg-contact-form-wrap .gform_fields,
.dsg-contact-form-wrap ul.gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 22px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
}
.dsg-contact-form-wrap .gfield {
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
}

/* Full-width fields: textarea, last child of an odd count, or any field
   immediately followed by a textarea. Mirrors the static .gfield-full
   plus its :has() auto-span rules. */
.dsg-contact-form-wrap .gfield--type-textarea,
.dsg-contact-form-wrap .gfield_textarea,
.dsg-contact-form-wrap .gfield_message,
.dsg-contact-form-wrap .gf-icon-message,
.dsg-contact-form-wrap .gform_fields > .gfield:last-child:not(.gfield--type-textarea) {
	grid-column: 1 / -1 !important;
}
.dsg-contact-form-wrap .gform_fields > .gfield:has(+ .gfield--type-textarea) { grid-column: 1 / -1 !important; }

/* Labels — force visible above inputs (overrides screen-reader-text). */
.dsg-contact-form-wrap .gfield_label,
.dsg-contact-form-wrap .gform-field-label {
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	overflow: visible !important;
	white-space: normal !important;
	border: 0 !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	display: block !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: rgba(255, 255, 255, 0.78) !important;
}
.dsg-contact-form-wrap .gfield_required,
.dsg-contact-form-wrap .gfield_required_asterisk { color: #c5f07a !important; }

.dsg-contact-form-wrap .gfield .ginput_container { position: relative; display: block; }

/* Force ALL GF wrapper divs to fill their grid cell. Without this, GF's
   .ginput_container_select / _text / _email / _phone / _textarea render
   at content-width, leaving the select narrower than the input next to it. */
body .dsg-contact-form-wrap .gfield > .ginput_container,
body .dsg-contact-form-wrap .ginput_container,
body .dsg-contact-form-wrap .ginput_container_text,
body .dsg-contact-form-wrap .ginput_container_email,
body .dsg-contact-form-wrap .ginput_container_phone,
body .dsg-contact-form-wrap .ginput_container_url,
body .dsg-contact-form-wrap .ginput_container_select,
body .dsg-contact-form-wrap .ginput_container_textarea {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
}

/* Kill any icons left over from gf-icon-* / GF Pro field-icon settings —
   the static dsg-contact-form has NO icons inside inputs (label sits above
   the input). Hide ::before pseudo-icons + any nested <i>/<svg> so the
   placeholder doesn't overlap with a stray icon. */
body .dsg-contact-form-wrap .ginput_container::before,
body .dsg-contact-form-wrap .ginput_container > i,
body .dsg-contact-form-wrap .ginput_container > svg,
body .dsg-contact-form-wrap .gfield > i,
body .dsg-contact-form-wrap .gfield_icon {
	display: none !important;
	content: none !important;
}

/* Inputs / select / textarea — match static.dsg-form-fields exactly. */
.dsg-contact-form-wrap .gfield input[type="text"],
.dsg-contact-form-wrap .gfield input[type="email"],
.dsg-contact-form-wrap .gfield input[type="tel"],
.dsg-contact-form-wrap .gfield input[type="url"],
.dsg-contact-form-wrap .gfield input[type="number"],
.dsg-contact-form-wrap .gfield textarea,
.dsg-contact-form-wrap .gfield select {
	width: 100% !important;
	padding: 14px 16px !important;
	background-color: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: 10px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	caret-color: #fff !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color 0.25s ease, background-color 0.25s ease;
}
.dsg-contact-form-wrap .gfield textarea {
	min-height: 108px !important;
	resize: vertical;
	line-height: 1.55;
}
/* Native select arrow — brand lime SVG chevron, exactly like static. */
.dsg-contact-form-wrap .gfield select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	padding-right: 44px !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%237ACC0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
.dsg-contact-form-wrap .gfield select:focus {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 8l6-7 6 7' stroke='%237ACC0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
}
/* Dropdown options on light bg with dark text (always readable, regardless of theme). */
.dsg-contact-form-wrap .gfield select option,
.dsg-contact-form-wrap .gfield select optgroup {
	background: #ffffff !important;
	color: #1a2240 !important;
	padding: 10px 12px !important;
	font-size: 14.5px !important;
}
.dsg-contact-form-wrap .gfield select option:checked {
	background: #f3f6ec !important;
	color: #09102e !important;
}

.dsg-contact-form-wrap .gfield input::placeholder,
.dsg-contact-form-wrap .gfield textarea::placeholder { color: rgba(255, 255, 255, 0.35) !important; opacity: 1 !important; }
.dsg-contact-form-wrap .gfield input:focus,
.dsg-contact-form-wrap .gfield textarea:focus,
.dsg-contact-form-wrap .gfield select:focus {
	border-color: #7ACC0D !important;
	background-color: rgba(255, 255, 255, 0.09) !important;
}

/* Icon system — same gf-icon-* classes used by the booking modal etc. */
.dsg-contact-form-wrap .gfield.gf-icon-person   .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-email    .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-phone    .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-website  .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-tag      .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-message  .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-file     .ginput_container::before,
.dsg-contact-form-wrap .gfield.gf-icon-building .ginput_container::before {
	font-family: "bootstrap-icons" !important;
	font-style: normal;
	font-weight: 400;
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, 0.55);
	font-size: 16px;
	z-index: 2;
	pointer-events: none;
}
.dsg-contact-form-wrap .gfield.gf-icon-person   .ginput_container::before { content: "\f4da"; }
.dsg-contact-form-wrap .gfield.gf-icon-email    .ginput_container::before { content: "\f32e"; }
.dsg-contact-form-wrap .gfield.gf-icon-phone    .ginput_container::before { content: "\f5c1"; }
.dsg-contact-form-wrap .gfield.gf-icon-website  .ginput_container::before { content: "\f3ac"; }
.dsg-contact-form-wrap .gfield.gf-icon-tag      .ginput_container::before { content: "\f5c2"; }
.dsg-contact-form-wrap .gfield.gf-icon-message  .ginput_container::before { content: "\f268"; top: 18px; transform: none; }
.dsg-contact-form-wrap .gfield.gf-icon-building .ginput_container::before { content: "\f175"; }

/* Submit — brand lime pill with arrow. */
.dsg-contact-form-wrap .gform_footer { margin-top: 18px !important; padding: 0 !important; }
.dsg-contact-form-wrap .gform_button,
.dsg-contact-form-wrap [type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 14px 30px !important;
	background: linear-gradient(135deg, #7ACC0D 0%, #68b10a 100%) !important;
	color: #09102e !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 800 !important;
	font-size: 14px !important;
	letter-spacing: 0.32px !important;
	cursor: pointer;
	box-shadow: 0 12px 26px rgba(122, 204, 13, 0.4) !important;
	transition: transform 0.2s, box-shadow 0.2s !important;
	width: auto !important;
	text-shadow: none !important;
}
.dsg-contact-form-wrap .gform_button:hover,
.dsg-contact-form-wrap [type="submit"]:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 16px 30px rgba(122, 204, 13, 0.55) !important;
}

/* Validation message — red text below input, breaks out of grid row. */
.dsg-contact-form-wrap .gfield_validation_message,
.dsg-contact-form-wrap .validation_message,
.dsg-contact-form-wrap .gfield_description.validation_message {
	display: block !important;
	color: #ff7b86 !important;
	background: transparent !important;
	border: 0 !important;
	padding: 6px 4px 0 !important;
	margin: 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	clip: auto !important; height: auto !important; width: auto !important;
	white-space: normal !important; overflow: visible !important;
}
.dsg-contact-form-wrap .gfield_error input,
.dsg-contact-form-wrap .gfield_error select,
.dsg-contact-form-wrap .gfield_error textarea {
	border-color: #ff7b86 !important;
	box-shadow: 0 0 0 4px rgba(255, 123, 134, 0.18) !important;
}

/* Browser autofill: keep dark fill, white text. */
.dsg-contact-form-wrap input:-webkit-autofill,
.dsg-contact-form-wrap input:-webkit-autofill:hover,
.dsg-contact-form-wrap input:-webkit-autofill:focus {
	-webkit-text-fill-color: #fff !important;
	-webkit-box-shadow: 0 0 0 1000px rgba(20, 28, 60, 0.95) inset !important;
	caret-color: #fff !important;
	transition: background-color 9999s ease-in-out 0s;
}

@media (max-width: 600px) {
	.dsg-contact-form-wrap .gform_fields,
	.dsg-contact-form-wrap ul.gform_fields { grid-template-columns: 1fr !important; }
}

/* ====================================================================
   .dsg-contact-form-wrap — FINAL SAFETY NET for SELECT styling. Loaded
   last in this file so it wins source-order against any earlier rule in
   forms-bridge.css. Uses `html body` prefix for max specificity so it
   can't be beaten by Gravity Forms' own stylesheets either. Fixes:
     - selects rendering at content-width (force 100%)
     - lime SVG chevron getting killed by `background:` shorthand resets
     - selects looking visually different from text inputs
   ==================================================================== */
html body .dsg-contact-form-wrap .ginput_container_select,
html body .dsg-contact-form-wrap .gfield .ginput_container_select {
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* Match select height to text inputs: same padding, same line-height,
   same box-sizing → identical 50px box. */
html body .dsg-contact-form-wrap input[type="text"],
html body .dsg-contact-form-wrap input[type="email"],
html body .dsg-contact-form-wrap input[type="tel"],
html body .dsg-contact-form-wrap input[type="url"],
html body .dsg-contact-form-wrap input[type="number"],
html body .dsg-contact-form-wrap select,
html body .dsg-contact-form-wrap .gfield input[type="text"],
html body .dsg-contact-form-wrap .gfield input[type="email"],
html body .dsg-contact-form-wrap .gfield input[type="tel"],
html body .dsg-contact-form-wrap .gfield input[type="url"],
html body .dsg-contact-form-wrap .gfield input[type="number"],
html body .dsg-contact-form-wrap .gfield select,
html body .dsg-contact-form-wrap .ginput_container_select select {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	height: 50px !important;
	line-height: 1.4 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background-color: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: 10px !important;
	outline: none !important;
	box-shadow: none !important;
}
html body .dsg-contact-form-wrap input[type="text"],
html body .dsg-contact-form-wrap input[type="email"],
html body .dsg-contact-form-wrap input[type="tel"],
html body .dsg-contact-form-wrap input[type="url"],
html body .dsg-contact-form-wrap input[type="number"],
html body .dsg-contact-form-wrap .gfield input[type="text"],
html body .dsg-contact-form-wrap .gfield input[type="email"],
html body .dsg-contact-form-wrap .gfield input[type="tel"],
html body .dsg-contact-form-wrap .gfield input[type="url"],
html body .dsg-contact-form-wrap .gfield input[type="number"] {
	padding: 0 16px !important;
}
html body .dsg-contact-form-wrap select,
html body .dsg-contact-form-wrap .gfield select,
html body .dsg-contact-form-wrap .ginput_container_select select {
	padding: 13px 44px 13px 16px !important;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%237ACC0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
}

/* Textarea — locked to 100px tall as requested. Beats the 108px min-height
   set higher up in the file (and any GF defaults) via !important + matching
   specificity. */
html body .dsg-contact-form-wrap textarea,
html body .dsg-contact-form-wrap .gfield textarea,
html body .dsg-contact-form-wrap .ginput_container_textarea textarea {
	height: 100px !important;
	min-height: 100px !important;
	padding: 12px 16px !important;
	line-height: 1.4 !important;
	resize: vertical !important;
}
html body .dsg-contact-form-wrap select:focus,
html body .dsg-contact-form-wrap .gfield select:focus {
	border-color: #7ACC0D !important;
	background-color: rgba(255, 255, 255, 0.09) !important;
}

/* ====================================================================
   .dsg-form-head — Title + "Takes < 2 min"-style pill badge that sits
   above the Gravity Form fields inside .dsg-contact-form-wrap. Used on
   AI Dev / Design / Dev / Branding / SEO contact forms.
   Mirrors the static `<div class="dn-form-card-head">` pattern.
   ==================================================================== */
.dsg-contact-form-wrap .dsg-form-head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px !important;
	margin: 0 0 24px !important;
	padding-bottom: 18px !important;
	border-bottom: 1px solid rgba(122, 204, 13, 0.18) !important;
}
.dsg-contact-form-wrap .dsg-form-title {
	margin: 0 !important;
	font-family: 'Fraunces', serif !important;
	font-weight: 600 !important;
	font-size: clamp(20px, 1.6vw, 24px) !important;
	line-height: 1.2 !important;
	letter-spacing: -0.01em !important;
	color: #fff !important;
}
.dsg-contact-form-wrap .dsg-form-badge {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 7px 14px !important;
	background: rgba(122, 204, 13, 0.12) !important;
	border: 1px solid rgba(122, 204, 13, 0.32) !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #c5f07a !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}
.dsg-contact-form-wrap .dsg-form-badge-dot {
	width: 8px !important;
	height: 8px !important;
	background: #7ACC0D !important;
	border-radius: 50% !important;
	box-shadow: 0 0 8px rgba(122, 204, 13, 0.6) !important;
	flex-shrink: 0 !important;
}

/* (.dsg-price-premium / .dsg-price-cta-gold styling lives in
   service-detail.css — no overrides needed here. The dsg-pricing partial
   maps the old "enterprise" variant slug to "premium" automatically.) */

/* ====================================================================
   BOOKING MODAL — PER-COUNTRY THEME OVERRIDES
   --------------------------------------------------------------------
   The booking modal (#bookingModal / .booking-form-wrap) is shared
   markup that renders on every page. It defaults to lime green via the
   global :root vars (--btn / --orange / --teal / --star).
   When the user is on a country page, body picks up `gw-country-{slug}`
   from the body_class filter in inc/enqueue.php — these rules rebind
   the modal's accent vars + retarget a few hardcoded lime hex values
   inside `#bookingModal` only. NO functionality change, only colour.
   ==================================================================== */

/* Hoist the country accent tokens to BODY level (was modal-only) so any
   form on the country page — booking modal, contact section, future
   banner forms — can use the same colour vars. The vars cascade only
   into elements scoped under .dsg-contact-form-wrap / .booking-form-wrap
   form rules below, so the rest of the page is unaffected. */
body[class*="gw-country-"] {
	/* default fallback values; each country block below overrides them. */
	--gw-modal-accent:      #7ACC0D;
	--gw-modal-accent-2:    #68b10a;
	--gw-modal-accent-soft: #c5f07a;
	--gw-modal-accent-deep: #5fa008;
}

/* Apply the modal accent tokens to the buttons / borders / inputs / pill chips.
   Submit gradient goes accent → accent-2 (slight darken), keeping the
   button visually saturated in the country colour. */
body[class*="gw-country-"] #bookingModal .gform_button,
body[class*="gw-country-"] #bookingModal [type="submit"],
body[class*="gw-country-"] #bookingModal button[type="submit"],
body[class*="gw-country-"] .booking-form-wrap .gform_button,
body[class*="gw-country-"] .booking-form-wrap [type="submit"] {
	background: linear-gradient( 135deg, var(--gw-modal-accent) 0%, var(--gw-modal-accent-2) 100% ) !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	box-shadow: 0 16px 36px -12px color-mix( in srgb, var(--gw-modal-accent) 50%, transparent ) !important;
}
body[class*="gw-country-"] #bookingModal .gform_button:hover,
body[class*="gw-country-"] #bookingModal [type="submit"]:hover,
body[class*="gw-country-"] .booking-form-wrap .gform_button:hover,
body[class*="gw-country-"] .booking-form-wrap [type="submit"]:hover {
	background: linear-gradient( 135deg, var(--gw-modal-accent-2) 0%, var(--gw-modal-accent-deep) 100% ) !important;
}
body[class*="gw-country-"] #bookingModal input:focus,
body[class*="gw-country-"] #bookingModal textarea:focus,
body[class*="gw-country-"] #bookingModal select:focus,
body[class*="gw-country-"] .booking-form-wrap input:focus,
body[class*="gw-country-"] .booking-form-wrap textarea:focus,
body[class*="gw-country-"] .booking-form-wrap select:focus {
	border-color: var(--gw-modal-accent) !important;
	box-shadow: 0 0 0 3px color-mix( in srgb, var(--gw-modal-accent) 22%, transparent ) !important;
}
/* Service-tile / radio chips — selected/checked state. */
body[class*="gw-country-"] #bookingModal .gf-service-tiles input[type="radio"]:checked + label,
body[class*="gw-country-"] #bookingModal .gfield_radio input[type="radio"]:checked + label,
body[class*="gw-country-"] .booking-form-wrap .gf-service-tiles input[type="radio"]:checked + label,
body[class*="gw-country-"] .booking-form-wrap .gfield_radio input[type="radio"]:checked + label {
	border-color: var(--gw-modal-accent) !important;
	background: color-mix( in srgb, var(--gw-modal-accent) 10%, transparent ) !important;
}
/* Eyebrow pill / icons inside modal. */
body[class*="gw-country-"] #bookingModal .gform_heading i,
body[class*="gw-country-"] #bookingModal .ginput_container::before,
body[class*="gw-country-"] #bookingModal .gform_reassure i,
body[class*="gw-country-"] .booking-form-wrap .gform_heading i,
body[class*="gw-country-"] .booking-form-wrap .ginput_container::before,
body[class*="gw-country-"] .booking-form-wrap .gform_reassure i {
	color: var(--gw-modal-accent) !important;
}
/* Required asterisk + accent text. */
body[class*="gw-country-"] #bookingModal .gfield_required,
body[class*="gw-country-"] #bookingModal .gfield_required_asterisk,
body[class*="gw-country-"] .booking-form-wrap .gfield_required,
body[class*="gw-country-"] .booking-form-wrap .gfield_required_asterisk {
	color: var(--gw-modal-accent) !important;
}

/* USA — Stars-and-Stripes red.
   Vars hoisted to body level (was scoped to #bookingModal / .booking-form-wrap)
   so they cascade into every descendant — booking modal, contact forms,
   blog section, .cl-* partials, brand-var rebinds. */
body.gw-country-usa {
	--gw-modal-accent:      #B22234;  /* USA flag red */
	--gw-modal-accent-2:    #8a1a28;
	--gw-modal-accent-soft: #ffd6db;
	--gw-modal-accent-deep: #5d111c;
}

/* UK — pillar-box red on navy. */
body.gw-country-uk {
	--gw-modal-accent:      #C8102E;  /* British red */
	--gw-modal-accent-2:    #a90c25;
	--gw-modal-accent-soft: #ffd9df;
	--gw-modal-accent-deep: #80091c;
}

/* UAE / Dubai — gold on dark. */
body.gw-country-uae,
body.gw-country-dubai {
	--gw-modal-accent:      #D4AF37;  /* champagne gold */
	--gw-modal-accent-2:    #b8932a;
	--gw-modal-accent-soft: #f6e7b3;
	--gw-modal-accent-deep: #8a6d1c;
}

/* Australia — bottle green + ochre gold accent. */
body.gw-country-australia {
	--gw-modal-accent:      #0B6E4F;  /* AU bottle green */
	--gw-modal-accent-2:    #075238;
	--gw-modal-accent-soft: #cfe9dd;
	--gw-modal-accent-deep: #033723;
}

/* Canada — maple-leaf red. */
body.gw-country-canada {
	--gw-modal-accent:      #D80621;  /* Canadian flag red */
	--gw-modal-accent-2:    #a90519;
	--gw-modal-accent-soft: #ffd1d6;
	--gw-modal-accent-deep: #74030f;
}

/* ====================================================================
   COUNTRY CONTACT FORM — accent override on .dsg-contact-form-wrap
   --------------------------------------------------------------------
   Each country contact partial now carries `.dsg-contact-form-wrap`
   alongside its own wrapper class (us-contact-form-wrap / uk-contact-card
   / ae-contact-form-wrap / au-cf-form-wrap). The base bullet-proof form
   styling from earlier in this file (dark glass card, locked input
   heights, label visibility, gradient submit pill, etc.) applies as-is.
   The block below ONLY swaps the lime accent (#7ACC0D) to the country
   accent variable. No structural change. Functionality unchanged.
   ==================================================================== */

/* SUBMIT BUTTON — solid country gradient (accent → accent-2).
   Earlier gradient went from accent-soft (pastel) to accent which made
   the button surface read mostly pastel. Now it goes accent → accent-2
   (slight darken) so the visible colour IS the country accent. */
body[class*="gw-country-"] .dsg-contact-form-wrap .gform_button,
body[class*="gw-country-"] .dsg-contact-form-wrap [type="submit"],
body[class*="gw-country-"] .dsg-contact-form-wrap input[type="submit"],
body[class*="gw-country-"] .dsg-contact-form-wrap button[type="submit"] {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	box-shadow: 0 16px 36px -12px color-mix( in srgb, var(--gw-modal-accent) 50%, transparent ) !important;
}
body[class*="gw-country-"] .dsg-contact-form-wrap .gform_button:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap [type="submit"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap button[type="submit"]:hover {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent-2)    0%,
		var(--gw-modal-accent-deep) 100%
	) !important;
}

/* INPUT / SELECT / TEXTAREA — focus border + ring use country accent. */
body[class*="gw-country-"] .dsg-contact-form-wrap input:focus,
body[class*="gw-country-"] .dsg-contact-form-wrap textarea:focus,
body[class*="gw-country-"] .dsg-contact-form-wrap select:focus,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input:focus,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield textarea:focus,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield select:focus {
	border-color: var(--gw-modal-accent) !important;
	box-shadow: 0 0 0 3px color-mix( in srgb, var(--gw-modal-accent) 22%, transparent ) !important;
	background-color: color-mix( in srgb, var(--gw-modal-accent) 4%, rgba(255,255,255,0.06) ) !important;
}

/* SELECT chevron — replace the lime SVG arrow with a CSS mask painted
   in the country accent so it inherits the variable. The same chevron
   shape, just country-coloured. */
body[class*="gw-country-"] .dsg-contact-form-wrap select,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield select,
html body[class*="gw-country-"] .dsg-contact-form-wrap select,
html body[class*="gw-country-"] .dsg-contact-form-wrap .gfield select,
html body[class*="gw-country-"] .dsg-contact-form-wrap .ginput_container_select select {
	/* Hide the lime SVG that's set on the base rule. */
	background-image: none !important;
	/* Overlay our masked chevron via padding + ::before? Not possible on
	   bare select, so use a coloured background-image SVG with the var
	   value injected. We re-encode the chevron with currentColor and use
	   a color mask. The simplest path: regenerate the SVG with a fixed
	   stroke colour per country block (below).  This rule just clears
	   the lime; per-country rules below set the country chevron. */
}

/* Per-country chevron SVGs (lime, red, navy-red, gold, green, canadian-red).
   The SVG stroke is inlined with each country's hex so we don't depend
   on currentColor inside background-image (which CSS doesn't support). */
body.gw-country-usa .dsg-contact-form-wrap select,
body.gw-country-usa .dsg-contact-form-wrap .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%23B22234' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
body.gw-country-uk .dsg-contact-form-wrap select,
body.gw-country-uk .dsg-contact-form-wrap .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%23C8102E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
body.gw-country-uae .dsg-contact-form-wrap select,
body.gw-country-uae .dsg-contact-form-wrap .gfield select,
body.gw-country-dubai .dsg-contact-form-wrap select,
body.gw-country-dubai .dsg-contact-form-wrap .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%23D4AF37' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
body.gw-country-australia .dsg-contact-form-wrap select,
body.gw-country-australia .dsg-contact-form-wrap .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%230B6E4F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}
body.gw-country-canada .dsg-contact-form-wrap select,
body.gw-country-canada .dsg-contact-form-wrap .gfield select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpath d='M1 1l6 7 6-7' stroke='%23D80621' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px 9px !important;
}

/* REQUIRED ASTERISK + ICONS — country accent. */
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield_required,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield_required_asterisk,
body[class*="gw-country-"] .dsg-contact-form-wrap .gform_heading i,
body[class*="gw-country-"] .dsg-contact-form-wrap .ginput_container::before,
body[class*="gw-country-"] .dsg-contact-form-wrap .gform_reassure i {
	color: var(--gw-modal-accent) !important;
}

/* RADIO / SERVICE-TILE selected state — country accent. */
body[class*="gw-country-"] .dsg-contact-form-wrap .gf-service-tiles input[type="radio"]:checked + label,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield_radio input[type="radio"]:checked + label {
	border-color: var(--gw-modal-accent) !important;
	background: color-mix( in srgb, var(--gw-modal-accent) 12%, transparent ) !important;
	color: var(--gw-modal-accent) !important;
}

/* CARD OUTER — subtle country-tinted ring on idle, stronger on hover.
   Matches the AI-Dev reference (light translucent border) but keeps the
   country palette readable around the card edges. */
body[class*="gw-country-"] .dsg-contact-form-wrap {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 28%, rgba(255,255,255,0.1) ) !important;
	box-shadow: 0 24px 60px color-mix( in srgb, var(--gw-modal-accent) 18%, rgba(9, 16, 46, 0.45) ) !important;
	transition: border-color .25s ease, box-shadow .25s ease;
}
body[class*="gw-country-"] .dsg-contact-form-wrap:hover {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 50%, transparent ) !important;
}

/* LABEL — focus-within shifts the label above the active field to the
   country accent (subtle UX feedback, matches the focus-ring colour). */
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield:focus-within > .gfield_label,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield:focus-within > .gform-field-label,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield:focus-within > label {
	color: var(--gw-modal-accent) !important;
}

/* SUBMIT BUTTON HOVER — stronger country-colour glow (lift + saturated shadow). */
body[class*="gw-country-"] .dsg-contact-form-wrap .gform_button:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap [type="submit"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap button[type="submit"]:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 22px 44px -10px color-mix( in srgb, var(--gw-modal-accent) 65%, transparent ) !important;
}

/* INPUT IDLE BORDER — small country tint so the field reads as themed even
   before focus. Hover deepens it. Focus remains the strongest state above. */
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="text"],
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="email"],
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="tel"],
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="url"],
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="number"],
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield textarea,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield select {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 18%, rgba(255,255,255,0.12) ) !important;
}
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="text"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="email"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="tel"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="url"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield input[type="number"]:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield textarea:hover,
body[class*="gw-country-"] .dsg-contact-form-wrap .gfield select:hover {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 40%, rgba(255,255,255,0.12) ) !important;
}

/* ====================================================================
   GENERIC .blog-section — per-country accent override
   --------------------------------------------------------------------
   The shared `.blog-section` partial (template-parts/sections/blog-section.php,
   used on the UK page as `blog_uk`) hardcodes `var(--btn)` (the lime brand
   token #7ACC0D) for badges, tags, hover titles, CTA buttons, and
   background glows. On country pages we already cascade `--gw-modal-accent`
   onto <body>, so re-paint every lime touchpoint with the country colour.
   Country pages with their own scoped blog partials (.us-blog, .ae-blog,
   .au-blog, .ca-blog) already use their own palette and aren't affected.
   ==================================================================== */

/* Background glow — country-tinted instead of lime glow. */
body[class*="gw-country-"] .blog-section .blog-bg-glow-a {
	background: radial-gradient( circle, color-mix( in srgb, var(--gw-modal-accent) 16%, transparent ) 0%, transparent 65% ) !important;
}

/* Card hover — border + outline shadow swap to country accent. */
body[class*="gw-country-"] .blog-section .blog-card:hover {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 30%, transparent ) !important;
	box-shadow:
		0 20px 45px rgba(9, 16, 46, 0.12),
		0 0 0 1px color-mix( in srgb, var(--gw-modal-accent) 22%, transparent ) !important;
}

/* Decorative pattern reveal on hover. */
body[class*="gw-country-"] .blog-section .blog-card:hover .blog-card-img-pattern {
	color: color-mix( in srgb, var(--gw-modal-accent) 22%, transparent ) !important;
}

/* Tag-icon pill ("📁 Category") — icon swatch + the .blog-card-tag pill. */
body[class*="gw-country-"] .blog-section .blog-card-badge i,
body[class*="gw-country-"] .blog-section .blog-card-tag {
	color: var(--gw-modal-accent) !important;
}

/* Featured-card badge gradient. */
body[class*="gw-country-"] .blog-section .blog-card-badge-featured {
	background: linear-gradient( 135deg, var(--gw-modal-accent) 0%, var(--gw-modal-accent-2) 100% ) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .blog-section .blog-card-badge-featured i {
	color: #fff !important;
}

/* Card title hover colour. */
body[class*="gw-country-"] .blog-section .blog-card:hover .blog-card-title {
	color: var(--gw-modal-accent) !important;
}

/* Inline avatar ring (when blog cards include author chip). */
body[class*="gw-country-"] .blog-section .bca-avatar-sm {
	color: var(--gw-modal-accent) !important;
	border-color: color-mix( in srgb, var(--gw-modal-accent) 30%, transparent ) !important;
}

/* Card-arrow on hover — solid country background, white icon, country glow. */
body[class*="gw-country-"] .blog-section .blog-card:hover .blog-card-arrow {
	background: var(--gw-modal-accent) !important;
	color: #fff !important;
	box-shadow: 0 6px 16px color-mix( in srgb, var(--gw-modal-accent) 40%, transparent ) !important;
}

/* Header CTA pill (".blog-head-cta") — inner span + hover state. */
body[class*="gw-country-"] .blog-section .blog-head-cta span {
	background: var(--gw-modal-accent) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .blog-section .blog-head-cta:hover {
	background: var(--gw-modal-accent) !important;
	color: #fff !important;
	box-shadow: 0 10px 24px color-mix( in srgb, var(--gw-modal-accent) 35%, transparent ) !important;
}
body[class*="gw-country-"] .blog-section .blog-head-cta:hover span {
	background: #fff !important;
	color: var(--gw-modal-accent) !important;
}

/* Below-grid CTA pill (".blog-cta-btn") — hover state + arrow circle. */
body[class*="gw-country-"] .blog-section .blog-cta-btn:hover {
	background: var(--gw-modal-accent) !important;
	color: #fff !important;
	box-shadow: 0 14px 30px color-mix( in srgb, var(--gw-modal-accent) 40%, transparent ) !important;
}
body[class*="gw-country-"] .blog-section .blog-cta-arrow {
	background: var(--gw-modal-accent) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .blog-section .blog-cta-btn:hover .blog-cta-arrow {
	background: #fff !important;
	color: var(--gw-modal-accent) !important;
}

/* ====================================================================
   .grad-light / .grad-dark — per-country gradient repaint
   --------------------------------------------------------------------
   Section headings sitewide use `.grad-light` / `.grad-dark` for the
   accent span (e.g. UK blog: "Insights to <span class='grad-dark'>grow
   your business</span>"). The base classes in style.css use the lime
   palette (#7ACC0D → #c5f07a → #fff for light, #7ACC0D → #3d7c00 →
   #09102e for dark). On country pages we re-paint the gradient with
   the country accent tokens so the heading reads as themed.
   ==================================================================== */
body[class*="gw-country-"] .grad-light {
	background: linear-gradient(
		90deg,
		var(--gw-modal-accent-soft) 0%,
		var(--gw-modal-accent)      100%
	) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
	color: transparent !important;
}
body[class*="gw-country-"] .grad-dark {
	background: linear-gradient(
		90deg,
		var(--gw-modal-accent)      0%,
		var(--gw-modal-accent-deep) 100%
	) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
	color: transparent !important;
}

/* ====================================================================
   BRAND TOKEN REBINDS — `--btn` / `--btn-hover` / `--orange` cascade
   --------------------------------------------------------------------
   The base palette in style.css :root binds `--btn`, `--btn-hover`,
   `--orange`, `--orange-hover`, `--teal` to the lime brand colours.
   These vars are referenced in dozens of shared CSS rules (CTAs,
   hover states, decorative gradients, badge icons). Re-binding them
   on `body[class*="gw-country-"]` flips every `var(--btn)` reference
   on country pages to the country accent automatically. `--star`
   stays gold (not redefined here) so star ratings remain readable.
   ==================================================================== */
body[class*="gw-country-"] {
	--btn:          var(--gw-modal-accent);
	--btn-hover:    var(--gw-modal-accent-2);
	--orange:       var(--gw-modal-accent);
	--orange-hover: var(--gw-modal-accent-2);
	--teal:         var(--gw-modal-accent);
}

/* ====================================================================
   .cl-pricing — UK pricing section uses hardcoded lime hex throughout.
   Repaint each lime touchpoint with the country accent.
   ==================================================================== */
body[class*="gw-country-"] .cl-price-featured {
	border-color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-price-ribbon {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .cl-price ul li i {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-price-amt sup {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-price-featured .cl-price-amt sup {
	color: var(--gw-modal-accent-soft) !important;
}
body[class*="gw-country-"] .cl-price-cta:hover {
	background: color-mix( in srgb, var(--gw-modal-accent) 18%, transparent ) !important;
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-price-featured .cl-price-cta {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #fff !important;
}

/* ====================================================================
   .cl-section-head em / .cl-faq-title em / .cl-why-left h2 em / .cl-quote-stars
   — accent text + stars on shared country-page partials. Repaint to
   country accent when on a country page.
   ==================================================================== */
body[class*="gw-country-"] .cl-section-head h2 em,
body[class*="gw-country-"] .cl-faq-title em,
body[class*="gw-country-"] .cl-why-left h2 em {
	background: linear-gradient(
		90deg,
		var(--gw-modal-accent)      0%,
		var(--gw-modal-accent-deep) 50%,
		#09102e                     100%
	) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
	color: transparent !important;
}
body[class*="gw-country-"] .cl-section-head .cl-eyebrow {
	background: color-mix( in srgb, var(--gw-modal-accent) 14%, transparent ) !important;
	color: var(--gw-modal-accent-deep) !important;
}
body[class*="gw-country-"] .cl-svc-icon {
	background: linear-gradient(
		135deg,
		color-mix( in srgb, var(--gw-modal-accent)   18%, transparent ) 0%,
		color-mix( in srgb, var(--gw-modal-accent-2) 12%, transparent ) 100%
	) !important;
	color: var(--gw-modal-accent-deep) !important;
}
body[class*="gw-country-"] .cl-svc-link {
	color: var(--gw-modal-accent-deep) !important;
}
body[class*="gw-country-"] .cl-svc-link:hover {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-svc:hover {
	border-color: color-mix( in srgb, var(--gw-modal-accent) 45%, transparent ) !important;
}
body[class*="gw-country-"] .cl-quote-stars {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-quote-avatar {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .cl-project-tag {
	background: color-mix( in srgb, var(--gw-modal-accent) 90%, transparent ) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .cl-hero-points li i,
body[class*="gw-country-"] .cl-why-list li i {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-crumb a:hover,
body[class*="gw-country-"] .cl-crumb .cl-crumb-current {
	color: var(--gw-modal-accent) !important;
}
body[class*="gw-country-"] .cl-hero-stat strong .cl-accent,
body[class*="gw-country-"] .cl-why-stat strong .cl-accent {
	background: linear-gradient(
		90deg,
		var(--gw-modal-accent)      0%,
		var(--gw-modal-accent-soft) 100%
	) !important;
	-webkit-background-clip: text !important;
	background-clip: text !important;
	-webkit-text-fill-color: transparent !important;
}
body[class*="gw-country-"] .cl-hero-img-badge {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #fff !important;
}
body[class*="gw-country-"] .cl-btn-primary {
	background: linear-gradient(
		135deg,
		var(--gw-modal-accent)   0%,
		var(--gw-modal-accent-2) 100%
	) !important;
	color: #fff !important;
	box-shadow: 0 10px 26px color-mix( in srgb, var(--gw-modal-accent) 30%, transparent ) !important;
}
body[class*="gw-country-"] .cl-btn-primary:hover {
	box-shadow: 0 14px 32px color-mix( in srgb, var(--gw-modal-accent) 45%, transparent ) !important;
}

/* Australia page contact form: keep validation state readable. */
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_label,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gform-field-label,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error .gfield_label,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error .gform-field-label {
	color: #007a5a !important;
	-webkit-text-fill-color: #007a5a !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
}

body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_required,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_required_text,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_required_asterisk {
	display: none !important;
}

body .au-cf .dsg-contact-form-wrap form.au-cf-form input[type="text"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form input[type="email"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form input[type="tel"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form input[type="url"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form input[type="number"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form select,
body .au-cf .dsg-contact-form-wrap form.au-cf-form textarea,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input[type="text"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input[type="email"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input[type="tel"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input[type="url"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input[type="number"],
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error select,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error textarea {
	background-color: #fffaf1 !important;
	border-color: #ccdcd0 !important;
	color: #003f31 !important;
	-webkit-text-fill-color: #003f31 !important;
	caret-color: #003f31 !important;
}

body .au-cf .dsg-contact-form-wrap form.au-cf-form input::placeholder,
body .au-cf .dsg-contact-form-wrap form.au-cf-form textarea::placeholder,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error input::placeholder,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_error textarea::placeholder {
	color: #9b8c70 !important;
	-webkit-text-fill-color: #9b8c70 !important;
	opacity: 1 !important;
}

body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_validation_message,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .validation_message,
body .au-cf .dsg-contact-form-wrap form.au-cf-form .gfield_description.validation_message {
	margin: 7px 0 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	color: #d70f3f !important;
	font-size: 13px !important;
	font-weight: 600 !important;
}

/* Australia validation final override: shared DSG rules must not turn fields white. */
html body .au-cf .dsg-contact-form-wrap label,
html body .au-cf .dsg-contact-form-wrap .gfield label,
html body .au-cf .dsg-contact-form-wrap .gfield_label,
html body .au-cf .dsg-contact-form-wrap .gform-field-label,
html body .au-cf .dsg-contact-form-wrap .gform_wrapper label,
html body .au-cf .dsg-contact-form-wrap .gform_wrapper .gfield_label,
html body .au-cf .dsg-contact-form-wrap .gform_wrapper .gform-field-label,
html body .au-cf .dsg-contact-form-wrap .gfield_error label,
html body .au-cf .dsg-contact-form-wrap .gfield_error .gfield_label,
html body .au-cf .dsg-contact-form-wrap .gfield_error .gform-field-label,
html body .au-cf .dsg-contact-form-wrap .gfield_label_before_complex,
html body .au-cf .dsg-contact-form-wrap legend,
html body .au-cf .dsg-contact-form-wrap legend.gfield_label {
	color: #007a5a !important;
	-webkit-text-fill-color: #007a5a !important;
	text-shadow: none !important;
	opacity: 1 !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	text-transform: none !important;
}

html body .au-cf .dsg-contact-form-wrap input,
html body .au-cf .dsg-contact-form-wrap select,
html body .au-cf .dsg-contact-form-wrap textarea,
html body .au-cf .dsg-contact-form-wrap .gfield input,
html body .au-cf .dsg-contact-form-wrap .gfield select,
html body .au-cf .dsg-contact-form-wrap .gfield textarea,
html body .au-cf .dsg-contact-form-wrap .gfield_error input,
html body .au-cf .dsg-contact-form-wrap .gfield_error select,
html body .au-cf .dsg-contact-form-wrap .gfield_error textarea {
	background-color: #fffaf1 !important;
	color: #003f31 !important;
	-webkit-text-fill-color: #003f31 !important;
	caret-color: #003f31 !important;
	text-shadow: none !important;
}

html body .au-cf .dsg-contact-form-wrap input::placeholder,
html body .au-cf .dsg-contact-form-wrap textarea::placeholder,
html body .au-cf .dsg-contact-form-wrap .gfield input::placeholder,
html body .au-cf .dsg-contact-form-wrap .gfield textarea::placeholder,
html body .au-cf .dsg-contact-form-wrap .gfield_error input::placeholder,
html body .au-cf .dsg-contact-form-wrap .gfield_error textarea::placeholder {
	color: #9b8c70 !important;
	-webkit-text-fill-color: #9b8c70 !important;
	opacity: 1 !important;
	text-shadow: none !important;
}

/* Form 247, field 6 — force textarea height across all viewports */
#input_247_6 {
	height: 100px !important;
}


.gform_legacy_markup_wrapper ul.gfield_checkbox li label, .gform_legacy_markup_wrapper ul.gfield_radio li label {
    min-width: 100% !important;
}
    .gform_legacy_markup_wrapper ul.gform_fields li.gfield {
        padding-right: 0 !important;
    }

    .gform_wrapper .top_label li ul.gfield_checkbox, .gform_wrapper .top_label li ul.gfield_radio {
        width: 100% !important;
    }




@media (max-width: 767px) {


body .booking-form-wrap .gform_wrapper .gf-service-tiles .gchoice label {
    font-size: 13px !important;
}
    body .booking-form-wrap {
        padding: 36px 22px !important;
    }
body .booking-form-wrap .gform_wrapper .gform_button, body .booking-form-wrap .gform_wrapper input[type="submit"], body .booking-form-wrap .gform_wrapper button[type="submit"] {
    padding: 12px 25px !important;
    font-size: 14px !important;
}
body .hero-form-card .gform_wrapper input[type="text"], body .hero-form-card .gform_wrapper input[type="email"], body .hero-form-card .gform_wrapper input[type="tel"], body .hero-form-card .gform_wrapper input[type="url"], body .hero-form-card .gform_wrapper input[type="number"], body .hero-form-card .gform_wrapper select, body .hero-form-card .gform_wrapper textarea {
    height: 46px !important;
    padding: 0 18px 0 44px !important;
    font-size: 14px !important;

}
body .hero-form-card .gform_wrapper input[type="submit"], body .hero-form-card .gform_wrapper button[type="submit"], body .hero-form-card .gform_wrapper .gform_button {
    height: 48px !important;
    padding: 0 25px !important;
    font-size: 14px !important;
}




}