/* Audit fixes, October 25, 2026 (security, compliance and accessibility audit).
   Loaded after site-v3.css. Remove a rule here to roll it back. */

/* 1. Brokerage identity in the header (B&P 10159.6: broker identity as prominent as the team name) */
.broker-id {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  flex: 0 0 auto;
  margin-left: calc(var(--s-5, 24px) * -0.5);
  padding-left: var(--s-5, 24px);
  border-left: 1px solid currentColor;
  border-left-color: color-mix(in srgb, currentColor 35%, transparent);
  font-family: "Jost", system-ui, sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  color: inherit;
}
.broker-id .broker-name { font-size: 22px; letter-spacing: 0.16em; }
.broker-id .broker-dba { font-size: 11.5px; letter-spacing: 0.27em; }
@media (max-width: 1100px) {
  .broker-id .broker-name { font-size: 18px; }
  .broker-id .broker-dba { font-size: 9.5px; }
}
@media (max-width: 700px) {
  :root[data-theme="bay"] { --head-h: 104px; }
  .head-inner { flex-wrap: wrap; align-content: center; row-gap: 6px; }
  .broker-id { order: 5; flex: 1 0 100%; flex-direction: row; align-items: baseline; gap: 0.5em; margin: 0; padding: 6px 0 0; border-left: 0; border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
  .broker-id .broker-name,
  .broker-id .broker-dba { font-size: 13px; letter-spacing: 0.2em; }
}

/* 2. Footer: broker line at full strength, policy links */
.foot-legal.foot-broker { font-size: 15px; color: var(--ground, #FBF8F2); opacity: 1; }
.foot-legal.foot-broker strong { font-weight: 600; }
.foot-policies { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 12px; font-size: 15px; }
.foot-policies a { color: inherit; text-decoration: underline; text-underline-offset: 3px; min-height: 24px; display: inline-flex; align-items: center; }

/* 3. Focus not hidden under the sticky header (WCAG 2.4.11) */
html { scroll-padding-top: 7rem; }

/* 4. Colour contrast (WCAG 1.4.3) */
.ways-item .num,
.steps-row .num,
.step .num,
.res-list .num,
.how3 .num,
.doc-list .num,
.launch4 .num,
a > .num[aria-hidden="true"] { color: #005A70 !important; }
.quotes-names { color: #646C79; }
.quotes-names button:not(.is-active),
.quotes-names a { color: #646C79 !important; opacity: 1 !important; }
.book-after a { color: #005A70 !important; }
.post-body p a, .post-body li a { text-decoration: underline; text-underline-offset: 3px; }
.js .stage-wrap[data-pinned] .ways-item:not(.is-active),
.stage-wrap .ways-item:not(.is-active) { opacity: 0.8 !important; }
.band-sand .eyebrow,
.band-sky .eyebrow,
.later-grid .eyebrow,
.members-grid .eyebrow,
#who-h { color: #005A70; }
.band-sky a:not(.btn),
.members-card a:not(.btn) { color: #005A70; }

/* 5. Notice at collection under forms */
.form-privacy { margin-top: var(--s-4, 16px); font-size: 15px; line-height: 1.5; color: var(--ink-2, #3C4A61); }
.form-privacy a { color: #005A70; text-decoration: underline; text-underline-offset: 3px; }

/* 6. Legal note (probate pages) */
.legal-note { padding: var(--s-6, 32px) 0; border-top: 1px solid var(--line, #DDD6C8); }
.legal-note p { max-width: 72ch; font-size: 15px; line-height: 1.6; color: var(--ink-2, #3C4A61); }

/* 7. Legal pages (privacy, terms, accessibility) */
.legal-doc { padding: var(--s-7, 48px) 0 var(--s-8, 64px); }
.legal-doc .wrap > * { max-width: 72ch; }
.legal-doc h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin: var(--s-7, 48px) 0 var(--s-3, 12px); line-height: 1.15; }
.legal-doc h3 { font-size: 1.15rem; margin: var(--s-5, 24px) 0 var(--s-2, 8px); }
.legal-doc p, .legal-doc li { line-height: 1.65; color: var(--ink-2, #3C4A61); }
.legal-doc p + p { margin-top: var(--s-3, 12px); }
.legal-doc ul { margin: var(--s-3, 12px) 0 0 1.25rem; list-style: disc; }
.legal-doc li + li { margin-top: 6px; }
.legal-doc a { color: #005A70; text-decoration: underline; text-underline-offset: 3px; }
.legal-doc .doc-meta { font-size: 15px; color: var(--ink-2, #3C4A61); }
.legal-doc .callout { margin-top: var(--s-5, 24px); padding: var(--s-4, 16px) var(--s-5, 24px); border-left: 3px solid #005A70; background: color-mix(in srgb, #CFE0EA 45%, transparent); }
/* 8. Altered-image label kept clear of the hero text on phones (AB 723 label legibility) */
@media (max-width: 700px) {
  .gate-half .altered { top: auto; bottom: 6px; }
}
/* 9. JPT logo: the artwork sits in the top-left of its SVG canvas (ink ends at 66% of the height),
   so it looked high. Shift it down by 16.6% of its own height to center it on the menu line.
   Works at every size (desktop 136x68, phone 104x52) and does not move anything else. */
.brand img { transform: translateY(16.6%); }
/* 10. Site notice ("under construction"), shown above the header on every page. Remove this block and the notice markup to take it down. */
.site-notice { position: relative; z-index: 9999; background: #FDD04B; color: #231F20; text-align: center; font: 600 14px/1.4 "Jost", system-ui, sans-serif; padding: 8px 56px 8px 16px; }
.site-notice-close { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #231F20; font: 400 26px/1 system-ui, sans-serif; cursor: pointer; }
.site-notice-close:hover { background: rgba(35, 31, 32, 0.12); }
.site-notice-close:focus-visible { outline: 2px solid #231F20; outline-offset: 2px; }
