/* ==========================================================================
   Gravity Forms — Brunch & Brew treatment
   --------------------------------------------------------------------------
   Selectors were taken from the markup Gravity Forms 3.1.1 actually renders on
   this install (theme "gravity-theme", gform-theme--no-framework), not from
   memory: wrapper .gform_wrapper.gravity-theme, label .gfield_label,
   controls input.large / textarea.textarea / select.gfield_select,
   footer .gform-footer with a <button class="gform_button">.

   Values are the design's own, from HANDOFF.md and components.css:
   #E5E3DA fill, 1.5px #231F20 border, 8px radius, 13px/14px padding, and the
   source's own 14x9 chevron with a 46px right gutter on every select.

   Enqueued only on pages whose template has a form (see functions.php).
   ========================================================================== */

.bb-gf .gform_wrapper.gravity-theme,
.gform_wrapper.gravity-theme.bb-gform_wrapper {
	--bb-gf-gap: 18px;
}

/* Kill the plugin's own field spacing; the design uses an 18px grid gap. */
.bb-gf .gform_wrapper.gravity-theme .gform_fields {
	grid-row-gap: var(--bb-gf-gap);
	grid-column-gap: var(--bb-gf-gap);
}

.bb-gf .gform_wrapper.gravity-theme .gfield {
	padding: 0;
}

/* --------------------------------------------------------------------------
   Labels — the design's .bb-label treatment
   -------------------------------------------------------------------------- */
.bb-gf .gform_wrapper.gravity-theme .gfield_label,
.bb-gf .gform_wrapper.gravity-theme .gform-field-label {
	font-family: 'Neutraface Condensed Titling', sans-serif;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #231F20;
	display: block;
	margin-bottom: 7px;
	padding: 0;
}

/* The required asterisk rides the label; keep it quiet, not shouting. */
.bb-gf .gform_wrapper.gravity-theme .gfield_required {
	color: #E47245;
	font-size: 14px;
	letter-spacing: 0;
	margin-left: 4px;
}

/* Sub-labels (name/date parts) and field descriptions. */
.bb-gf .gform_wrapper.gravity-theme .gform_fileupload_rules,
.bb-gf .gform_wrapper.gravity-theme .gfield_description {
	font-family: 'Neutra Text', 'Futura', 'Century Gothic', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #231F20;
	padding-top: 6px;
}

/* --------------------------------------------------------------------------
   Controls — identical to .bb-field in components.css
   -------------------------------------------------------------------------- */
.bb-gf .gform_wrapper.gravity-theme input[type="text"],
.bb-gf .gform_wrapper.gravity-theme input[type="email"],
.bb-gf .gform_wrapper.gravity-theme input[type="tel"],
.bb-gf .gform_wrapper.gravity-theme input[type="url"],
.bb-gf .gform_wrapper.gravity-theme input[type="number"],
.bb-gf .gform_wrapper.gravity-theme input[type="password"],
.bb-gf .gform_wrapper.gravity-theme input[type="date"],
.bb-gf .gform_wrapper.gravity-theme textarea,
.bb-gf .gform_wrapper.gravity-theme select {
	width: 100%;
	box-sizing: border-box;
	background: #E5E3DA;
	border: 1.5px solid #231F20;
	border-radius: 8px;
	padding: 13px 14px;
	font-family: 'Neutra Text', 'Futura', 'Century Gothic', sans-serif;
	font-size: 16px;
	color: #231F20;
	line-height: 1.4;
}

.bb-gf .gform_wrapper.gravity-theme input:focus,
.bb-gf .gform_wrapper.gravity-theme textarea:focus,
.bb-gf .gform_wrapper.gravity-theme select:focus {
	outline: none;
	border-color: #231F20;
	box-shadow: 0 0 0 3px #EEDCCB;
}

.bb-gf .gform_wrapper.gravity-theme textarea {
	resize: vertical;
	min-height: 140px;
}

/* Placeholder text sits quieter than typed input. */
.bb-gf .gform_wrapper.gravity-theme ::placeholder {
	color: #847E77;
	opacity: 1;
}

/* --------------------------------------------------------------------------
   Selects — the source's own 14x9 chevron, 20px in, 46px gutter.
   Longhand padding so it cannot be wiped by the shorthand above.
   -------------------------------------------------------------------------- */
.bb-gf .gform_wrapper.gravity-theme select,
.bb-gf .gform_wrapper.gravity-theme .gfield_select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: #E5E3DA url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%279%27 viewBox=%270 0 14 9%27%3E%3Cpath d=%27M1 1L7 7L13 1%27 stroke=%27%23231F20%27 stroke-width=%272%27 fill=%27none%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") no-repeat right 20px center;
	background-size: 14px 9px;
	padding-right: 46px;
	padding-left: 14px;
}

/* --------------------------------------------------------------------------
   Submit — the design's orange pill (.bb-btn .bb-btn--orange .bb-btn--md)
   -------------------------------------------------------------------------- */
.bb-gf .gform_wrapper.gravity-theme .gform-footer,
.bb-gf .gform_wrapper.gravity-theme .gform_footer {
	margin: 26px 0 0;
	padding: 0;
}

.bb-gf .gform_wrapper.gravity-theme .gform_button,
.bb-gf .gform_wrapper.gravity-theme button[type="submit"],
.bb-gf .gform_wrapper.gravity-theme input[type="submit"] {
	display: inline-block;
	width: auto;
	background: #E47245;
	color: #FBF8F1;
	border: 2px solid #231F20;
	border-radius: 999px;
	padding: 13px 28px;
	font-family: 'Neutraface Condensed', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background 120ms cubic-bezier(.22, .61, .36, 1);
}

.bb-gf .gform_wrapper.gravity-theme .gform_button:hover,
.bb-gf .gform_wrapper.gravity-theme button[type="submit"]:hover {
	background: #C4552B;
	color: #FBF8F1;
}

.bb-gf .gform_wrapper.gravity-theme .gform_button:focus-visible,
.bb-gf .gform_wrapper.gravity-theme button[type="submit"]:focus-visible {
	outline: 3px solid #231F20;
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Validation and confirmation
   -------------------------------------------------------------------------- */
.bb-gf .gform_wrapper.gravity-theme .gfield_error input,
.bb-gf .gform_wrapper.gravity-theme .gfield_error textarea,
.bb-gf .gform_wrapper.gravity-theme .gfield_error select {
	border-color: #C4552B;
	background: #F3E3DA;
}

.bb-gf .gform_wrapper.gravity-theme .gfield_validation_message,
.bb-gf .gform_wrapper.gravity-theme .validation_message {
	font-family: 'Neutra Text', 'Futura', 'Century Gothic', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #C4552B;
	background: none;
	border: 0;
	padding: 6px 0 0;
}

/* Longhand padding on purpose: Gravity reserves padding-inline-start:48px for
   the warning icon it draws with ::before, and a `padding` shorthand here wipes
   that inset so the icon lands on top of the first word. */
.bb-gf .gform_wrapper.gravity-theme .gform_validation_errors {
	background: #F3E3DA;
	border: 1.5px solid #C4552B;
	border-radius: 8px;
	box-shadow: none;
	padding-block: 14px;
	padding-inline-end: 16px;
	padding-inline-start: 48px;
	margin-bottom: 20px;
}

.bb-gf .gform_wrapper.gravity-theme .gform_validation_errors h2,
.bb-gf .gform_wrapper.gravity-theme .gform_validation_errors .gform_submission_error {
	font-family: 'Neutraface Condensed', sans-serif;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
	text-transform: uppercase;
	color: #C4552B;
	margin: 0;
	/* Let the sentence wrap rather than run under the icon or clip. */
	white-space: normal;
	overflow-wrap: break-word;
	text-wrap: pretty;
}

/* The confirmation replaces the form in place; it carries the design's
   success copy from the form's own confirmation setting. */
.bb-gf .gform_confirmation_message {
	font-family: 'Neutra Text', 'Futura', 'Century Gothic', sans-serif;
	font-size: 17px;
	line-height: 1.6;
	color: #231F20;
}

.bb-gf .gform_confirmation_message h3 {
	font-family: 'Neutraface Condensed', sans-serif;
	font-weight: 700;
	font-size: 30px;
	text-transform: uppercase;
	margin: 0 0 10px;
}

/* Honeypot must stay invisible but reachable — never display:none it. */
.bb-gf .gform_wrapper.gravity-theme .gform_validation_container {
	position: absolute !important;
	left: -9999px;
}

/* --------------------------------------------------------------------------
   Small screens: the plugin's half-width grid collapses on its own, but the
   design's 18px gutter should survive.
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
	.bb-gf .gform_wrapper.gravity-theme .gform_fields {
		grid-row-gap: 14px;

		/* Zero, not 14px. Gravity lays fields on a 12-column grid, so a column
		   gap is charged ELEVEN times - 18px became 198px of pure gutter, and
		   in a container narrower than that every 1fr track collapsed to zero
		   and the grid overflowed. Gravity already drops its half-width fields
		   to full width below 641px, so the column gap buys nothing here. */
		grid-column-gap: 0;
	}
}
