/* about.css — about-contact-260913. /about, /contact and the four /capabilities/<x> stubs.
   Tokens and type come from home.css, which loads first; nothing is redefined here.
   Same measure as legal.css (68ch) so body copy reads identically across the quiet pages. */
/* round4c fix r1 F7 (G12): the prose column STARTS on the page gutter. `margin:0 auto`
   centred it, which put /about's left edge at x~215 at 1440 while every other page began at
   var(--pad) - a second left edge on the same site. A narrower measure is fine; a different
   left edge is not. */
/* round4c fix r1 F7 (G12) second half: scoped to `main`. `qpage` puts the page class on the
   BODY as well (`<body class="qp abt"><main class="abt">`), so an unscoped `.abt` applied this
   padding TWICE and /about's h1 started at x=80 at 1440 - two gutters, not the ruled one. */
main.abt,main.ctc{padding:clamp(48px,7vw,96px) var(--pad) clamp(56px,8vw,104px);max-width:calc(78ch + 2 * var(--pad));margin:0}
.abt h1,.ctc h1{font-family:Newsreader,Georgia,serif;font-weight:300;font-size:clamp(30px,4vw,44px);line-height:1.14;letter-spacing:-.01em;margin:0;max-width:17ch}
/* round4c-260917 B6 / A2 (LOW, adjacent). 28ch at this size wrapped the subhead at about 200px,
 * so a 40-character sentence broke into three stub lines. "Same measure as the lede" is a
 * PHYSICAL line length, not the same ch count: the lede is 68ch of 19px body, and ch is relative
 * to each element's own font-size, so 68ch here at up to 24px would overrun it. 54ch x 24px is
 * 68ch x 19px, so the two wrap at the same place on the page. Measured on the rendered page, not
 * computed and trusted. */
.abt .sub{font-family:Newsreader,Georgia,serif;font-size:clamp(20px,2.6vw,24px);line-height:1.3;color:var(--muted-sm);margin:.5em 0 0;max-width:54ch}
.abt p,.ctc p{font-size:19px;line-height:1.62;color:var(--ink);max-width:68ch;margin:1.35em 0 0}
/* round4c B9 L3 (FABLE NOTE 9, Thom 21:55 "about and contact should just match the other
   pages"): scoped to `main`, the same one-shell bleed the padding comment above describes and
   for the same reason - `qpage` puts the page class on the BODY too, so an unscoped `.abt h2`
   also matched the SHARED footer's .cols column headings. That overrode home.css:226
   `.cols h2` (#a9a3a0 on ink, 4.8:1) with --muted-sm #6B6866 = 2.17:1 at 13px/400, and axe
   blocked /about and /contact at both widths while the other 71 pages passed. Scope fix, not
   a colour: nothing here changes what the page's own section labels look like, and home.css
   is untouched, so the footer simply inherits the shared style again. */
main.abt h2,main.ctc h2{font-size:13px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-sm);margin:0 0 1.1em;padding-bottom:.9em;border-bottom:1px solid var(--hair)}
.abt section{margin-top:clamp(48px,7vw,88px)}
.abt figure{margin:clamp(40px,6vw,72px) 0 0}
.abt figure img{width:100%;height:auto}

/* the people wall — about-people-260914. Eight approved portraits (headshots-260914 r5d).
   COLUMN COUNT IS EXPLICIT, not auto-fill: the wall has to land on 2 at phone and 4 on the
   desktop measure, and auto-fill makes that a function of the container instead of a rule.
   The tiles are pre-cut 4:5 at one head scale, so the img is NOT re-cropped here: 4/5 +
   width:100% is the native frame. object-fit is a guard against a future non-4:5 file, not
   a crop. Rows stay uniform because every tile carries the same ratio. */
.pplw{list-style:none;margin:0;padding:0;display:grid;gap:clamp(22px,3vw,34px) clamp(14px,2.2vw,26px);grid-template-columns:repeat(2,minmax(0,1fr))}
.pplw li{margin:0}
.pplw .pplc{margin:0}
/* round4c B6 A1 -- 9/11 s6 draws the wall as SQUARES in two rows of 5 + 4; round4b shipped 4/5
 * portrait rectangles in rows of 4, which is what orphaned Nosa onto a third row at 1440. The
 * ratio is 1/1 and the 1440 track count is 5, so nine people land 5 + 4 with no orphan and no
 * empty cell. object-fit:cover means the existing tiles re-crop rather than distort. */
.pplw .pplc img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--hair)}
.pplw figcaption{margin-top:12px}
.pplw .nm{display:block;font-family:"Inter Tight",system-ui,sans-serif;font-size:17px;font-weight:400;line-height:1.25;color:var(--ink)}
.pplw .rl{display:block;font-family:"Inter Tight",system-ui,sans-serif;font-size:14px;line-height:1.4;color:var(--muted-sm);margin-top:3px}
/* minmax(0,1fr), not 1fr: a long name in a caption can widen an auto track and make two people
 * different sizes -- the same defect class as the wall tiles at 390 (R-D). */
@media (min-width:640px){.pplw{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1024px){.pplw{grid-template-columns:repeat(5,minmax(0,1fr))}}
.abt h3{font-size:13px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-sm);margin:2.4em 0 1.1em}

/* brands impacted: text, not logos — the list is a sheet cell (Pages C23). */
/* about-contact-r2-260913: the cell is one sentence and ships as one sentence. Was a
   grid <ul> of 41 <li>, which is the build inventing a shape the copy does not have. */
.brl{margin:0;max-width:62ch;font-size:17px;line-height:1.65}

.bests{list-style:none;margin:1.8em 0 0;padding:0;display:grid;gap:14px}
.bests li{font-family:Newsreader,Georgia,serif;font-size:clamp(19px,2.2vw,22px);line-height:1.3;margin:0}

/* contact */
.ctc .nap{font-style:normal;font-size:19px;line-height:1.62;margin:1.35em 0 0;color:var(--ink)}
.ctc .prn{list-style:none;margin:1.8em 0 0;padding:0;display:grid;gap:30px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.ctc .prn li{margin:0}
/* round2-260915 A2: photo above each contact card. Karmen left / Thom right is prod
   source order; the grid already stacks at one column on phone. Text alignment of the
   card is deliberately NOT changed (the mock centres it; that would be a second /contact
   change and the ruling is photo-only). */
.ctc .prn .pho{display:block;width:100%;max-width:208px;height:auto;aspect-ratio:4/5;object-fit:cover;margin:0 0 16px;background:var(--hair)}
.ctc .prn .nm{display:block;font-family:Newsreader,Georgia,serif;font-size:22px;line-height:1.3}
.ctc .prn .rl{display:block;font-size:14px;line-height:1.45;color:var(--muted-sm);margin:4px 0 10px}
.ctc a{display:inline-block;min-height:24px}
.ctc .prn a{font-size:17px;line-height:1.5;text-decoration:none;border-bottom:1px solid var(--hair)}
.ctc .prn a:hover{border-bottom-color:var(--ink)}
.ctc .soc{list-style:none;margin:1.35em 0 0;padding:0;display:flex;flex-wrap:wrap;gap:22px}
.ctc .soc a{font-size:17px;text-decoration:none;border-bottom:1px solid var(--hair);min-height:44px;display:inline-flex;align-items:center}

/* round4e-260918 D24: the .phnote placeholder block is removed with the mechanism. */
@media (max-width:480px){.abt p,.ctc p{font-size:17px}.brl{font-size:16px}}

/* ---- thom-rulings-260913: /contact form (Ruling #21) ----------------------- */
/* Same shapes as subscribe.css so the two forms on this site are one pattern, not two.
   Scoped to .ctc so nothing else on /about moves. */
.ctc .cform{margin:2em 0 0;display:flex;flex-direction:column;gap:22px;max-width:52ch}
.ctc .fld{display:flex;flex-direction:column;gap:7px}
.ctc .fld label{font-size:13px;font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.ctc .fld input,.ctc .fld textarea{font-family:inherit;font-weight:300;font-size:17px;color:var(--ink);
  background:#fff;border:1px solid var(--hair);border-radius:0;padding:0 14px;min-height:52px;width:100%}
.ctc .fld textarea{padding:12px 14px;min-height:150px;line-height:1.55;resize:vertical}
.ctc .fld input:focus-visible,.ctc .fld textarea:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-color:var(--ink)}
.ctc .fld input[aria-invalid="true"],.ctc .fld textarea[aria-invalid="true"]{border-color:#B3261E;border-width:2px}
/* Not display:none — some bots skip hidden inputs; aria-hidden + tabindex do the telling. */
.ctc .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ctc .err{font-size:15px;line-height:1.5;color:#B3261E;margin:0;padding:12px 14px;border-left:2px solid #B3261E;background:#fdf6f5}
.ctc .err:empty{display:none}
.ctc .cform button[type=submit]{font-family:inherit;font-size:15px;font-weight:400;letter-spacing:.07em;
  text-transform:uppercase;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:0;
  min-height:52px;padding:0 26px;align-self:flex-start;cursor:pointer}
.ctc .cform button[type=submit]:hover{background:#242222}
.ctc .cform button[type=submit]:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.ctc .nojs{font-size:15px;line-height:1.55;color:var(--ink);margin:0;padding:14px 16px;border:1px solid var(--hair);background:#fff}
body[data-ts="on"] .ctc .nojs{display:none}
.ctc .pref{font-size:15px;line-height:1.55;color:var(--ink);margin:1.4em 0 0;max-width:52ch}
/* about-build-260914 — blocks 2 (under-wall contacts), 3 (what we do), 5 (proof strip),
   and /contact thinned. .bests / .cform rules above are dead with block 4 and the form,
   left in place rather than removed: deleting CSS for an element a ruling might restore is
   a separate change. */
.abt .uwl{list-style:none;margin:clamp(30px,4vw,44px) 0 0;padding:0;display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.abt .uwl li{margin:0}
.abt .uwl .nm{display:block;font-family:Newsreader,Georgia,serif;font-size:21px;line-height:1.3}
.abt .uwl .rl{display:block;font-size:14px;line-height:1.45;color:var(--muted-sm);margin:4px 0 10px}
.abt .uwl a{font-size:17px;line-height:1.6;text-decoration:none;border-bottom:1px solid var(--hair)}
.abt .uwl a:hover{border-bottom-color:var(--ink)}
.wedo{margin:1.6em 0 0;display:grid;gap:clamp(22px,2.6vw,30px)}
.wedo dt{margin:0;font-family:"Inter Tight",system-ui,sans-serif;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.wedo dt a{text-decoration:none;border-bottom:1px solid var(--hair);padding-bottom:2px;min-height:44px;display:inline-flex;align-items:center}
/* round4c-260917 B6 / A3 (LOW, adjacent). DECLARED INTERPRETATION, not a silent pick. A3 offers
 * "plain label, or a real link" -- and every one of these IS already a real link (rendered:
 * <a href="/capabilities/production"> etc., five of them). The hairline-at-rest is the site's own
 * link style (.nmeta a, .proofr a), so "real link" is the half already true; what was off is the
 * hover, which went to ink while every other link on the site goes green. Aligning it makes them
 * behave like links instead of sitting between the two. The "plain label" alternative would mean
 * removing the underline from five working navigation links, which is a Karmen call on an
 * approved page, not a build call -- flagged in the conformance sheet. */
.wedo dt a:hover,.wedo dt a:focus-visible{border-bottom-color:var(--green)}
.wedo dd{margin:8px 0 0;max-width:62ch;font-size:17px;line-height:1.65;color:var(--ink)}
/* round4c-260917 B6 / R-J. The three .abproof .brl rules are GONE, not overridden: the <ul class
 * ="brl"> they styled no longer exists anywhere in public/ (measured: 0 occurrences), and a dead
 * declaration that still reads like the live one is how B5's F3 nearly got "fixed" twice. /about's
 * brands strip is now the same p.clients component Home uses, so the type comes from home.css:191
 * and the two strips cannot drift.
 * Only the slot is restored here: full column width and the 1.5em top margin the .brl block had,
 * so the strip sits exactly where it sat and the change is shape (gapped list -> separated text),
 * not position. The round4b note it replaces is still true and worth keeping: the brand list is
 * static and unlinked (27 items, 0 <a>), and if a ruling ever re-links it, .proof .clients a in
 * home.css:336 already carries the linked type for this component. */
.abproof .clients{max-width:none;margin:1.5em 0 0;font-size:13px;letter-spacing:.1em;line-height:2;color:var(--muted-sm)}
/* The type is RESTATED, not inherited, and that is deliberate. .clients (home.css:191) is 13px
 * uppercase, but this strip sits inside .abt, where ".abt p" (0,1,1) out-specifies ".clients"
 * (0,1,0) and was painting it 19px -- measured on the rendered page: font-size 19px, 8 lines at
 * 1440, where Home's identical component reads 13px in 3. Reusing a component inside a container
 * that restyles its element is not reuse, so the contract is pinned here at equal specificity and
 * the two strips now measure the same. Same cascade-order trap as B5's F3 and the B2 chip. */
/* round4b-260916 B2: Awards and Certifications and Affiliations are their own sections after
 * Brands impacted, in that order. Awards is two items, never one line. */
.abawards .awl{list-style:none;margin:1.5em 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}
.abawards .awl li{margin:0;font-family:"Inter Tight",system-ui,sans-serif;font-size:15px;letter-spacing:.04em;line-height:1.5}
.abawards .awl a{text-decoration:none;border-bottom:1px solid var(--hair)}
.abawards .awl a:hover{border-bottom-color:var(--ink)}
.abaff .seals{margin:1.5em 0 0;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
/* The WBENC file is the white footer artwork, so it inverts to read on paper. The two
 * affiliation marks are supplied as their own brand colours (AAF black, AMA navy) and are
 * NOT inverted or recoloured -- a third-party mark's colour is not ours to change. */
.abaff .seals .seal{display:block;width:auto;height:52px;filter:invert(1)}
.abaff .seals .aff{display:block;width:auto;height:34px}
@media (max-width:480px){.abaff .seals{gap:20px}.abaff .seals .seal{height:44px}.abaff .seals .aff{height:28px}}
.abproof .clio{font-family:"Inter Tight",system-ui,sans-serif;font-size:15px;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid var(--hair);min-height:44px;display:inline-flex;align-items:center}
.abproof .clio:hover{border-bottom-color:var(--ink)}
.ctc .prn .ask{display:block;margin-top:10px;font-size:14px;line-height:1.5;color:var(--muted-sm)}
.ctc .loc{margin:1.35em 0 0;font-size:17px;line-height:1.6}
.ftr .lgl,.ftr .seall{display:inline-flex;text-decoration:none;border:0}
