/* ATX cohesion pass, 27 Oct 2026 (ruling 85; header ruling 87 is in shell.css). Source of truth:
   atx-headshots-brain/site-rebuild-2026-10-26/COHESION-AUDIT-2026-10-27.md sections 2 to 5 and
   COHESION-DECISIONS-2026-10-27.md. Generated into site/assets/css/cohesion.css by tools/port/shell.mjs;
   edit tools/port/cohesion.css. Markup hooks come from tools/port/cohesion.mjs. */

/* ---------- item 1: the two heroes whose photo Squarespace's parallax script revealed ---------- */
.section-background img[data-atx-fx]{visibility:visible!important}
.section-background-content{position:absolute;inset:0}
.section-background-content > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.section-background-content .background-fx-canvas{display:none}

/* ---------- items 4 to 7: one hero specification (the money page's, measured: COHESION-AUDIT section 4) ----------
   section.atx-hero carries per-page variables from cohesion.mjs heroLayout(): --hx (object-position x), --hoff
   (now always 0: ruling 90 withdrew decision 10's backdrop fill), --hfill (the
   photo's own backdrop colour), --hbl/--hbw (image box: the whole section, or the 56% away from the text when the
   portrait would otherwise sit under the text column). Desktop: 853 px at 1440 x 900, text column 620 px at
   11vw (or mirrored), H1 58 px. Phones: the photo is a 250 px strip above the text, never behind it. */
@media (min-width:768px){
  html body section.page-section.atx-hero{min-height:0!important}
  html body section.atx-hero .content-wrapper{padding:0!important;min-height:0!important}
  html body section.atx-hero .fluid-engine{display:block!important;height:auto!important;grid-template-rows:none!important;min-height:min(86vh,860px);padding:clamp(120px,16vh,200px) 0 80px!important;box-sizing:border-box}
  html body section.atx-hero .fe-block{grid-area:auto!important;width:min(620px,46vw)!important;margin-left:max(24px,11vw)!important;margin-right:0!important}
  html body section.atx-hero[data-atx-side="r"] .fe-block{margin-left:auto!important;margin-right:max(24px,11vw)!important}
  html body section.atx-hero .section-background{overflow:hidden}
  html body section.atx-hero .section-background > img,
  html body section.atx-hero .section-background-content{position:absolute!important;top:var(--hoff,0px)!important;left:var(--hbl,0%)!important;width:var(--hbw,100%)!important;height:calc(100% - var(--hoff,0px))!important;right:auto!important;bottom:auto!important}
  html body section.atx-hero .section-background > img,
  html body section.atx-hero .section-background-content > img{object-fit:cover!important;object-position:var(--hx,50%) 20%!important}
  /* ruling 90 (28 Oct): no backdrop fill, no fade, no pushed-down image box (decision 10's interim withdrawn) */
  html body section.atx-hero .section-background-overlay{display:none!important}
  /* ruling 90: the money-system heroes keep their own focal point (70% 18%, as live); the Google lander sits like
     the guide-session and limited-time references (x% 20%) instead of its old 50% 50% */
  html body #page section.atx-hero[data-atx-kind="lander"] .section-background img{object-position:var(--hx,62%) 20%!important}
}
/* the text root of a non-system build: its own padding, panels and min-heights go; the spec's type takes over */
section.atx-hero .atx-hero__text{padding:0!important;margin:0!important;background:transparent!important;box-shadow:none!important;border:0!important;min-height:0!important;max-width:none!important;width:auto!important;position:relative!important;inset:auto!important;transform:none!important}
section.atx-hero .atx-hero__text > div:not([class*="row"]):not([class*="cta"]):not([class*="jump"]):not([class*="trust"]):not([class*="cred"]){padding:0!important;margin:0!important;background:transparent!important;box-shadow:none!important;border:0!important;min-height:0!important;max-width:none!important;width:auto!important;position:relative!important;transform:none!important}
section.atx-hero .atx-hero__text,section.atx-hero .atx-hero__text :is(h1,p,div){text-align:left!important}
section.atx-hero .atx-hero__text::before,section.atx-hero .atx-hero__text::after{display:none!important}
html body #page section.atx-hero .atx-hero__text h1{font-family:Inter,-apple-system,sans-serif!important;font-size:clamp(32px,4.6vw,58px)!important;line-height:1.03!important;letter-spacing:-.025em!important;font-weight:800!important;margin:0 0 14px!important;max-width:var(--hh1,15ch)!important;text-transform:none!important}
section.atx-hero .atx-hero__text h1 em{font-style:normal!important;color:inherit!important}
section.atx-hero .atx-hero__text > p:not([class*="eyebrow"]):not([class*="label"]),
section.atx-hero .atx-hero__text > div > p:not([class*="eyebrow"]):not([class*="label"]){font-size:18px!important;line-height:1.45!important;max-width:44ch!important;margin:0 0 20px!important}
section.atx-hero[data-atx-theme="dark"] .atx-hero__text h1,section.atx-hero[data-atx-theme="dark"] .atx-hero__text h1 *{color:#fff!important}
section.atx-hero[data-atx-theme="dark"] .atx-hero__text p:not([class*="eyebrow"]){color:#c8c5bf!important}
section.atx-hero[data-atx-theme="dark"] .atx-hero__text p strong,section.atx-hero[data-atx-theme="dark"] .atx-hero__text p b{color:#fff!important}
section.atx-hero[data-atx-theme="light"] .atx-hero__text h1,section.atx-hero[data-atx-theme="light"] .atx-hero__text h1 *{color:#1c1916!important}
section.atx-hero[data-atx-theme="light"] .atx-hero__text p:not([class*="eyebrow"]){color:#2e2c29!important}
.atx-hero__ph{display:none}
@media (max-width:767px){
  html body section.page-section.atx-hero[data-atx-kind="build"]{min-height:0!important;background:var(--hfill,#1c1916)}
  html body section.atx-hero[data-atx-kind="build"][data-atx-theme="dark"]{background:#1c1916!important}
  html body section.atx-hero[data-atx-kind="build"][data-atx-theme="light"]{background:#f7f7f6!important}
  html body section.atx-hero[data-atx-kind="build"] .section-background{display:none!important}
  html body section.atx-hero[data-atx-kind="build"] .section-border{background:transparent!important}
  html body section.atx-hero[data-atx-kind="build"] .content-wrapper{padding:0!important;min-height:0!important}
  html body section.atx-hero[data-atx-kind="build"] .fluid-engine{display:block!important;height:auto!important;grid-template-rows:none!important;padding:0 0 40px!important}
  html body section.atx-hero[data-atx-kind="build"] .fe-block{grid-area:auto!important;width:auto!important;margin:0!important}
  .atx-hero__ph{display:block;width:100vw!important;max-width:none!important;height:250px!important;object-fit:cover;margin:0 0 22px calc(50% - 50vw)!important;border-radius:0!important}
  section.atx-hero .atx-hero__text{padding:0 20px!important}
  html body #page section.atx-hero .atx-hero__text h1{font-size:34px!important}
  section.atx-hero .atx-hero__text > p:not([class*="eyebrow"]),section.atx-hero .atx-hero__text > div > p:not([class*="eyebrow"]){font-size:17px!important}
}
/* item 7: about and contact: a dark page head (no photo), at least 40vh, so the transparent bar sits on the same dark ground */
section.atx-pagehead .section-background{background:#1c1916!important}
section.atx-pagehead{min-height:40vh}
/* light heroes: links and topic chips that were drawn for a dark panel read dark on the light ground */
section.atx-hero[data-atx-theme="light"] .atx-hero__text a:not([class*="btn"]):not([class*="cta"]){color:#1c1916!important;border-color:rgba(28,25,22,.35)!important}
section.atx-hero[data-atx-theme="light"] .atx-hero__text [class*="chip"]{color:#1c1916!important;border-color:rgba(28,25,22,.25)!important;background:rgba(255,255,255,.7)!important}
section.atx-hero[data-atx-theme="light"] .atx-hero__text [class*="label"],section.atx-hero[data-atx-theme="light"] .atx-hero__text [class*="eyebrow"]{color:#686763!important}
/* item 4: the money-system heroes on the town, executive and lander pages. Same block as the money page; the
   landers' own section paddings go (FB lander 749 -> 853; Google lander 964 -> 853 and its phone photo, which was
   inset 343 px, is full-bleed). The phone strip is anchored to the top like every portrait (decision 10). */
html body section.atx-hero:is([data-atx-kind="atxH"],[data-atx-kind="lander"]) .content-wrapper{padding:0!important;max-width:none!important;min-height:0!important}
html body #page section.atx-hero[data-atx-kind="lander"]{padding-top:var(--header-h)!important;min-height:0!important}
@media (max-width:767px){
  html body section.atx-hero:is([data-atx-kind="atxH"],[data-atx-kind="lander"]) .atxH__ph{width:100vw!important;max-width:none!important;margin:0 0 18px calc(50% - 50vw)!important}
  html body section.atx-hero:is([data-atx-kind="atxH"],[data-atx-kind="lander"]) .fluid-engine{padding:0 0 40px!important}
}
/* the Google lander's own #sq-rebuild pads its hero by id; the spec's padding replaces it */
#page #sec-hero.atx-hero .content-wrapper{padding:0!important}

/* ---------- item 8: the marquee logo band, the money page's component (its own rules live in its code block,
   so they are repeated here for the pages that did not carry it) ---------- */
.atx-coh-bandsec{display:block;position:relative;background:#f8f8f7}
.atx-coh-band{--ink:#1c1916;--muted:#6f6c67;--line:#e2e0dc;font-family:Inter,-apple-system,"Segoe UI",sans-serif;color:var(--ink);line-height:1.5;font-size:16px;text-align:left}
.atx-coh-band *{box-sizing:border-box}
.atx-coh-band .atxB__full{width:100vw;margin-left:calc(50% - 50vw);position:relative}
.atx-coh-band .atxB__in{max-width:1120px;margin:0 auto;padding:0 20px}
.atx-coh-band .atxB__logos{padding:20px 0 18px;border-bottom:1px solid var(--line);background:#f8f8f7}
.atx-coh-band .atxB__eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 12px!important}
.atx-coh-band .atxB__marq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.atx-coh-band .atxB__track{display:flex;align-items:center;gap:40px;width:max-content;animation:atxScroll 140s linear infinite}
.atx-coh-band .atxB__track img{height:46px;width:auto;max-width:none;opacity:.72}
.atx-coh-band .atxB__track img+img{margin-left:-40px}
@media (max-width:759px){.atx-coh-band .atxB__track img{height:38px}}
@keyframes atxScroll{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.atx-coh-band .atxB__track{animation:none;flex-wrap:wrap;width:auto}}

/* ---------- item 9: persona price cards on the system card (the money page's .atxB__s: white, 1px line, 10px
   radius, 22px padding, ink border on the picked card; name 20px/700; price 34px/800; full-width button) ---------- */
html body #page .atx-coh-cards .ip-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;gap:14px!important;align-items:stretch!important}
html body #page .atx-coh-cards .ip-card{background:#fff!important;border:1px solid #e2e0dc!important;border-radius:10px!important;box-shadow:none!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;transform:none!important;order:0!important;position:relative!important}
html body #page .atx-coh-cards .ip-card.featured{border:2px solid #1c1916!important}
html body #page .atx-coh-cards .ip-visual,html body #page .atx-coh-cards .ip-divider{display:none!important}
html body #page .atx-coh-cards .ip-body{padding:22px!important;display:flex!important;flex-direction:column!important;gap:6px!important;flex:1!important;background:#fff!important}
html body #page .atx-coh-cards .ip-badge{position:static!important;order:-2;align-self:flex-start;background:transparent!important;color:#6f6c67!important;font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;padding:22px 22px 0!important;margin:0!important;border:0!important;transform:none!important}
html body #page .atx-coh-cards .ip-card-eyebrow{font-size:12px!important;font-weight:700!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#6f6c67!important;margin:0!important}
html body #page .atx-coh-cards .ip-card-name{font-family:Inter,sans-serif!important;font-size:20px!important;font-weight:700!important;letter-spacing:0!important;line-height:1.2!important;color:#1c1916!important;margin:0!important}
html body #page .atx-coh-cards .atx-coh-flav{font-size:13px;font-weight:600;color:#6f6c67;margin:0}
html body #page .atx-coh-cards .ip-card-tagline{font-size:15px!important;line-height:1.45!important;color:#6f6c67!important;margin:2px 0 6px!important;min-height:0!important}
html body #page .atx-coh-cards .ip-price-row{margin:4px 0 0!important;display:flex!important;align-items:baseline!important;gap:8px!important;flex-wrap:wrap}
html body #page .atx-coh-cards .ip-price{font-size:34px!important;font-weight:800!important;letter-spacing:-.02em!important;color:#1c1916!important;line-height:1.1!important}
html body #page .atx-coh-cards .ip-price .atx-tax{font-size:14px!important;font-weight:600!important;color:#6f6c67!important;letter-spacing:0!important}
html body #page .atx-coh-cards .ip-price-meta,html body #page .atx-coh-cards .ip-duration{font-size:14px!important;color:#6f6c67!important;margin:0!important}
html body #page .atx-coh-cards .ip-features{margin:6px 0 18px!important;padding-left:18px!important;color:#6f6c67!important;flex:1!important;list-style:disc!important}
html body #page .atx-coh-cards .ip-features li{margin:0 0 4px!important;padding:0!important;font-size:15px!important;color:#6f6c67!important;border:0!important}
html body #page .atx-coh-cards .ip-features li::before{display:none!important}
html body #page .atx-coh-cards .ip-cta{margin-top:auto!important;width:100%!important;display:inline-flex!important;justify-content:center!important;align-items:center!important;background:#1c1916!important;color:#fff!important;border:1.5px solid #1c1916!important;min-height:58px!important}
html body #page .atx-coh-module{margin-top:40px}
html body #page .atx-coh-module .atx-gb-v13{text-align:left}

/* ---------- item 11: the one sticky bar, on phones (the booking system's look; .atx-cbar keeps atx-book.js's
   show/hide: after the first screen, never over a calendar or the footer) ---------- */
#atxSticky.atx-cbar{display:none}
@media (max-width:767px){
  #atxSticky.atx-cbar{display:flex!important;position:fixed;left:0;right:0;bottom:0;z-index:9999;gap:10px;background:#1c1916;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));transform:translateY(110%);transition:transform .25s}
  #atxSticky.atx-cbar.on{transform:none}
  #atxSticky.atx-cbar a{flex:1;display:inline-flex;justify-content:center;align-items:center;font-family:Inter,-apple-system,sans-serif;font-weight:700;font-size:15px;line-height:1.2;padding:12px;border-radius:6px;text-decoration:none!important;background:#fff;color:#1c1916!important;border:1.5px solid #fff}
  #atxSticky.atx-cbar a.gh{background:transparent;color:#fff!important;border-color:#9e9b97}
}

/* ---------- item 12: reviews on the system's text cards ---------- */
.atx-coh-quotes{font-family:Inter,-apple-system,"Segoe UI",sans-serif;color:#1c1916;line-height:1.5;text-align:left}
.atx-coh-quotes .atxB__q{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:24px}
.atx-coh-quotes blockquote{margin:0;background:#fff;border:1px solid #e2e0dc;border-radius:8px;padding:18px;display:grid;gap:10px;font-style:normal;font-size:16px}
.atx-coh-quotes blockquote p{margin:0;color:#1c1916}
.atx-coh-quotes i{color:#b8b4ad;font-style:normal;letter-spacing:2px}
.atx-coh-quotes cite{font-style:normal;font-size:13px;color:#6f6c67;font-weight:600}
html body #page .atx-coh-revgrid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important;gap:14px!important}
html body #page .atx-coh-revgrid .review-card{background:#fff!important;border:1px solid #e2e0dc!important;border-radius:8px!important;padding:18px!important;box-shadow:none!important;display:grid!important;gap:10px!important;text-align:left!important}
html body #page .atx-coh-revgrid .review-card *{font-style:normal!important}
html body #page .atx-coh-revgrid .review-card [class*="stars"] span,html body #page .atx-coh-revgrid .review-card [class*="stars"]{color:#b8b4ad!important}
html body #page .atx-coh-revgrid .review-card [class*="quote"]{font-size:16px!important;line-height:1.5!important;color:#1c1916!important;margin:0!important}

/* ---------- item 13: two button heights, the kit's 59 px primary and its 58 px card button ---------- */
body:not(.atx-g-blog) #page :is(a[class^="btn"], a[class*=" btn"], .s9-btn, .s15-cta-btn, .ip-team-link__btn, .ih-btn, .co-btn, .fn-btn, .afc-btn-primary, .afc-btn-secondary, .aect-btn-primary, .aect-btn-secondary, .atxb-btn, .aqb__cta, .aqh-cta, .atx-s7 > div > a, .atxH__btn, a.atx-book-btn, .btn-corp-primary, .btn-corp-secondary, .btn-conv-primary, .btn-conv-secondary):not(#atxSticky a):not(.atx-cbar a):not(.atxB__sticky a):not(.ip-cta):not(.atxB__s a):not(p > a):not(li > a){min-height:59px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}
body:not(.atx-g-blog) #page :is(.ip-cta, .atxB__s .atxB__btn){min-height:58px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}

/* item 15 (footer logo object-position) retired by walk fix F (28 Oct 2026): the redesigned footer (shell.mjs) sizes
   the wordmark at its own aspect ratio, so there is no wider box for the bitmap to sit inside. */

/* item 14 (ruling 88): an element whose only words were a removed claim (a badge, a velocity line) takes no space */
.atx-coh-emptied{display:none!important}

/* ruling 87: the bar keeps its height on scroll on every page, including the Google lander, whose own copy of the
   header CSS (#sq-rebuild, later in the cascade) shrank the phone bar from 84 to 71 px */
@media (max-width:799px){ html body #header.header.shrink .header-inner{padding-top:6vw!important;padding-bottom:6vw!important} }

/* ruling 90: where no position keeps the portrait clear of the text column (FAQ composite, convention scene), the
   text keeps a dark panel over the photo (the FAQ's own card, as live) instead of a fade */
@media (min-width:768px){
  html body #page section.atx-hero[data-atx-card] .atx-hero__text{background:rgba(28,25,22,.92)!important;padding:28px 32px!important;border-radius:2px!important}
  html body #page section.atx-hero[data-atx-card][data-atx-theme="light"] .atx-hero__text{background:rgba(247,247,246,.94)!important}
  html body #page section.atx-hero[data-atx-card] .fe-block{width:min(700px,52vw)!important}
  html body #page section.atx-hero[data-atx-card] .fluid-engine{padding-top:clamp(96px,12vh,140px)!important;padding-bottom:48px!important}
}
/* walk fix L (28 Oct 2026): the same panel, only from 768 to 1199 px, on a hero configured noCard (lawyer) */
@media (min-width:768px) and (max-width:1199px){
  html body #page section.atx-hero[data-atx-card-narrow] .atx-hero__text{background:rgba(28,25,22,.92)!important;padding:28px 32px!important;border-radius:2px!important}
  html body #page section.atx-hero[data-atx-card-narrow][data-atx-theme="light"] .atx-hero__text{background:rgba(247,247,246,.94)!important}
  html body #page section.atx-hero[data-atx-card-narrow] .fe-block{width:min(700px,52vw)!important}
  html body #page section.atx-hero[data-atx-card-narrow] .fluid-engine{padding-top:clamp(96px,12vh,140px)!important;padding-bottom:48px!important}
}
/* ruling 90: the home hero renders as live (850 px at 1440: the standard height; the 390 photo at live's own focal
   point, 64.73% 27.1%, not the tweak layer's 70% 8%) */
@media (min-width:768px){ .atx-p-home #page section.page-section.atx-first{min-height:var(--atx-home-h,853px)!important;box-sizing:border-box} }
@media (max-width:767px){ .atx-p-home #page .atx-first .section-background img{object-position:35.27% 27.1%!important} }
/* walk fix H (28 Oct 2026): the home hero photo is the un-mirrored portrait again (port.mjs), so the phone focal x
   flips (64.73% -> 35.27%, the same point on the same face) and, from 768 px, the text column goes back to the right:
   the block takes the mirror of its Squarespace grid area (columns 3/13 -> 15/25 of the 26-track grid) and the code
   block's own margin-left:5% becomes margin-right:5%. Text stays left-aligned; column width, wrapping and section
   height are unchanged. */
@media (min-width:768px){
  .atx-p-home #page .atx-first .fe-block-yui_3_17_2_1_1761256921097_13794{grid-column:15/25!important}
  .atx-p-home #page .atx-first #atxHomeHero{margin-left:auto!important;margin-right:5%!important}
}

/* ruling 87 / decision 14: a page whose first screen is light at 1440 but dark behind the phone bar (FAQ: photo strip
   below a dark band) keeps the light logo on phones (measured per width by coh/hdrlight.mjs: darkPhone) */
@media (max-width:799px){
  body.hdr-light.hdr-dark-m .header:not(.shrink):not(.header--menu-open),
  body.hdr-light.hdr-dark-m .header:not(.shrink):not(.header--menu-open) a,
  body.hdr-light.hdr-dark-m .header:not(.shrink):not(.header--menu-open) button{color:var(--paper)}
  body.hdr-light.hdr-dark-m .header:not(.shrink):not(.header--menu-open) .bun{background:var(--paper)}
  body.hdr-light.hdr-dark-m .header:not(.shrink):not(.header--menu-open) .header-logo img{filter:none}
}

/* walk fix L (28 Oct 2026; supersedes walk fix 5's card placed 40 px from the right from 1360 px): the lawyer hero
   loses its light panel and matches the other build heroes (no background, padding or border; the spec's H1), with
   every line of text on the light backdrop. Measured on the 1798 x 914 file: head 0.247 to 0.410 of the frame width;
   the jacket's right edge reaches 0.556 at the height of the button row. The photo is 1,680 px wide (height-bound,
   853 px) up to 1680 px, 1,770 to 1,810 px where the H1 takes three lines (1200 to ~1300), and the window width
   beyond 1680. From 1200 px:
   - photo offset min(0, max(100vw - 1680px, -400px)): -240 px at 1440 (head 175 to 449), right-aligned 1440 to 1680,
     never more than 400 px left (head stays whole: 38 px from the edge at 1280) and never leaves a gap on the right;
   - text column from max(712px, min(100vw - 728px, 55.6vw + 18px)): 712 px up to 1440 (jacket 694 at the button row,
     so 18 px clear), then 18 px right of the jacket edge as it moves right (952 at 1680, 1086 at 1920), up to 620 wide.
   768 to 1199 px: the panel stays as the fallback (data-atx-card-narrow above): a column right of the jacket is too
   narrow there (the panel covered part of the head at 1024 before this fix too). */
@media (min-width:1200px){
  /* fix pass 3 (coordinator, 28 Oct 2026): at the 920 px hero the photo renders 1,810 px wide, so the jacket reached
     43 px into the text column at the button row (measured on the file: jacket edge 0.5497 of the width there) and
     the black button sat on the black jacket. The offset moves 70 px further left: -310 at 1440, right-aligned to
     1750 (the 60 px asked for left the jacket 17 px clear; 70 gives 27). The third term keeps 24 px from 1750 to
     1810, where the text column (55.6vw + 18) has not yet moved far enough right. Floor -400 as before (head 25 px
     from the edge at 1200, where the jacket is already 98 px clear). */
  /* fix pass 4 (28 Oct 2026, Ryan: the portrait sat a little too high; match Squarespace's crop). Squarespace's hero is
     1,051 px tall at 1440 and shows the photo 2,067 px wide from the top, image left -211. Here the hero stays 920: the
     image box is 114.24% of it (1051/920) from the top, the section's overflow:hidden clips the bottom 131 px, and the
     photo sits top-anchored at -211 px, so the person is the same size and height as there (head 275 to 653 at every
     width to 1857, eyes at y ~298 as there). max(-211px, 100%): from 1858 px wide the photo right-aligns instead of
     leaving a gap on the right (100% of object-position = box width - rendered width). OPEN (measured 28 Oct): the
     jacket edge is 657 at the H1 rows but 893 at the button row, so the text column (712 to 1440) clears it only from
     ~1645 px wide; at 1200 / 1440 / 1560 the button sits on the jacket (-209 / -181 / -61 px), as it does on
     Squarespace. The fix pass 3 offset this replaces had kept it 27 px clear. */
  /* pass 4 option B (PM, 28 Oct): Squarespace's scale and top anchor (eyes 37 px lower than the 920 px crop), but the photo slides left where the text column is narrow so the button clears the jacket by >= 24 px (the jacket edge is x 657 beside the H1 and x 893 at the button row at Squarespace's own -211 offset, which put the button on the jacket below 1645 px wide). Left = 100vw - 1856 (1200: -450 floor, head 36 to 415, clear 30; 1440: -416, head 70 to 449, clear 24; 1560: clear 24), -211 from 1645 (Squarespace's own placement, clear 58 at 1680), right-aligned (100%) from 1858 where the 2068 px image would leave a strip. */
  html body.atx-p-lawyer-headshots-austin-texas #page section.atx-hero .section-background > img{height:114.24%!important;object-position:max(100%,-450px,min(-211px,calc(100vw - 1856px))) 0!important}
  html body.atx-p-lawyer-headshots-austin-texas #page section.atx-hero .fe-block{margin-left:max(712px,min(calc(100vw - 728px),calc(55.6vw + 18px)))!important;margin-right:0!important;width:min(620px,calc(100vw - 752px))!important}
}
/* walk fix C (28 Oct 2026): the corporate team hero, shorter so all three people fit, as on Squarespace (790 px there).
   H1 26ch (two lines in 680 px), text column 680 px from x 5vw (Squarespace's own 69 px at 1440), paragraph to the
   column width, top padding clamp(80px,10vh,120px), no min-height: 974 -> 734 px at 1440 x 900. x 33% (cohesion.mjs
   xFix) from 1440 px: all three faces whole, the first 25 px clear of the text. Below 1440 the photo stays 1,688 px wide
   (height-bound) while the viewport narrows, so the three faces (652 px) and the text (to x ~745) cannot both fit: x
   60% there keeps all three people in frame, the first face partly behind the paragraph's right end, as on
   Squarespace. From ~1690 px the photo is width-bound and everything clears at any x. Phones (< 768) unchanged. */
@media (min-width:768px){
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .fluid-engine{min-height:0!important;padding:clamp(80px,10vh,120px) 0 32px!important}
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .fe-block{width:min(680px,52vw)!important;margin-left:max(24px,5vw)!important}
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .atx-hero__text > p:not([class*="eyebrow"]){max-width:none!important}
}
@media (min-width:768px) and (max-width:1439px){
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero{--hx:60%!important}
}

/* fix pass 3 decision 1 (28 Oct 2026, ruling 93): one hero height. From 1200 px wide every photo hero in the spec
   (HERO_PAGES: build, atxH, lander), the money page and the home page is a fixed 920 px, whatever the window height
   (the vh terms of min(86vh,860px) and clamp(120px,16vh,200px) made them 750 / 853 / 939 at a 780 / 900 / 1080 window).
   Top padding 144 px = today's value at 1440 x 900, so the first line of text sits at y 223 on every page (78.77 px bar +
   144); 80 px under the text as before; text that needs more forces the hero taller. The text block's last child loses
   its own bottom margin here (ERAS's button row carried 48 px), so the floor is text + 80 as MIGRATION-DIFF 6.2 measured
   it. 768 to 1199 px and phones are unchanged. Exception (decision 2): the group page keeps its 734 px block above (from
   1400 px it joins the 920 standard: fix pass 4 below). */
@media (min-width:1200px){
  html body:not(.atx-p-group-corporate-team-headshots-austin) #page section.page-section.atx-hero .fluid-engine,
  html body.atx-p-austin-headshot-photographer #page section.page-section.atx-first .fluid-engine{min-height:calc(920px - var(--header-h,78.77px))!important;padding:144px 0 80px!important;box-sizing:border-box!important}
  /* the FAQ composite keeps its panel; the panel's 28 px inner padding is taken off the top so its first line is at y 223 too */
  html body:not(.atx-p-group-corporate-team-headshots-austin) #page section.page-section.atx-hero[data-atx-card] .fluid-engine{padding:116px 0 48px!important}
  html body:not(.atx-p-group-corporate-team-headshots-austin) #page section.atx-hero .atx-hero__text > :last-child,
  html body:not(.atx-p-group-corporate-team-headshots-austin) #page section.atx-hero .atx-hero__text > :last-child > :last-child{margin-bottom:0!important}
  /* the 920 px hero's own x where today's no longer keeps the subject clear of the text (cohesion.mjs --hxw: actor,
     LinkedIn, realtor). Only on a section that carries --hxw, so no other hero's own placement (the lawyer's px offset,
     the town blocks' 70% 18%) is touched */
  html body #page section.atx-hero[data-atx-kind="build"][style*="--hxw:"] .section-background > img,
  html body #page section.atx-hero[data-atx-kind="build"][style*="--hxw:"] .section-background-content > img{object-position:var(--hxw) 20%!important}
  /* the money page (ruling 93 g): its own block places the photo at 70% 18%, which leaves the face 12 px from the text
     at 920; 67% keeps it 27 px clear (6.2: x 6 to 67.5 fits) */
  html body.atx-p-austin-headshot-photographer #page section.atx-first .section-background img{object-position:67% 18%!important}
  /* the home page: 920 like the rest (Moses on the left, text right, x 35.27% as before). Its text is a Squarespace grid
     block that the section centres vertically (it would drift to y 200 at 920); it starts at y 223 like the others */
  .atx-p-home #page section.page-section.atx-first{min-height:920px!important}
  .atx-p-home #page section.page-section.atx-first > .content-wrapper{align-self:flex-start!important;padding-top:calc(223px - var(--header-h,78.77px))!important}
}
/* fix pass 4 (28 Oct 2026; supersedes the lawyer px offset's 2,068 px bound): past 2,068 px the 1,051 px box is
   width-bound and Squarespace's own focal x applies */
@media (min-width:2069px){
  html body.atx-p-lawyer-headshots-austin-texas #page section.atx-hero .section-background > img{object-position:33.61% 0!important}
}
/* fix pass 4 (28 Oct 2026, Ryan: the group hero is the same 920 px as the rest, all three people in frame). From 1400 px
   the group page joins decision 1's 920 px (first line at y 223, 80 px under the text). The photo (2500 x 1087) is
   height-bound at 920 up to 2,120 px wide (2,120 px rendered); its left edge is W - 1915, so the first woman's hair
   (0.477) is at W - 904 and the third person's shoulder (0.915) at W + 25 (25 px past the edge, face 0.876 whole) at
   every width to 1915, then left 0. The text column narrows with the window to stay 24 px left of the hair:
   width min(680px, 95vw - 928px) from 5vw (402 px at 1400, 440 at 1440, 680 from 1694). 1200 to 1399 keep walk fix
   C's 734 px block; past 2,120 px the photo is width-bound at x 73%. */
@media (min-width:1400px){
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .fluid-engine{min-height:calc(920px - var(--header-h,78.77px))!important;padding:144px 0 80px!important;box-sizing:border-box!important}
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .atx-hero__text > :last-child,
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .atx-hero__text > :last-child > :last-child{margin-bottom:0!important}
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .fe-block{width:min(680px,calc(95vw - 928px))!important;margin-left:5vw!important}
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .section-background > img{object-position:min(0px,calc(100vw - 1915px)) 20%!important}
  /* the narrow column cannot hold the 58 px H1 (four lines) and the rest of the text inside 920: the text ran to y 1012 at
     1400, 986 at 1440, 936 at 1512 (the hero grew to 1,092 / 1,066 / 1,016). The H1 shrinks with the window instead:
     32 px to 1430 (text to y 839), 32.8 at 1440 (815), 41.4 at 1512 (782), 58 from 1650; every 10 px step from 1400 to
     1710 measured at or under y 840 */
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .atx-hero__text h1{font-size:clamp(32px,calc(12vw - 140px),58px)!important}
}
@media (min-width:2121px){
  html body.atx-p-group-corporate-team-headshots-austin #page section.atx-hero .section-background > img{object-position:73% 20%!important}
}

/* fix pass 3 decision 4 (28 Oct 2026): the two noindex guide landers render without the site header, as on Squarespace
   (port.mjs NO_HEADER adds body.atx-nohdr and leaves the header out): no bar height above the first section and no
   scroll offset for a bar that is not there. */
body.atx-nohdr{--header-h:0px;--header-height:0px}
html:has(body.atx-nohdr){scroll-padding-top:0}
/* the hero's two buttons share a 343 px row at 390 (166 px each): the kit's 24 px side padding wrapped "See open times"
   to two lines (71 px). Squarespace's own 10 px side padding, on one line, keeps them 59 px (kit type size unchanged). */
@media (max-width:767px){
  html body:is(.atx-p-headshot-guide-session,.atx-p-headshots-bring-a-colleague,.atx-p-limited-time-booking-google) #page .atx-first .ih-btn{padding-left:10px!important;padding-right:10px!important;white-space:nowrap!important}
}

/* fix pass 3 decision 5 (a): the blog index placed as Squarespace's masonry placed it (port.mjs script adds .atx-mz and
   each card's width and offset); without the script the static two-column grid in shell.css stays. */
.blog-masonry-wrapper.atx-mz{display:block!important;position:relative!important}
.blog-masonry-wrapper.atx-mz > article.entry{position:absolute!important;top:0!important;left:0!important;margin:0!important}
