body[data-ao-visual-layout]{--ao-light: #E8F4FF;--ao-white: #FFFFFF;--ao-border: #CBD5E1;--ao-article: 46rem;--ao-radius: 0.25rem;--ao-space: 0.25rem;}
/*
 * Alliance One - shared interior-page visual layout correction.
 * Presentation only. Attached solely to eligible non-homepage public pages via
 * body[data-ao-visual-layout]. No content, order of source text, URL, metadata
 * or structured-data changes. Colours, radius, spacing and widths come from the
 * design-system token variables (--ao-*) already present on the page, plus the
 * static-tokens declarations prepended by server.mjs.
 *
 * Templates covered (scope attribute = existing .ao-layout-* class):
 *   article  - 96 blog articles: in-content "Other Blogs" sidebar squeezed the
 *              article into ~22rem inside an 800px column.
 *   industry - 29 industry pages: in-content "Context in This Page" column
 *              created a third column beside the page sidebar.
 *   service  - 36 service / informational pages: same inner-aside defect (15),
 *              squeezed 50/50 text+image rows, financial example panel (2),
 *              fee tables (2).
 *   archive  - 29 category / listing pages: raw post list (image above full
 *              width run-on excerpt) becomes balanced media cards.
 * Breakpoints: 640px, 1024px; container query on the main column at 40rem.
 */

/* ---------- 1. Article template: article + Other Blogs sidebar ---------- */
body[data-ao-visual-layout="article"] .ao-page-body .ao-layout-article:has(.core-row > div > aside) {
  grid-template-columns: minmax(0, 1fr);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div > aside) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 12);
  align-items: start;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div > aside) > div:not(:has(> aside)) {
  width: 100%;
  max-width: var(--ao-article);
  min-width: 0;
  margin-inline: auto;
}
@media (min-width: 1024px) {
  body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div > aside) {
    grid-template-columns: minmax(0, var(--ao-article)) calc(var(--ao-space) * 80);
    justify-content: space-between;
  }
  body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div > aside) > div:not(:has(> aside)) {
    margin-inline: 0;
  }
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div {
  display: grid;
  gap: calc(var(--ao-space) * 6);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div > div {
  min-width: 0;
  padding: calc(var(--ao-space) * 6);
  background: var(--ao-soft);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-top: 3px solid var(--ao-blue);
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div > div > h3 {
  margin: 0 0 calc(var(--ao-space) * 4);
  font-size: 1.2rem;
  color: var(--ao-deep);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside input[type=text] {
  max-width: none;
  background: var(--ao-white);
}
/* Other Blogs: compact thumbnail list instead of full-width photo stack */
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div > div > div:has(> article) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 4);
}
@media (min-width: 640px) and (max-width: 1023px) {
  body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div > div > div:has(> article) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row {
  display: grid;
  grid-template-columns: calc(var(--ao-space) * 22) minmax(0, 1fr);
  gap: calc(var(--ao-space) * 3);
  align-items: center;
  margin: 0;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row > picture {
  display: block;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  border-radius: var(--ao-radius);
  background: var(--ao-light);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row img {
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row > div {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ao-space) * 1);
  min-width: 0;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row h3 {
  margin: 0;
  font-size: .95rem;
  line-height: 1.35;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row h3 a {
  color: var(--ao-deep);
  text-decoration: none;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row h3 a:hover,
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row h3 a:focus-visible {
  color: var(--ao-blue);
  text-decoration: underline;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside article.core-row span {
  font-size: .8rem;
  color: var(--ao-gray);
}

/* ---------- 2. Industry / service: in-content aside beside page sidebar ---------- */
/* Stack the source column and its "Context in This Page" box; the box leads as a
   compact in-page index so the copy regains the full main-column width. */
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row:has(> div > aside) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 8);
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div:has(> aside) {
  order: -1;
  min-width: 0;
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside {
  padding: calc(var(--ao-space) * 5) calc(var(--ao-space) * 6);
  background: var(--ao-soft);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-left: 3px solid var(--ao-blue);
  border-radius: calc(var(--ao-radius) * 2);
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside h3 {
  margin: 0 0 calc(var(--ao-space) * 3);
  font-size: 1.1rem;
  color: var(--ao-deep);
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside ul {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside li {
  margin: 0;
}
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside li li a {
  display: block;
  padding: calc(var(--ao-space) * 1.5) 0;
  font-size: .95rem;
}
/* Outlier: disabled source accordion toggle rendered as a large orange
   button carrying another page's label. Kept in the DOM, shown as a quiet label. */
body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside button[disabled] {
  display: block;
  width: auto;
  margin: 0 0 calc(var(--ao-space) * 2);
  padding: 0;
  background: none;
  border: 0;
  color: var(--ao-gray);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase;
  cursor: default;
}
@media (min-width: 640px) {
  body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside li > ul {
    columns: 2;
    column-gap: calc(var(--ao-space) * 8);
  }
  body:is([data-ao-visual-layout="industry"], [data-ao-visual-layout="service"]) .ao-page-body .ao-main-col .core-row > div > aside li li {
    break-inside: avoid;
  }
}

/* ---------- 3. Text + image split rows (all eligible templates) ---------- */
body[data-ao-visual-layout] .ao-page-body .ao-main-col {
  container-type: inline-size;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> :nth-child(2):last-child):has(> * > :is(h2, h3, p)):has(> * :is(picture, figure) img):not(:has(aside, form, table)):not(:where(.preview-industry-testimonial, .preview-related-resources, .core-source-hero) *) {
  grid-template-columns: minmax(0, 1fr);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> :nth-child(2):last-child):has(> * > :is(h2, h3, p)):has(> * :is(picture, figure) img):not(:has(aside, form, table)):not(:where(.preview-industry-testimonial, .preview-related-resources, .core-source-hero) *) :is(picture, figure) img {
  width: 100%;
  height: auto;
  max-height: calc(var(--ao-space) * 90);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: calc(var(--ao-radius) * 2);
}
@container (min-width: 40rem) {
  /* Text column keeps ~60% so paragraphs are no longer squeezed. */
  body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> :nth-child(2):last-child):has(> * > :is(h2, h3, p)):has(> * :is(picture, figure) img):not(:has(aside, form, table)):not(:where(.preview-industry-testimonial, .preview-related-resources, .core-source-hero) *) {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }
  body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> :nth-child(2):last-child):has(> * > :is(h2, h3, p)):has(> :first-child :is(picture, figure) img):not(:has(aside, form, table)):not(:where(.preview-industry-testimonial, .preview-related-resources, .core-source-hero) *) {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
  body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> :nth-child(2):last-child):has(> * > :is(h2, h3, p)):has(> * :is(picture, figure) img):not(:has(aside, form, table)):not(:where(.preview-industry-testimonial, .preview-related-resources, .core-source-hero) *) > :not(:has(> :is(h2, h3, p))) {
    position: sticky;
    top: calc(var(--ao-space) * 6);
  }
}

/* ---------- 4. Financial example panel (former background-image section) ---------- */
/* Decorative aria-hidden background was rendering as a large inline photo that
   separated the example figures from their heading. */
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: calc(var(--ao-space) * 8) calc(var(--ao-space) * 6);
  background: var(--ao-light);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-top: 3px solid var(--ao-orange);
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero) > img.core-background-media {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
  opacity: .08;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) > .core-container > div > .core-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, calc(var(--ao-space) * 48)), 1fr));
  gap: calc(var(--ao-space) * 4);
  align-items: stretch;
  margin-bottom: calc(var(--ao-space) * 6);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) > .core-container > div > .core-row > div {
  display: flex;
  min-width: 0;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) > .core-container > div > .core-row > div > article {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: calc(var(--ao-space) * 3);
  width: 100%;
  padding: calc(var(--ao-space) * 5);
  background: var(--ao-white);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) article > h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
  color: var(--ao-gray);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) article > p {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ao-deep);
  font-variant-numeric: tabular-nums;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block:not(.core-source-hero):has(> img.core-background-media) article > p span {
  color: inherit;
}

/* ---------- 5. Steps / short benefit rows: equal alignment ---------- */
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-row:has(> div > article.core-row > h2) > div > article.core-row > h2 {
  font-size: 1.35rem;
  color: var(--ao-blue);
}

/* ---------- 6. Financial tables ---------- */
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap {
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap table {
  min-width: calc(var(--ao-space) * 120);
  margin: 0;
  font-variant-numeric: tabular-nums;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap :is(th, td) {
  border-width: 0 0 1px;
  padding: calc(var(--ao-space) * 3) calc(var(--ao-space) * 4);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap tr:last-child td {
  border-bottom: 0;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap th {
  background: var(--ao-light);
  color: var(--ao-deep);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .ao-table-wrap td .core-row {
  display: inline;
}

/* ---------- 7. Archive / category post lists ---------- */
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] {
  margin: 0 0 calc(var(--ao-space) * 6);
  padding: calc(var(--ao-space) * 6);
  background: var(--ao-white);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] > div:has(> figure) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 6);
  align-items: center;
}
@media (min-width: 768px) {
  body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] > div:has(> figure) {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] figure {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: calc(var(--ao-radius) * 2);
  background: var(--ao-light);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] figure img {
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] p {
  margin: 0;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose-archive:not(:has(#blogCont)) article[id^="post-"] p > a:last-child {
  display: block;
  margin-top: calc(var(--ao-space) * 3);
  font-weight: 600;
}

/* ---------- 8. Article sidebar Categories + previous / next navigation ---------- */
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) {
  margin-top: calc(var(--ao-space) * 6);
  padding: calc(var(--ao-space) * 6);
  background: var(--ao-soft);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-top: 3px solid var(--ao-blue);
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) > h3 {
  margin: 0 0 calc(var(--ao-space) * 4);
  font-size: 1.2rem;
  color: var(--ao-deep);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) > ul {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ao-space) * 2);
  margin: 0;
  padding: 0;
  list-style: none;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) > ul > li {
  margin: 0;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) > ul > li > a {
  display: inline-block;
  padding: calc(var(--ao-space) * 1.5) calc(var(--ao-space) * 3);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  background: var(--ao-white);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: 999px;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article aside > div:has(> h3) > ul > li > a:hover {
  border-color: var(--ao-blue);
  color: var(--ao-deep);
}
/* Previous / Next post: compact link cards instead of two half-width photos */
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div.core-row > a > picture) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 4);
  margin-top: calc(var(--ao-space) * 10);
  padding-top: calc(var(--ao-space) * 8);
  border-top: 1px solid var(--ao-line, var(--ao-border));
}
@media (min-width: 640px) {
  body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row:has(> div.core-row > a > picture) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row:has(> a > picture) {
  display: block;
  min-width: 0;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row > a:has(> picture) {
  display: flex;
  align-items: center;
  gap: calc(var(--ao-space) * 4);
  height: 100%;
  padding: calc(var(--ao-space) * 3);
  font-weight: 600;
  color: var(--ao-deep);
  text-decoration: none;
  background: var(--ao-white);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row:last-child:not(:first-child) > a:has(> picture) {
  justify-content: flex-end;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row > a:has(> picture):hover {
  border-color: var(--ao-blue);
  color: var(--ao-blue);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row > a > picture {
  display: block;
  flex: 0 0 calc(var(--ao-space) * 24);
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  border-radius: var(--ao-radius);
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row > a > picture img {
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}
body[data-ao-visual-layout="article"] .ao-page-body .ao-prose-article .core-row > div.core-row > a > span.core-row {
  display: inline;
}

/* ---------- 9. Embedded "News & Blog" card lists on service pages ---------- */
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div:has(> div > article.core-row > a > picture) {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, calc(var(--ao-space) * 60)), 1fr));
  gap: calc(var(--ao-space) * 6);
  align-items: stretch;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div:has(> article.core-row > a > picture) {
  display: flex;
  min-width: 0;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  overflow: hidden;
  background: var(--ao-white);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row > a > picture {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--ao-light);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row > a > picture img {
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) > .core-row {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  gap: calc(var(--ao-space) * 4);
  padding: calc(var(--ao-space) * 5);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) .core-row .core-row {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ao-space) * 2);
  font-size: .8rem;
  color: var(--ao-gray);
  text-transform: uppercase;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) h3 {
  margin: calc(var(--ao-space) * 2) 0;
  font-size: 1.1rem;
  line-height: 1.3;
  color: var(--ao-deep);
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) p {
  font-size: .95rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}
body[data-ao-visual-layout] .ao-page-body .ao-prose .core-block > div > div > article.core-row:has(> a > picture) a.core-row {
  display: inline;
  font-weight: 600;
}

/* ---------- 10. Mobile accessibility launcher clearance ---------- */
/* The existing fixed launcher (bottom-left, ~3rem at 1rem inset) is untouched;
   the footer bottom row reserves space in its own background so the last content and footer links
   are never covered at the scroll maximum. */
@media (max-width: 1024px) {
  body[data-ao-visual-layout] .ao-footer-bottom {
    padding-bottom: calc(var(--ao-controls-space, var(--ao-controls-pad, calc(var(--ao-space) * 24))) + var(--ao-space) * 6);
  }
  /* Keep existing accessibility and quick actions together, off the copy. */
  body[data-ao-visual-layout] .ao-mobile-action-bar {
    padding-left: max(calc(var(--ao-space) * 19), calc(env(safe-area-inset-left, 0px) + var(--ao-space) * 18));
  }
  body[data-ao-visual-layout] .ao-mobile-action-bar-button {
    min-width: 0;
    padding-inline: calc(var(--ao-space) * 2);
    column-gap: var(--ao-space);
  }
  body[data-ao-visual-layout] #ao-a11y-launcher {
    bottom: calc(var(--ao-floating-viewport-lift, 0px) + env(safe-area-inset-bottom, 0px) + var(--ao-space) * 2.5) !important;
  }
}

/* Balance existing cards when the original industry body is empty. No copy is
   invented or removed, and ordinary industry pages retain their normal layout. */
body[data-ao-visual-layout][data-ao-visual-empty] .ao-layout {
  grid-template-columns: minmax(0, 1fr);
  row-gap: 0;
}
body[data-ao-visual-layout][data-ao-visual-empty] .ao-aside {
  position: static;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
@media (min-width: 768px) {
  body[data-ao-visual-layout][data-ao-visual-empty] .ao-aside {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  }
  body[data-ao-visual-layout][data-ao-visual-empty] .ao-aside ul {
    display: block;
    columns: 2;
    column-gap: calc(var(--ao-space) * 6);
  }
  body[data-ao-visual-layout][data-ao-visual-empty] .ao-aside li {
    break-inside: avoid;
  }
}
/* Legacy date/title-only service records: keep their existing resource cards
   together rather than placing a long sidebar beside a nearly empty article. */
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-layout-service {
  grid-template-columns: minmax(0, 1fr);
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col .core-row > div:has(> aside) {
  order: 0;
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col .core-row > div > aside > div:has(> div > form) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--ao-space) * 6);
  align-items: start;
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col aside > div > div {
  padding: calc(var(--ao-space) * 5);
  border: 1px solid var(--ao-line, var(--ao-border));
  border-radius: calc(var(--ao-radius) * 2);
  background: var(--ao-soft);
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col aside article.core-row {
  display: grid;
  grid-template-columns: calc(var(--ao-space) * 22) minmax(0, 1fr);
  gap: calc(var(--ao-space) * 3);
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col aside article.core-row img {
  width: calc(var(--ao-space) * 22);
  height: calc(var(--ao-space) * 16.5);
  margin: 0;
  object-fit: cover;
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col aside article.core-row h3 {
  font-size: 1rem;
  line-height: 1.4;
}
body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-layout-service > .ao-aside {
  position: static;
}
@media (min-width: 768px) {
  body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-main-col .core-row > div > aside > div:has(> div > form) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body[data-ao-visual-layout="service"][data-ao-visual-sparse] .ao-layout-service > .ao-aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
