# Contact Us — Round 2 reconcile (agent contact-r2b, 2026-06-17)

Frames: desktop `3121:23946` (1440×2488), mobile `3121:24843` (393×3640). File key R6EY4TpNCvVqUEikM7Lof9.
Method: per-section IR (bbox + per-run fonts/colors/case) vs DOM `getBoundingClientRect`/`getComputedStyle`, numbers compared. Browse engine, slot held whole run.

Going in, the page was already substantially built and close. This round measured every page-unique
section against both frames and fixed the few measured deltas. No ON_HOVER/ON_CLICK reactions exist
anywhere in either contact-us frame IR (verified by grep) — so there are NO design-specified hover
variants for this page. Existing hovers (chip→navy, button→brightness, input focus ring) are sensible
conventional defaults that contradict no IR; verified they FIRE.

## Desktop (1440px) — measured vs IR

| Section | Figma node | measured vs IR | fixed? | residual/note |
|---|---|---|---|---|
| Breadcrumb | 3121:23961 | "Home" Poppins Light 15px #000 TITLE ✓, "Contact Us" #636262 ✓; pos x48 vs IR x68, y127 vs y156 | n/a | uses "›" chevron; Figma separator "Arrow 13" is a degenerate 1px line (renders as spacing) — chevron kept as conventional/accessible separator. 20px x / 29px y offset within container-padding + shared-nav-height tolerance |
| Hero banner | 3121:23977 | banner 302h/r15/#f4f4f8 ✓; heading Poppins SemiBold 55px #2b286f TITLE ✓ at x66 y59 ✓; **ls was -0.4px, IR=0%** | YES | set `lg:tracking-[0px]` |
| Hero — location | Component 204 | x60 y174 ✓; icon ellipse 38×38 #2b286f border at +16 ✓; text Poppins Light 23px #2b286f TITLE ls -0.92px ✓ | n/a | — |
| Hero — Delhi/Rest | Group 1035 | Delhi x588 y190, Rest x1067 y193 ✓; label Medium 15px + number Light 23px ✓ | n/a | label inherits wrapper ls -0.92px (IR per-run -0.6px@15px); negligible |
| Form card | 3121:23985 | navy 636×645 r15 #2b286f x116 ✓; image panel 542×677 r15 x782, gap 30 ✓, offset −32 ✓ | n/a | — |
| Form fields | 3121:23990 | form w469 centered (x84 in, IR ~83) ✓; field h48 r6 #f4f4f8 ✓; textarea 107 ✓; placeholder Poppins Light 20px #919191 TITLE ✓; gap 21 ✓ | n/a | heading "Appointment Form" Poppins **Regular** 38px white ORIGINAL-case ✓; head→field gap 39 (IR bbox-implied ~29; within line-box ambiguity) |
| Submit button | Component 203 | 469×42 r6 #ffcb05; "Submit" Poppins Light 20px #2b286f ✓ | n/a | — |
| State chips | Component 201/Group 993 | h50 r7 border #2b286f Poppins 22px ✓; "All" #ffcb05 Medium #2b286f ✓; inactive white Light ✓; horiz gap 20, vert 16 ✓; **wrapper lacked capitalize (IR=TITLE)** | YES | added `capitalize` to all 18 chips. Content already title-cased so cosmetically unchanged; CMS-safe now. Wraps to 3 rows at full state list (dynamic CMS count — correct) |
| Map | Component 201/Mask group | desktop block 1351×553 #d9d9d9 + image; build iframe h553 | n/a | Google Maps iframe placeholder per build convention; Figma +/−/gps are the map's own UI |

## Mobile (393px) — measured vs IR (separate structure)

| Section | Figma node | measured vs IR | fixed? | note |
|---|---|---|---|---|
| Breadcrumb | Group 450 | Poppins Light TITLE ✓; **fs was 14px, IR=15px** | YES | dropped the `text-[14px] lg:` flip → `text-[15px]` |
| Hero banner | Frame 1597884734 | banner 345w (IR 344) r17 #f4f4f8 ✓; heading Poppins **Bold 30px** #2b286f **ORIGINAL-case** (no capitalize) ✓ w292 | n/a | mobile heading is NOT title-cased (desktop is) — build already correct |
| Hero contacts | Comp 213/214/215 | icons 30×30 **#ffcb05-filled** (vs desktop transparent+navy border) ✓; location Light 15px; Delhi/Rest label Medium **12px** + number Light **15px** ✓ | n/a | mobile icon fill flip already wired |
| Form | Frame 1597884735 | navy r15 #2b286f full-bleed w345 ✓; fields 345×48 r6; placeholder Poppins Light **15px** TITLE ✓; heading Regular **30px** ORIGINAL ✓; Submit 345×42 Light 20px ✓; textarea 107 ✓ | n/a | — |
| State chips | Component 205 | h**31** r7 border #2b286f Poppins Light **15px** TITLE ✓; "All" Medium ✓; wraps cleanly | n/a | — |
| Map | Comp 205/Mask group | h**681** ✓ r15; image panel (doctor) h**304** ✓ | n/a | iframe placeholder |
| Overflow | — | `document.documentElement.scrollWidth` = 393 ✓ | n/a | no horizontal overflow |

## Hover / interaction
- IR grep across desktop + mobile contact-us nodes: **0 non-empty `reactions`** → no Figma hover/click variants for chips, form fields, Submit, or hero contact links.
- Verified existing states FIRE (browse hover/focus + computed style): inactive chip hover → bg #2b286f + white text ✓; name input focus → 1px #ffcb05 ring ✓. These are conventional defaults, not design-mandated; kept (contradict no IR).

## Fixes committed this round
1. Hero heading desktop letter-spacing `-0.4px → 0px` (IR ls = 0%).
2. State chips: added `capitalize` (IR textCase = TITLE) to all 18 chips.
3. Mobile breadcrumb font-size `14px → 15px` (mobile IR = 15px).

## Residuals / open questions
- Breadcrumb separator: Figma uses a degenerate 1px line ("Arrow 13"); build keeps a "›" chevron as a
  conventional accessible separator. Deliberate deviation — flag to client only if they want the bare
  whitespace look.
- Breadcrumb desktop top offset y127 vs IR y156 (≈29px): governed by shared nav height, not page-unique;
  left as-is.
- Map is a Google Maps iframe placeholder (renders grey in headless); client swaps in the real embed per
  build convention.
