/* gw_contact — Contact page (Figma 49:1274, frame 49:1458 at 1920). Tokens only.
   Comp values: teal-500 ground edge to edge; eyebrow 35.5px SemiBold 0.15em citron-500 at
   x 441 / y 528 (heading-l); h1 130.68px ExtraBold lh 1 white at y 630 (975 wide); form
   962 wide at x 441 / y 971: four rows on an 89px pitch (labels 34.9px Black upper lh 1.73
   in #F4F1EA, 61px in from the row edge; 0.75px rules at 84 / 173 / 262 / 371), a 39px
   circle-arrow glyph at the right edge of the select row (x 891), Submit 148×51 outlined
   white pill (16px SemiBold 0.04em) right-aligned 41px under the last rule; citron swoop
   (15px stroke, 2165×726) from x −53 / y 1375 running ~440px over the footer (y 1643).
   The swoop is printed by inc/contact.php as a zero-height sibling before .gw-footer
   (Salient's .container-wrap clips overflow). Gravity Forms 2.5+ markup (.gravity-theme).
   layout=inline (Builders 53:262): same section mid-page; eyebrow 95px in (y 7484 − 7389), no page ground. */

/* ---- Ground (mirrors news.css: Salient paints .ocm-effect-wrap white) ---- */
body.gw-contact-page { background-color: var(--gw-teal-500) !important; overflow-x: clip; }
body.gw-contact-page .ocm-effect-wrap, body.gw-contact-page .ocm-effect-wrap-inner, body.gw-contact-page #ajax-content-wrap, body.gw-contact-page .container-wrap { background: transparent !important; }
/* Salient pads .container-wrap 40px under the fixed header; the section starts at y 0 so the header-tone observer sees it on load. */
body.gw-contact-page .container-wrap { padding-top: 0 !important; padding-bottom: 0 !important; }
body.gw-contact-page .gw-header .gw-nav-pill { color: var(--gw-white); }
body.gw-contact-page .gw-header .gw-nav-pill:hover { color: var(--gw-green-700); }
body.gw-contact-page .gw-header .gw-header__lockup { color: var(--gw-cream-100); }

/* ---- Section ---- */
.gw-contact {
  --gw-contact-x: clamp(24px, 22.97vw, 441px);      /* 441 / 1920 */
  --gw-contact-inset: clamp(20px, 3.177vw, 61px);   /* label / input offset inside a row, 61 / 962 */
  --gw-contact-row: clamp(64px, 4.635vw, 89px);      /* row pitch */
  position: relative;
  background: var(--gw-teal-500);
  color: var(--gw-cream-100);
  padding: clamp(180px, 27.5vw, 528px) var(--gw-fluid-margin-chrome) clamp(120px, 10.9vw, 209px) var(--gw-contact-x);
}
.gw-contact--inline { padding-top: clamp(64px, 4.95vw, 95px); scroll-margin-top: clamp(48px, 6vw, 120px); }
.gw-contact__inner { max-width: min(62vw, 1190px); } /* room for "Where Sarasota" on one line at the display-xl size */

.gw-contact .gw-intro__eyebrow { color: var(--gw-citron-500); font-size: var(--gw-fluid-heading-l); letter-spacing: var(--gw-track-heading); }
.gw-contact .gw-intro__heading { color: var(--gw-white); line-height: 1 !important; text-wrap: balance; } /* size = display-xl token (tokens.css) */

.gw-contact__form { max-width: clamp(0px, 50.1vw, 962px); margin-top: clamp(40px, 4.115vw, 79px); }
.gw-contact .gw-intro__body { color: var(--gw-cream-100); font-size: var(--gw-fluid-body-l); line-height: 1.6; max-width: var(--gw-measure-body); }
.gw-contact .gw-intro__cta { margin-top: var(--gw-space-2); }
.gw-contact__missing { color: var(--gw-citron-400); margin-top: var(--gw-space-4); }

/* ---- Gravity Forms reset (gravity-theme markup) ---- */
.gw-contact .gform_wrapper, .gw-contact .gform_wrapper * { box-sizing: border-box; }
.gw-contact .gform_wrapper.gravity-theme { margin: 0; }
/* Specificity note: GF's theme.min.css loads after this file and its rules are `.gform_wrapper.gravity-theme .x` (0,3,0);
   everything below is written as `.gw-contact .gform_wrapper.gravity-theme .x` (0,4,0) to win without !important. */
.gw-contact .gform_wrapper.gravity-theme .gform_heading, .gw-contact .gform_wrapper.gravity-theme .gform_required_legend, .gw-contact .gform_wrapper.gravity-theme .gform_validation_container { display: none !important; }
.gw-contact .gform_wrapper.gravity-theme .gform_fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 10px !important; /* 10px between First and Last name */ margin: 0; padding: 0; list-style: none; }
.gw-contact .gform_wrapper.gravity-theme .gfield { grid-column: span 12; position: relative; margin: 0; padding: 0; list-style: none; }
.gw-contact .gform_wrapper.gravity-theme .gfield--width-half { grid-column: span 6; }
.gw-contact .gform_wrapper.gravity-theme .gfield_description:not(.validation_message):not(.gfield_validation_message) { display: none; }

/* Row: the label is the visible prompt in the row (the comp shows no separate placeholder);
   it shrinks to a small label at the top once the field is focused or holds a value. */
/* The rule sits on the input container (not the .gfield) so a validation message lands under it. */
.gw-contact .gform_wrapper.gravity-theme .ginput_container { position: relative; border-bottom: 1px solid color-mix(in srgb, var(--gw-sand-200) 82%, transparent); }
.gw-contact .gform_wrapper.gravity-theme .gfield_label {
  position: absolute; left: var(--gw-contact-inset); top: calc(var(--gw-contact-row) / 2); transform: translateY(-50%); z-index: 1;
  margin: 0; padding: 0; pointer-events: none; white-space: nowrap; max-width: calc(100% - var(--gw-contact-inset) - 48px); overflow: hidden; text-overflow: ellipsis;
  font-family: var(--gw-font-display); font-weight: 900; font-size: var(--gw-fluid-display-xs); line-height: 1; letter-spacing: 0 !important; text-transform: uppercase;
  color: var(--gw-sand-200); transform-origin: left center;
  transition: top var(--gw-dur) var(--gw-ease), transform var(--gw-dur) var(--gw-ease), font-size var(--gw-dur) var(--gw-ease), letter-spacing var(--gw-dur) var(--gw-ease), color var(--gw-dur) var(--gw-ease);
}
.gw-contact .gform_wrapper.gravity-theme .gfield_label .gfield_required { color: inherit; font-size: inherit; display: inline; margin-left: 0.05em; }
.gw-contact .gform_wrapper.gravity-theme .gfield_label .gfield_required_text, .gw-contact .gform_wrapper.gravity-theme .gfield_label .gfield_required_asterisk { color: inherit; font-size: inherit; }
.gw-contact .gform_wrapper.gravity-theme .gfield:focus-within .gfield_label, .gw-contact .gform_wrapper.gravity-theme .gfield.gw-filled .gfield_label, .gw-contact .gform_wrapper.gravity-theme .gfield_error .gfield_label {
  top: clamp(8px, 0.73vw, 14px); transform: none; font-size: var(--gw-fluid-label-s); font-weight: 600; color: var(--gw-citron-400);
}

.gw-contact .gform_wrapper.gravity-theme .gfield input[type="text"], .gw-contact .gform_wrapper.gravity-theme .gfield input[type="email"], .gw-contact .gform_wrapper.gravity-theme .gfield input[type="tel"], .gw-contact .gform_wrapper.gravity-theme .gfield select {
  display: block; width: 100%; min-height: var(--gw-contact-row); height: var(--gw-contact-row); margin: 0;
  padding: clamp(18px, 1.35vw, 26px) var(--gw-space-2) 0 var(--gw-contact-inset);
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: none;
  font-family: var(--gw-font-display) !important; font-weight: 600; font-size: clamp(18px, 1.35vw, 26px) !important; line-height: 1.2; letter-spacing: 0; text-transform: none;
  color: var(--gw-white) !important; -webkit-appearance: none; appearance: none;
}
.gw-contact .gform_wrapper.gravity-theme .gfield input::placeholder { color: transparent; }
.gw-contact .gform_wrapper.gravity-theme .gfield input:-webkit-autofill, .gw-contact .gform_wrapper.gravity-theme .gfield input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--gw-teal-500) inset !important; -webkit-text-fill-color: var(--gw-white); caret-color: var(--gw-white); }
/* Focus: the row's rule and label turn citron (the input is the whole row, so an outline box reads as a panel). */
.gw-contact .gform_wrapper.gravity-theme .gfield input:focus, .gw-contact .gform_wrapper.gravity-theme .gfield select:focus { outline: none !important; box-shadow: none !important; }
.gw-contact .gform_wrapper.gravity-theme .gfield:focus-within .ginput_container { border-bottom: 2px solid var(--gw-citron-400); margin-bottom: -1px; }

/* Select: transparent, the comp's circle-arrow glyph at the row's right edge (39px at x 891 / 962). */
.gw-contact .gform_wrapper.gravity-theme .gfield select {
  padding-right: calc(var(--gw-space-2) + 39px + clamp(8px, 1.667vw, 32px)); cursor: pointer;
  background-image: url("../../assets/svg/icon-select.svg") !important; background-repeat: no-repeat !important;
  background-position: right clamp(8px, 1.667vw, 32px) center !important; background-size: clamp(28px, 2.03vw, 39px) auto !important;
}
.gw-contact .gform_wrapper.gravity-theme .gfield select option { color: var(--gw-green-700); background: var(--gw-white); text-transform: none; }

/* Validation: citron, small, under the rule inside the row's inset. */
.gw-contact .gform_wrapper.gravity-theme .gform_validation_errors { margin: 0 0 var(--gw-space-3); padding: 0; border: 0; background: transparent; box-shadow: none; }
.gw-contact .gform_wrapper.gravity-theme .gform_validation_errors:focus, .gw-contact .gform_wrapper.gravity-theme .gform_validation_errors:focus-visible { outline: 2px solid var(--gw-citron-400); outline-offset: 6px; }
.gw-contact .gform_wrapper.gravity-theme .gform_validation_errors > h2, .gw-contact .gform_wrapper.gravity-theme .gform_validation_errors .gform_submission_error { margin: 0; font-family: var(--gw-font-display); font-weight: 600; font-size: var(--gw-fluid-label-l) !important; letter-spacing: var(--gw-track-label); text-transform: uppercase; line-height: 1.3 !important; color: var(--gw-citron-400); }
.gw-contact .gform_wrapper.gravity-theme .gform_validation_errors .gform_submission_error .gform-icon { display: none; }
.gw-contact .gform_wrapper.gravity-theme .gform_validation_errors ol { display: none; }
.gw-contact .gform_wrapper.gravity-theme .gfield_error .validation_message, .gw-contact .gform_wrapper.gravity-theme .gfield_error .gfield_validation_message {
  margin: 0; padding: 6px var(--gw-space-2) 8px var(--gw-contact-inset); border: 0; background: transparent;
  font-family: var(--gw-font-display); font-weight: 600; font-size: var(--gw-fluid-label-s); letter-spacing: var(--gw-track-label); text-transform: uppercase; line-height: 1.3; color: var(--gw-citron-400);
}
.gw-contact .gform_wrapper.gravity-theme .gfield_error .ginput_container { border-bottom-color: var(--gw-citron-400); }

/* Submit: 148×51 outlined white pill, right-aligned 41px under the last rule (49:1626). */
.gw-contact .gform_wrapper.gravity-theme .gform_footer { display: flex; justify-content: flex-end; align-items: center; margin: clamp(24px, 2.135vw, 41px) 0 0; padding: 0; }
.gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"], .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"], .gw-contact .gform_wrapper.gravity-theme .gform_footer .gform_button {
  display: inline-flex; align-items: center; justify-content: center; min-width: 148px; min-height: 51px; height: 51px; margin: 0; padding: 0 30px;
  border: var(--gw-stroke-button) solid var(--gw-white) !important; border-radius: var(--gw-radius-pill) !important; background: transparent !important; box-shadow: none !important;
  font-family: var(--gw-font-display) !important; font-weight: 600 !important; font-size: var(--gw-fluid-label-s) !important; letter-spacing: var(--gw-track-label) !important; text-transform: uppercase; line-height: 1; color: var(--gw-white) !important; cursor: pointer;
  transition: background var(--gw-dur) var(--gw-ease), color var(--gw-dur) var(--gw-ease), transform var(--gw-dur-fast) var(--gw-ease);
}
.gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover, .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"]:hover, .gw-contact .gform_wrapper.gravity-theme .gform_footer .gform_button:hover { background: var(--gw-white) !important; color: var(--gw-green-700) !important; }
.gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:active, .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"]:active { transform: scale(0.98); }
.gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:focus-visible, .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"]:focus-visible { outline: 2px solid var(--gw-citron-400); outline-offset: 3px; }
.gw-contact .gform_wrapper.gravity-theme .gform_ajax_spinner { margin-left: var(--gw-space-2); filter: brightness(0) invert(1); }

/* Confirmation (AJAX text) */
.gw-contact .gform_confirmation_wrapper { min-height: calc(var(--gw-contact-row) * 2); }
.gw-contact .gform_confirmation_message { margin: 0; padding-top: var(--gw-space-3); font-family: var(--gw-font-display) !important; font-weight: 900; font-size: var(--gw-fluid-display-xs) !important; line-height: 1.3; text-transform: uppercase; color: var(--gw-cream-100); max-width: var(--gw-measure-body); }

/* ---- Swoop (49:1636): zero-height sibling before .gw-footer, overhangs both ways ---- */
.gw-contact-swoop { position: relative; z-index: 11; height: 0; overflow: clip visible; pointer-events: none; } /* z above Salient's .container-wrap (z-index 10) or the upper half paints under the teal section; x clipped, y free */
.gw-contact-swoop svg { position: absolute; left: -2.76vw; top: -13.96vw; width: 112.76vw; height: auto; display: block; overflow: visible; } /* the path runs above its viewBox */

/* ---- Mobile / tablet ---- */
@media (max-width: 999px) {
  .gw-contact { padding: clamp(150px, 38vw, 220px) var(--gw-fluid-margin-chrome) var(--gw-space-7); }
  .gw-contact__inner, .gw-contact__form { max-width: none; }
  .gw-contact { --gw-contact-inset: 12px; --gw-contact-row: 68px; }
  .gw-contact .gform_wrapper.gravity-theme .gfield--width-half { grid-column: span 12; }
  .gw-contact .gform_wrapper.gravity-theme .gfield_label { font-size: 20px; white-space: normal; line-height: 1.1; }
  .gw-contact .gform_wrapper.gravity-theme .gfield input[type="text"], .gw-contact .gform_wrapper.gravity-theme .gfield input[type="email"], .gw-contact .gform_wrapper.gravity-theme .gfield input[type="tel"], .gw-contact .gform_wrapper.gravity-theme .gfield select { font-size: 18px !important; padding-top: 22px; }
  .gw-contact-swoop svg { top: -10vw; }
}
@media (max-width: 599px) {
  /* header.css stacks the lockup under the pills below 600px (top ≈ 80px, 110px wide): clear it. */
  .gw-contact { padding-top: clamp(190px, 50vw, 240px); }
  /* Keep "Where Sarasota" on one line on phones (the display-xl floor of 60px wraps it). */
  .gw-contact .gw-intro__heading { font-size: clamp(36px, 11.3vw, 60px) !important; }
  .gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"], .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"], .gw-contact .gform_wrapper.gravity-theme .gform_footer .gform_button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .gw-contact .gform_wrapper.gravity-theme .gfield_label, .gw-contact .gform_wrapper.gravity-theme .gform_footer input[type="submit"], .gw-contact .gform_wrapper.gravity-theme .gform_footer button[type="submit"] { transition: none; }
}

/* ==== Spark lead form (templates/spark-form.php, 2026-11-10) — same look as the Gravity Form above ==== */
.gw-sf, .gw-sf * { box-sizing: border-box; }
.gw-sf { margin: 0; }
.gw-sf [hidden] { display: none !important; }
.gw-sf__fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 10px; }
.gw-sf__field { grid-column: span 12; position: relative; margin: 0; border-bottom: 1px solid color-mix(in srgb, var(--gw-sand-200) 82%, transparent); }
.gw-sf__field--half { grid-column: span 6; }
.gw-sf__label {
  position: absolute; left: var(--gw-contact-inset); top: calc(var(--gw-contact-row) / 2); transform: translateY(-50%); z-index: 1;
  margin: 0; padding: 0; pointer-events: none; white-space: nowrap; max-width: calc(100% - var(--gw-contact-inset) - 48px); overflow: hidden; text-overflow: ellipsis;
  font-family: var(--gw-font-display); font-weight: 900; font-size: var(--gw-fluid-display-xs); line-height: 1; letter-spacing: 0 !important; text-transform: uppercase;
  color: var(--gw-sand-200); transform-origin: left center;
  transition: top var(--gw-dur) var(--gw-ease), transform var(--gw-dur) var(--gw-ease), font-size var(--gw-dur) var(--gw-ease), color var(--gw-dur) var(--gw-ease);
}
.gw-sf__field:focus-within .gw-sf__label, .gw-sf__field.gw-filled .gw-sf__label {
  top: clamp(8px, 0.73vw, 14px); transform: none; font-size: var(--gw-fluid-label-s); font-weight: 600; color: var(--gw-citron-400);
}
.gw-contact .gw-sf .gw-sf__input, .gw-contact .gw-sf .gw-sf__select, .gw-contact .gw-sf .gw-sf__textarea {
  display: block; width: 100%; min-height: var(--gw-contact-row); height: var(--gw-contact-row); margin: 0;
  padding: clamp(18px, 1.35vw, 26px) var(--gw-space-2) 0 var(--gw-contact-inset);
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: none;
  font-family: var(--gw-font-display) !important; font-weight: 600; font-size: clamp(18px, 1.35vw, 26px) !important; line-height: 1.2; letter-spacing: 0; text-transform: none;
  color: var(--gw-white) !important; -webkit-appearance: none; appearance: none;
}
.gw-contact .gw-sf .gw-sf__textarea { height: auto; min-height: calc(var(--gw-contact-row) * 1.8); padding-top: clamp(34px, 2.6vw, 50px); padding-bottom: 12px; resize: vertical; line-height: 1.45; }
.gw-sf__field--textarea .gw-sf__label { top: calc(var(--gw-contact-row) / 2); }
.gw-contact .gw-sf input:-webkit-autofill, .gw-contact .gw-sf input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px var(--gw-teal-500) inset !important; -webkit-text-fill-color: var(--gw-white); caret-color: var(--gw-white); }
.gw-sf__field:focus-within { border-bottom: 2px solid var(--gw-citron-400); margin-bottom: -1px; }
.gw-contact .gw-sf .gw-sf__select {
  padding-right: calc(var(--gw-space-2) + 39px + clamp(8px, 1.667vw, 32px)); cursor: pointer;
  background-image: url("../../assets/svg/icon-select.svg") !important; background-repeat: no-repeat !important;
  background-position: right clamp(8px, 1.667vw, 32px) center !important; background-size: clamp(28px, 2.03vw, 39px) auto !important;
}
.gw-contact .gw-sf .gw-sf__select option { color: var(--gw-green-700); background: var(--gw-white); text-transform: none; }
/* Native validation bubbles carry the messages; a touched invalid row turns its rule citron. */
.gw-sf__field:has(:user-invalid) { border-bottom-color: var(--gw-citron-400); }

.gw-sf__notice, .gw-sf__about {
  margin: 0 0 var(--gw-space-3); font-family: var(--gw-font-display); font-weight: 600; font-size: var(--gw-fluid-label-l) !important;
  letter-spacing: var(--gw-track-label); text-transform: uppercase; line-height: 1.3 !important; color: var(--gw-citron-400); max-width: var(--gw-measure-body);
}
.gw-sf__notice:focus { outline: 2px solid var(--gw-citron-400); outline-offset: 6px; }
.gw-sf__about { color: var(--gw-cream-100); }

.gw-sf__actions { display: flex; justify-content: flex-end; align-items: center; margin: clamp(24px, 2.135vw, 41px) 0 0; }
.gw-contact .gw-sf .gw-sf__submit {
  display: inline-flex; align-items: center; justify-content: center; min-width: 148px; min-height: 51px; height: 51px; margin: 0; padding: 0 30px;
  border: var(--gw-stroke-button) solid var(--gw-white) !important; border-radius: var(--gw-radius-pill) !important; background: transparent !important; box-shadow: none !important;
  font-family: var(--gw-font-display) !important; font-weight: 600 !important; font-size: var(--gw-fluid-label-s) !important; letter-spacing: var(--gw-track-label) !important; text-transform: uppercase; line-height: 1; color: var(--gw-white) !important; cursor: pointer;
  transition: background var(--gw-dur) var(--gw-ease), color var(--gw-dur) var(--gw-ease), transform var(--gw-dur-fast) var(--gw-ease), opacity var(--gw-dur) var(--gw-ease);
}
.gw-contact .gw-sf .gw-sf__submit:hover { background: var(--gw-white) !important; color: var(--gw-green-700) !important; }
.gw-contact .gw-sf .gw-sf__submit:active { transform: scale(0.98); }
.gw-contact .gw-sf .gw-sf__submit:focus-visible { outline: 2px solid var(--gw-citron-400); outline-offset: 3px; }
.gw-contact .gw-sf .gw-sf__submit:disabled { opacity: .6; cursor: progress; }
.gw-sf__legal { margin: var(--gw-space-4) 0 0; font-family: var(--gw-font-body); font-size: var(--gw-size-legal); line-height: 1.5; color: color-mix(in srgb, var(--gw-cream-100) 80%, transparent); max-width: var(--gw-measure-body); }
.gw-sf__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 999px) {
  .gw-sf__field--half { grid-column: span 12; }
  .gw-sf__label { font-size: 20px; white-space: normal; line-height: 1.1; }
  .gw-contact .gw-sf .gw-sf__input, .gw-contact .gw-sf .gw-sf__select, .gw-contact .gw-sf .gw-sf__textarea { font-size: 18px !important; padding-top: 22px; }
  .gw-contact .gw-sf .gw-sf__textarea { padding-top: 34px; }
}
@media (max-width: 599px) {
  .gw-contact .gw-sf .gw-sf__submit { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .gw-sf__label, .gw-contact .gw-sf .gw-sf__submit { transition: none; }
}
