/* UI-02D-A11Y accessibility layer: English Fleet Hub (#fh-root, class uirh-fleet). Reviewed, hand-written; loaded after
   pages/fleet-layout.css. Findings: docs/ui-system/evidence/UI-A11Y-PREP/FINDINGS.json (G1b, G1e, G3b, G4b);
   evidence of this repair: docs/ui-system/evidence/UI-02D-A11Y/. Every selector starts from the page root with the
   layer's own 4-class prefix, so it wins over the page stylesheet and the layout layer by specificity and source
   order; only existing page tokens are used; no layout box, spacing, typography, content or behaviour changes at
   normal text size except the declared colour changes (the Sort label and the field boundaries). No !important. */

/* G1b: at enlarged text the phone card-swipe controls no longer fit on one line; the row may wrap instead of pushing
   Next yacht past the viewport (96px page overflow at 390px, 200% text). The count starts from a zero basis (it still
   grows into the free space and never shrinks below its own words), so the row wraps only when the unwrapped row would
   overflow; at normal text the row is laid out as before at every width (320px included). */
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-swipe-nav{flex-wrap:wrap}
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-strip-count{flex-basis:0}

/* G1e: a planner answer (for example "Choose an hourly budget") is shown in full, on a second line when needed, instead
   of being cut with an ellipsis. The trigger's 48px minimum height grows with the text. */
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet #help-choosing .fh-plan-trig-v{white-space:normal;overflow:visible;text-overflow:clip}

/* G4b: the "Sort:" label uses the secondary text token (Light #425466, Dark #A9BDD0) instead of the tertiary one
   (4.27:1 on ivory). */
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-tb-sort-lbl{color:var(--t2)}

/* G3b: the boundaries of the Fleet form fields (the Sort and filter selects, the filter guest and budget inputs, the
   planner selects, the planner answer triggers and the guest stepper) use the tertiary text token (Light #6B7685,
   Dark #8FA3B6) instead of the hairline token --b1 (1.24-1.45:1). REST STATE ONLY: an invalid field
   ([aria-invalid="true"], .is-bad) and an open trigger ([aria-expanded="true"]) are excluded here, so their existing
   rules (#8C1D18 / #F2B8B5, and --ink) still apply unchanged; focus keeps its existing outline. Hover, previously the
   lighter --b2 (below 3:1), becomes the darker secondary token --t2, still distinct from rest. */
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-sel,
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-inp:not([aria-invalid="true"]),
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-field select,
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet #help-choosing .fh-plan-trig:not(.is-bad):not([aria-expanded="true"]),
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet #help-choosing .fh-plan-f:not(.is-bad) .fh-plan-step{border-color:var(--t3)}
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet .fh-sel:hover,
.uirh-fleet.uirh-fleet.uirh-fleet.uirh-fleet #help-choosing .fh-plan-trig:not(.is-bad):not([aria-expanded="true"]):hover{border-color:var(--t2)}
