/* "WST: Contact form" block — the Contact page's form section with a real Gravity Form in the card.
   Gravity Forms' own CSS is off for forms rendered by wst_gravity_form() (inc/gravity-forms.php); these rules
   reproduce the design's form exactly: the values are the Contact page's inline input/label styles. */

/* Address column (same as the Contact page) */
.wst-addr a { color: #0f1216; }
.wst-addr p > a:only-child { display: block; }
.wst-addr a:hover { color: #c7361d !important; }

/* Form layout: two-up grid for the short fields, message full width, 22px rhythm (design: flex gap 22). */
.wst-gf .gform_wrapper, .wst-gf form, .wst-gf .gform_body { margin: 0; padding: 0; }
.wst-gf .gform_fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 22px; margin: 0; padding: 0; border: 0; }
.wst-gf .gfield { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.wst-gf .gfield--type-textarea { grid-column: 1 / -1; }
.wst-gf .ginput_container { margin: 0; }

/* Labels: mono caps; required * is a red span in the label (inc/gravity-forms.php). */
.wst-gf .gfield_label { display: block; margin: 0; padding: 0; font-family: var(--font-mono); font-size: 11px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: #6d7586; }

/* Inputs: the design's inline input style. Block-level so no inline-box gap appears under them. */
.wst-gf input[type="text"], .wst-gf input[type="email"], .wst-gf input[type="tel"], .wst-gf input[type="url"], .wst-gf input[type="number"], .wst-gf select, .wst-gf textarea {
	display: block; box-sizing: border-box; width: 100%; margin: 0;
	font-family: var(--font-sans); font-size: 16px; line-height: 1.4; color: #0f1216;
	background: #ffffff; border: 1px solid rgba(74,80,92,.24); border-radius: 9px; padding: 13px 14px;
	outline: none; transition: border-color .2s, box-shadow .2s;
}
.wst-gf textarea { resize: vertical; min-height: 160px; }
.wst-gf input:focus, .wst-gf select:focus, .wst-gf textarea:focus { border-color: #e44125; box-shadow: 0 0 0 3px rgba(228,65,37,.14); }

/* Footer: "* Required" left, navy button right (design: flex, space-between, gap 16). */
.wst-gf .gform_footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 22px 0 0; padding: 0; }
.wst-gf .gform_ajax_spinner { display: none; }

/* Validation: message under each field (whatever the form's validation placement), in the design's red;
   summary kept for screen readers only. */
.wst-gf .gfield > .gfield_label { order: 1; }
.wst-gf .gfield > .ginput_container { order: 2; }
.wst-gf .gfield > .gfield_validation_message, .wst-gf .gfield > .validation_message { order: 3; }
.wst-gf .gfield_validation_message, .wst-gf .validation_message { margin: 0; font-size: 13px; line-height: 1.5; color: #c7361d; }
.wst-gf .gfield_error input, .wst-gf .gfield_error textarea, .wst-gf .gfield_error select { border-color: #c7361d; }
.wst-gf .gform_validation_errors { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Gravity Forms internals that must never show */
.wst-gf .gform_validation_container, .wst-gf .gfield--type-honeypot, .wst-gf .gform_hidden, .wst-gf iframe[name^="gform_ajax_frame"] { display: none !important; }

/* Confirmation without JS (with JS the block's own thank-you message replaces it). */
.wst-gf .gform_confirmation_message { padding: 24px 0; font-size: clamp(16px, calc(15.724px + 0.0893vw), 17px); line-height: 1.65; color: #3d4450; }
