/*!
 * Gravity Forms — brand token layer (Topic 28 FORMS-WP1)
 *
 * This file is a SKIN on top of Gravity Forms' own retained foundation /
 * framework / reset CSS (see inc/gravity-forms.php — only the Orbital theme
 * handle is dequeued). It does NOT re-implement GF's multi-column grid or
 * accessibility rules (screen-reader text, focus-visible defaults,
 * honeypot-hiding) — those stay owned by the kept GF layers.
 *
 * Scope: every rule below is namespaced under `.gform_wrapper` so nothing
 * here ever bleeds into the unrelated `.mw-section--form` kit-handler forms
 * (contact/newsletter markup rendered by inc/kit/form-renderers.php, styled
 * by assets/css/sections/_form.css). The two systems coexist: kit-handler
 * forms today, Gravity Forms forms as they come online per WP-2/WP-3.
 *
 * Load order / cascade: enqueued with a dependency on the retained
 * `gravity_forms_theme_framework` handle plus the theme's design-token
 * stylesheet, so these rules print after GF's structural CSS and win
 * without needing `!important` anywhere in this file.
 *
 * @package Mystwood_Studios_AB
 * @since   Topic 28 FORMS-WP1
 */

/* ---------------------------------------------------------------------
 * Typography — Ice Cream Man (display) on labels + the submit button,
 * Poppins (body) on every text-entry control. Mirrors the split already
 * used across the theme (see theme-tokens.css --mw-font-display/--mw-font-body).
 * ------------------------------------------------------------------- */

.gform_wrapper .gfield_label,
.gform_wrapper .gform_fields legend.gfield_label,
.gform_wrapper .ginput_complex label,
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label,
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
	font-family: var(--mw-font-display, system-ui, sans-serif);
}

/* ---------------------------------------------------------------------
 * Label legibility — GF's retained framework CSS sets an explicit
 * near-black colour on labels, which wins over inheritance and renders
 * dark-on-dark on the studio-dark / studio-violet form sections these
 * forms live in. Restore inheritance so every label follows the colour
 * its section already sets (white on the dark bands, bg-dark on the
 * light band) — the same context-driven contrast the rest of the theme
 * relies on. Descriptions stay slightly muted but legible.
 * ------------------------------------------------------------------- */

.gform_wrapper .gfield_label,
.gform_wrapper .gform_fields legend.gfield_label,
.gform_wrapper .ginput_complex label,
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label {
	color: inherit;
}

.gform_wrapper .gfield_description,
.gform_wrapper .gform_description {
	color: inherit;
	opacity: 0.85;
}

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper textarea,
.gform_wrapper select,
.gform_wrapper .chosen-container,
.gform_wrapper .gfield_description,
.gform_wrapper .gform_description,
.gform_wrapper .gform_fields .gfield_validation_message,
.gform_wrapper .validation_message,
.gform_wrapper .gform_confirmation_message {
	font-family: var(--mw-font-body, system-ui, sans-serif);
}

/* ---------------------------------------------------------------------
 * SPECIFICITY NOTE — Gravity Forms 2.10's retained framework styles its
 * controls with a 3-class compound anchor
 * (`.gform-theme--framework.gform-theme.gform_wrapper …`, specificity
 * (0,4,1)), and the kit-form stylesheet `_form.css` also reaches GF
 * inputs nested in a `.mw-section--form` slot via `.mw-section--form
 * input` (0,2,1), loading AFTER this file. A plain `.gform_wrapper …`
 * skin (0,3,1) therefore loses on the submit button and gets its field
 * radius overwritten. So every visual rule below anchors on GF's own
 * `.gform-theme.gform_wrapper` classes — present on every framework-
 * rendered form — which out-specifies both and lets the brand own the
 * look without `!important`.
 * ------------------------------------------------------------------- */

/* ---------------------------------------------------------------------
 * Field spacing + labels — breathing room between fields and a clear
 * label→field gap. Label colour inherits the section (handled above).
 * ------------------------------------------------------------------- */

.gform_wrapper.gform-theme .gform_fields {
	row-gap: 1.35rem;
}

.gform_wrapper.gform-theme .gfield_label {
	display: block;
	margin-block-end: 0.5rem;
	font-size: 1rem;
	letter-spacing: 0.02em;
}

/* Topic 33 FIX-WP8 Task B — the (Required) marker stays IN the accessibility
 * tree (it is the only visible required cue; aria-required serves AT only,
 * GF does not emit the HTML required attribute). Uses this file's own
 * host-adaptive `color: inherit; opacity` idiom (see L56-63 above) instead
 * of a hardcoded colour, so it never goes dark-on-dark in the footer or
 * light-on-light on a K-World band.
 *
 * GF's DOM nests `<span class="gfield_required"><span class="gfield_required
 * gfield_required_text">`. The framework paints the OUTER span red via
 * `.gform-theme--framework .gform-field-label > .gfield_required` (0,3,0) —
 * a plain `.gform_wrapper.gform-theme .gfield_required_text` (0,3,0) only
 * reaches the INNER span, which then just inherits the still-red outer
 * span (a no-op, verified live). Anchored on the framework compound this
 * file already documents at L82-94 and targeting BOTH spans reaches (0,4,0)
 * and actually wins. */
.gform-theme--framework.gform-theme.gform_wrapper .gfield_required,
.gform-theme--framework.gform-theme.gform_wrapper .gfield_required_text {
	color: inherit;
	opacity: 0.7;
	font-size: 0.85em;
	font-weight: 400;
}

/* GF emits the marker with no separating whitespace, so the label rendered
 * as "Email(Required)" once the colour stopped separating the two visually.
 *
 * CORRECTION, Topic 33 FIX-WP11 Task E (measured 2026-07-29): this rule was
 * written believing it spaced "the outer span only", and warned that hitting
 * both would double the gap. It DOES hit both — GF's inner span carries BOTH
 * classes (`class="gfield_required gfield_required_text"`), so the selector
 * below matches parent and child alike, and horizontal margins do apply to
 * inline boxes. The painted gap is therefore ~0.7em, not 0.35em: measured at
 * 8.78px on all four surfaces (kw-gold, kw-sky, studio-violet, dark footer).
 *
 * Left as-is deliberately. 8.78px is what the designer's complaint asked for
 * and what reads correctly on the page; making the rule literally do what its
 * old comment claimed would halve the gap and risk re-opening the original
 * "no space between email and required" defect. The comment was the wrong
 * half of the pair, so the comment is what changed. */
.gform-theme--framework.gform-theme.gform_wrapper .gfield_required {
	margin-inline-start: 0.35em;
}

/* ---------------------------------------------------------------------
 * Field surfaces — token-driven so the field adapts to the surface it
 * sits on. The values below are the DEFAULTS: a clean white field (soft
 * brand radius, comfortable padding, a faint inner shadow for depth,
 * muted placeholder), which is correct for the one light surface a GF
 * form lives on — the lead-capture popup's white card
 * (.mw-leadcapture--popup, assets/css/components/_leadcapture.css).
 *
 * On the dark bands every OTHER GF form lives on (footer, get-in-touch
 * hub cards, careers apply, inline lead-capture) the --mw-gf-field-*
 * tokens are re-set to a translucent dark field by the dark-surface block
 * below — matching the design system's own forms.css treatment
 * (.mw-on-dark / .site-footer, ingested at
 * .claude/skills/mystwood-design/css/forms.css). Token-driven, so the
 * dark values inherit into the fields without out-specifying the :focus
 * rule further down (Topic 30 designer correction).
 * ------------------------------------------------------------------- */

.gform_wrapper.gform-theme input[type="text"],
.gform_wrapper.gform-theme input[type="email"],
.gform_wrapper.gform-theme input[type="tel"],
.gform_wrapper.gform-theme input[type="url"],
.gform_wrapper.gform-theme input[type="number"],
.gform_wrapper.gform-theme input[type="password"],
.gform_wrapper.gform-theme textarea,
.gform_wrapper.gform-theme select {
	background: var(--mw-gf-field-bg, #ffffff);
	color: var(--mw-gf-field-color, #14112b);
	padding-block: 0.85rem;
	padding-inline: 1.1rem;
	border: 1px solid var(--mw-gf-field-border, rgba(255, 255, 255, 0.55));
	border-radius: var(--mw-radius-soft, 8px);
	font-size: 1rem;
	line-height: 1.5;
	box-shadow: var(--mw-gf-field-shadow, inset 0 1px 2px rgba(4, 4, 32, 0.10));
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gform_wrapper.gform-theme textarea {
	min-height: 9rem;
}

.gform_wrapper.gform-theme input::placeholder,
.gform_wrapper.gform-theme textarea::placeholder {
	color: var(--mw-gf-field-placeholder, #6b6880);
	opacity: 1;
}

/* ---------------------------------------------------------------------
 * Dark-surface field treatment — Topic 30 designer correction.
 *
 * Re-sets the --mw-gf-field-* tokens to a translucent dark field on every
 * dark GF host: the footer, the get-in-touch hub cards (.ghub), and any
 * studio-dark / studio-violet band (careers #apply, the inline
 * lead-capture on a dark cta-band). The tokens cascade by inheritance to
 * the fields inside, so there is no specificity war with the :focus rule
 * below (which still repaints the border violet + glow on focus). The
 * base white defaults above are left to serve the ONE light host — the
 * .mw-leadcapture--popup white card — which carries none of these hooks
 * (it is fixed-position at wp_footer, outside every band and the footer).
 *
 * Mirrors the design system's forms.css .mw-on-dark / .site-footer
 * treatment (.claude/skills/mystwood-design/css/forms.css). studio-dark
 * and studio-violet are the theme's two dark band tokens (studio-light
 * stays white); a nested light card inside a dark band would need to
 * re-set these tokens, but no such GF host exists today.
 * ------------------------------------------------------------------- */
.site-footer,
.ghub,
[data-bg-token="studio-dark"],
[data-bg-token="studio-violet"] {
	--mw-gf-field-bg: rgba(255, 255, 255, 0.08);
	--mw-gf-field-color: var(--mw-color-text-light, #FAF8FF);
	--mw-gf-field-border: rgba(255, 255, 255, 0.20);
	--mw-gf-field-placeholder: rgba(255, 255, 255, 0.45);
	--mw-gf-field-shadow: none;
}

/* ---------------------------------------------------------------------
 * K-World band field + validation-ink context — Topic 33 FIX-WP8.
 *
 * Keyed on the band's own bg token, NOT `.mw-section--brand-k-world` — that
 * class also matches the STUDIO-VIOLET dark band on
 * templates/template-page-griffin-roost-manager.php:313, which hosts this
 * same form and must keep the dark-surface treatment above (violet button,
 * translucent-dark field) untouched. kw-sky (/bedtime-stories/) and
 * kw-gold (/coloring-book-product/) are both light bands, so only the
 * field border and the validation inks need re-setting here — the white
 * field / dark text defaults at L130-146 above are already correct on
 * both; do not restate them.
 *
 * Nested light surfaces already exist inside these bands (a cream card at
 * _media-text.css:132, a cream card at _gallery.css:77) — a white field on
 * cream would have near-zero separation from a light border, so the
 * darker rgba(4,4,32,0.70) border is used instead of a lighter tint: it
 * measures 7.98:1 against the white field itself and clears 3:1 against
 * both adjacent band surfaces.
 *
 * MEASUREMENT UPDATED — Topic 36 CORR-WP1 Item 2 (owner directive
 * 2026-08-25). `--kw-sky-surface` / `--kw-gold-surface` flipped to white, so
 * the band and the field are now the identical colour: both figures are
 * 7.98:1, re-measured via `tools/contrast_audit.py` (the two previously
 * distinct measurements, 3.35:1 and 5.34:1, are stale and superseded — the
 * flip only improved this pair, never put it at risk).
 *
 * ⚠️ ALIGNMENT NOTE — OVERTURNED by Topic 33 FIX-WP29 (2026-08-02).
 *
 * This block used to say text alignment was "deliberately NOT reset here":
 * FIX-WP7 Task C merged heading + form into one `.mw-section--cta-band`,
 * `_cta-band.css:19` centres that section, so labels, descriptions,
 * validation messages and the consent line all inherited centring — and
 * that was called correct "per the Claude Design reference".
 *
 * The owner overruled it on 2026-08-01: "the email labels and the first
 * name should be positioned to the left". The form block is now
 * left-aligned by `.mw-section--cta-band .mw-leadcapture--inline
 * .gform_wrapper` in assets/css/components/_leadcapture.css — anchored
 * there, not here, because that file ships on exactly the four templates
 * that host an inline form while this one is global.
 *
 * Do NOT re-add a centring rule for in-band labels on the strength of the
 * old FIX-WP7/WP8 note. The heading and subhead stay centred; the form
 * does not. The success confirmation re-centres by itself — see the
 * `.gform_wrapper`-anchor rationale in _leadcapture.css.
 * ------------------------------------------------------------------- */
[data-bg-token="kw-sky"],
[data-bg-token="kw-gold"] {
	--mw-gf-field-border: rgba(4, 4, 32, 0.70);
	--mw-gf-error-ink: #7A1704;
	--mw-gf-success-ink: #0A4527;
}

/* ---------------------------------------------------------------------
 * K-World submit button — the gold pill everywhere else on these bands
 * uses. kw-sky gets the accent gold fill directly (NB: --kw-gold is the
 * ACCENT token #F4C430, not a surface token, despite the similar name);
 * kw-gold cannot use gold-on-gold, so it falls back to --kw-castle-stone
 * with a light label (FIX-WP7's ruling — reused here, not re-solved).
 *
 * Hover darkens the fill ~7% and active darkens it ~23%, mirroring this
 * file's own base -> hover -> active spread for the violet default
 * (#6765E8 -> #5F5DE2 -> #4F4CD6 above).
 *
 * ⚠️ The fourth step in that spread — "the focus-visible outline lightens the
 * fill ~40% toward white" — was REMOVED in Topic 33 FIX-WP14 (owner ruling
 * 2026-07-29). It was a tonal relationship to the BUTTON, and a focus ring has
 * to be legible against the BAND BEHIND IT. Measured on the rendered pages:
 * #F8DC83 on kw-sky's #8FA8DC = 1.77:1, and #AFA89D on kw-gold's #F2D072 =
 * 1.58:1 — both far under the 3:1 WCAG 1.4.11 floor for a focus indicator.
 * Dropping the overrides lets both inherit `--mw-btn-focus-ring` from
 * components/_button.css, which is the bg-dark ink on these bands: 8.44:1 and
 * 13.46:1 respectively. Do not reintroduce a fill-tinted outline here.
 *
 * `--mw-gf-submit-shadow-rgb` went with them: the drop-shadow it fed was
 * clipped away by the submit button's paint-blob `clip-path` and never
 * rendered (FIX-WP14 Task C).
 * ------------------------------------------------------------------- */
[data-bg-token="kw-sky"] {
	--mw-gf-submit-bg: var(--kw-gold, #F4C430);
	--mw-gf-submit-color: var(--mw-color-bg-dark, #040420);
	--mw-gf-submit-bg-hover: #E3B62D;
	--mw-gf-submit-bg-active: #BC9725;
}

[data-bg-token="kw-gold"] {
	--mw-gf-submit-bg: var(--kw-castle-stone, #7A6E5C);
	--mw-gf-submit-color: var(--mw-color-text-light, #FAF8FF);
	--mw-gf-submit-bg-hover: #716656;
	--mw-gf-submit-bg-active: #5E5547;
}

/* ---------------------------------------------------------------------
 * Focus state — brand violet border + soft glow ring (replaces the
 * default outline so the field itself reads as focused).
 * ------------------------------------------------------------------- */

.gform_wrapper.gform-theme input:focus,
.gform_wrapper.gform-theme textarea:focus,
.gform_wrapper.gform-theme select:focus,
.gform_wrapper.gform-theme input:focus-visible,
.gform_wrapper.gform-theme textarea:focus-visible,
.gform_wrapper.gform-theme select:focus-visible {
	outline: none;
	border-color: var(--mw-color-primary, #6765E8);
	box-shadow: 0 0 0 3px rgba(103, 101, 232, 0.35);
}

/* ---------------------------------------------------------------------
 * Submit button — the brand's signature paint-blob CTA, matched to
 * `.mw-btn--primary` in components/_button.css (violet fill, Ice Cream
 * Man display face, 9-vertex hand-drawn clip-path, clip-aware glow).
 *
 * GF 2.10's framework paints the submit button through a (0,6,1) selector
 * (`.gform-theme--framework.gform-theme.gform_wrapper
 * input[type="submit"].button.gform_button`). To own the button without
 * `!important` we mirror that exact compound and add `.gform_footer`,
 * reaching (0,7,1) so brand values win outright. `.gform_button` alone
 * covers the (rarer) `<button>` markup at lower specificity — the
 * `input[type="submit"]` variant is the one GF actually renders.
 *
 * Topic 33 FIX-WP8 — token-driven so a band context (see the
 * `[data-bg-token]` blocks below) can recolour the button without
 * out-specifying this compound. The values below are the DEFAULTS
 * (today's violet); with no ancestor setting the --mw-gf-submit-* tokens
 * every surface renders byte-identically to before this change.
 * ------------------------------------------------------------------- */

.gform-theme--framework.gform-theme.gform_wrapper .gform_footer input[type="submit"].button.gform_button,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer input[type="submit"].button.gform_button,
.gform-theme--framework.gform-theme.gform_wrapper .gform_footer button.gform_button,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer button.gform_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--mw-gf-submit-bg, var(--mw-color-primary, #6765E8));
	color: var(--mw-gf-submit-color, var(--mw-color-text-light, #FAF8FF));
	border: 0;
	border-radius: 0;
	padding: 0.85rem 1.9rem;
	font-family: var(--mw-font-display, system-ui, sans-serif);
	font-size: 1.05rem;
	letter-spacing: 0.04em;
	line-height: 1;
	cursor: pointer;
	/* No drop-shadow glow: the clip-path below is applied after the element
	 * paints, so it was clipped away and never rendered (FIX-WP14 Task C —
	 * same defect, and same deletion, as `.mw-btn--primary`). */
	clip-path: polygon(
		2.19% 0%,
		28.21% 5.10%,
		96.24% 8.16%,
		100% 50%,
		96.24% 100%,
		49.84% 96.94%,
		2.19% 100%,
		2.19% 72.45%,
		0% 44.90%
	);
	transition: background 0.18s ease, filter 0.18s ease, transform 0.18s ease;
}

.gform-theme--framework.gform-theme.gform_wrapper .gform_footer input[type="submit"].button.gform_button:hover,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer input[type="submit"].button.gform_button:hover,
.gform-theme--framework.gform-theme.gform_wrapper .gform_footer button.gform_button:hover,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer button.gform_button:hover {
	background: var(--mw-gf-submit-bg-hover, var(--mw-color-primary-hover, #5F5DE2));
	transform: translateY(-2px);
	/* brightness KEPT — a colour filter tints the element's own pixels, which
	 * survive the clip. Only the drop-shadow beside it was dead. */
	filter: brightness(1.06);
}

.gform-theme--framework.gform-theme.gform_wrapper .gform_footer input[type="submit"].button.gform_button:active,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer input[type="submit"].button.gform_button:active,
.gform-theme--framework.gform-theme.gform_wrapper .gform_footer button.gform_button:active,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer button.gform_button:active {
	background: var(--mw-gf-submit-bg-active, var(--mw-color-primary-pressed, #4F4CD6));
	transform: translateY(0);
	/* `none`, not omitted — cancels the hover brightness, which the deleted
	 * drop-shadow used to do implicitly by replacing the whole value. */
	filter: none;
}

/* The submit button copies `.mw-btn--primary`'s 9-vertex clip above, and so it
 * copied the focus-ring defect with it: `clip-path` is applied after the
 * element paints, so this `outline` — offset OUTSIDE the border box — was
 * clipped away in full and the ring never rendered. Same fix as
 * components/_button.css (Topic 33 FIX-WP14): lift the clip for the duration
 * of the focus state so the ring paints, and round the exposed rectangle to
 * the house 6px. Fixing only `_button.css` would have left every form's submit
 * button with no visible keyboard focus. */
.gform-theme--framework.gform-theme.gform_wrapper .gform_footer input[type="submit"].button.gform_button:focus-visible,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer input[type="submit"].button.gform_button:focus-visible,
.gform-theme--framework.gform-theme.gform_wrapper .gform_footer button.gform_button:focus-visible,
.gform-theme--framework.gform-theme.gform_wrapper .gform_page_footer button.gform_button:focus-visible {
	outline: 3px solid var(--mw-gf-submit-outline, var(--mw-btn-focus-ring, var(--mw-color-primary-glow, #A8A7FF)));
	outline-offset: 3px;
	clip-path: none;
	border-radius: 6px;
}

/* ---------------------------------------------------------------------
 * Validation / success states — token-driven (Topic 33 FIX-WP8) so a band
 * context can supply a legible -ink override without touching the GLOBAL
 * --mw-color-error / --mw-color-success fill tokens (FIX-WP10 owns those
 * and introduces its own separate -ink variants for the studio-light
 * surface; namespacing --mw-gf-error-ink / --mw-gf-success-ink here keeps
 * both WPs compatible instead of fighting over one token). With no
 * ancestor setting these, every surface renders byte-identically to
 * before this change.
 * ------------------------------------------------------------------- */

.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message,
.gform_wrapper .gform_validation_errors {
	color: var(--mw-gf-error-ink, var(--mw-color-error, #FF5A6A));
}

/* The summary box keeps GF's own #C02B0A border otherwise, which measures
 * 2.45:1 on kw-sky — under the 3:1 non-text floor while the text inside it
 * sits at 4.51:1. Track the ink so the boundary is as legible as the copy.
 * Anchored on the framework compound documented at L82-94: a plain
 * `.gform_wrapper .gform_validation_errors` (0,2,0) loses to GF's own
 * (0,4,0) rule and silently no-ops (verified live). */
.gform-theme--framework.gform-theme.gform_wrapper .gform_validation_errors {
	border-color: var(--mw-gf-error-ink, var(--mw-color-error, #FF5A6A));
}

.gform_wrapper .gfield_error input[type="text"],
.gform_wrapper .gfield_error input[type="email"],
.gform_wrapper .gfield_error input[type="tel"],
.gform_wrapper .gfield_error input[type="url"],
.gform_wrapper .gfield_error input[type="number"],
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select {
	border-color: var(--mw-gf-error-ink, var(--mw-color-error, #FF5A6A));
}

.gform_wrapper .gform_confirmation_message,
.gform_confirmation_wrapper .gform_confirmation_message {
	color: var(--mw-gf-success-ink, var(--mw-color-success, #35D07F));
}

/* ---------------------------------------------------------------------
 * Brand-tier awareness — Studio / K-World / Kaeros accent shift.
 * The body-level `is-brand-*` class (set in functions.php via
 * mystwood_studios_ab_body_class_brand()) lets a Gravity Forms form
 * rendered on a K-World or Kaeros page pick up that brand's accent
 * instead of the default Studio violet.
 * ------------------------------------------------------------------- */

/* Topic 33 FIX-WP8 — the is-brand-kworld submit + focus rules that used to
 * live here were DEAD CODE: this compound computes (0,4,2), the framework
 * submit compound above computes (0,7,1), and the focus-visible rule was
 * fighting an outline already zeroed by the `outline: none` at L201. Verified
 * live: the button rendered violet on every K-World page regardless of this
 * block. Replaced by the token-driven `[data-bg-token="kw-sky"/"kw-gold"]`
 * blocks below, which re-key at the same specificity the framework compound
 * already wins at (via the --mw-gf-submit-* custom properties) instead of
 * trying to out-specify it. */

/* NOTE — the Kaeros twin below carries the identical dead-specificity
 * defect (compound computes (0,4,2) vs the framework's (0,7,1); its
 * focus-visible rule fights the same zeroed outline). Not fixed here — no
 * Kaeros page is in this WP's verification list. Logged as a FIX-WP9
 * follow-up. */
body.is-brand-kaeros .gform_wrapper .gform_footer .gform_button,
body.is-brand-kaeros .gform_wrapper .gform_footer input[type="submit"],
body.is-brand-kaeros .gform_wrapper .gform_page_footer .gform_button,
body.is-brand-kaeros .gform_wrapper .gform_page_footer input[type="submit"] {
	background: var(--lore-oxblood, #6B2418);
}

body.is-brand-kaeros .gform_wrapper input:focus-visible,
body.is-brand-kaeros .gform_wrapper textarea:focus-visible,
body.is-brand-kaeros .gform_wrapper select:focus-visible,
body.is-brand-kaeros .gform_wrapper .gform_footer .gform_button:focus-visible,
body.is-brand-kaeros .gform_wrapper .gform_footer input[type="submit"]:focus-visible {
	outline-color: var(--lore-gilt, #A87D32);
}
