/* AIOOS industry and location templates (#120).

   Loaded after pages-20261011/shell.css on the eight industry pages (body.aioos-page--industry) and the five
   location pages (body.aioos-page--location, which also load location.css). This file holds the opening both
   templates share (breadcrumb, title and deck, actions, terms, the reading strip) and the long-form components
   they share (section numbers, numbered rows, feature rows, the flow diagram, tables that stack on phones, the
   question list), plus the industry scene and the industry article. Every selector is scoped to the two families.

   Motion: the scene's route and the diagram connectors draw once through shell.js ([data-route-draw]); the paper
   slip settles once; question answers fade after the native expansion. Nothing is hidden at rest or without
   script, and reduced motion shows every final state at once. */

:is(body.aioos-page--industry, body.aioos-page--location) {
  --ind-arc: #dcd2e8;
  --ind-measure: 68ch;
  --ind-section: clamp(44px, 4.6vw, 64px);
}

/* ---------- opening: copy beside the scene (industry) or the atlas (location) ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-hero {
  display: grid; grid-template-columns: minmax(0, 600fr) minmax(0, 664fr); align-items: center; gap: 24px 48px;
  width: min(100% - var(--gutter) * 2, var(--page-wrap)); margin-inline: auto;
  padding-bottom: clamp(40px, 5vw, 72px);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-hero__copy { display: grid; gap: 0; min-width: 0; align-content: start; container-type: inline-size; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-hero .breadcrumbs { padding-top: clamp(20px, 2.4vw, 32px); padding-bottom: clamp(20px, 2.6vw, 40px); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-hero .page-kicker { margin-bottom: 18px; font-size: .8125rem; }
/* The contents rail stops above the fixed back-to-top button (48px high, 20px from the bottom). */
:is(body.aioos-page--industry, body.aioos-page--location) .page-toc { max-height: calc(100dvh - var(--navigation-height, 76px) - 28px - 96px); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-h1 {
  margin: 0; font-family: var(--type-family); font-weight: 650; color: var(--ink);
  font-size: clamp(1.75rem, 9.2cqi, 3.75rem); line-height: 1.07; letter-spacing: -.045em;
  text-wrap: balance;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-h1__main { display: block; }
/* The colon stays in the heading's text for search and translation; the deck starts its own line instead. */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-h1__colon { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-h1__deck {
  display: block; margin-top: clamp(14px, 1.6vw, 20px); max-width: 34ch;
  font-size: clamp(1.25rem, 1.05rem + .75vw, 1.625rem); font-weight: 550; line-height: 1.3; letter-spacing: -.025em;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-lead { margin-top: clamp(18px, 2vw, 24px); max-width: 62ch; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-lead p {
  margin: 0; font-size: clamp(1rem, .96rem + .2vw, 1.125rem); line-height: 1.65; color: var(--ink); hyphens: auto;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-lead strong { font-weight: 650; }

:is(body.aioos-page--industry, body.aioos-page--location) .ind-actions { display: grid; justify-items: start; gap: 6px; margin-top: clamp(24px, 2.6vw, 32px); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-actions .page-button { min-width: min(100%, 360px); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-actions__links { display: flex; flex-wrap: wrap; gap: 0 32px; margin-top: 6px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-actions__links .page-link { color: var(--accent); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-terms { margin: 6px 0 0; max-width: 60ch; font-size: .8125rem; line-height: 1.65; color: var(--muted); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-terms a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-terms a:hover { color: var(--accent); }

/* ---------- reading strip: the context links and the byline, on raised paper ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip { background: var(--panel); border-block: 1px solid var(--line-soft); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip__inner {
  width: min(100% - var(--gutter) * 2, var(--page-wrap)); margin-inline: auto; padding-block: clamp(24px, 3vw, 36px);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip__inner > p:not(.page-byline) {
  margin: 0 0 14px; max-width: 78ch; font-size: clamp(1rem, .96rem + .3vw, 1.25rem); line-height: 1.6; color: var(--ink);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip a:not(.page-byline a) {
  color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip a:hover { text-decoration-thickness: 2px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip .page-byline { margin: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-strip .page-byline a { color: var(--ink); text-underline-offset: 3px; }

/* ---------- section number above every chapter heading ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-sec__n {
  margin: 0 0 10px; font-size: .75rem; line-height: 1.5; font-weight: 650; letter-spacing: .08em;
  font-variant-numeric: tabular-nums; color: var(--accent);
}

/* ---------- numbered rows: label-led paragraphs and lists read as one ruled sequence ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-rows {
  counter-reset: ind-row; list-style: none; margin: 24px 0 28px; padding: 0; border-bottom: 1px solid var(--line-soft);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-rows > li {
  counter-increment: ind-row; position: relative; display: block; margin: 0; padding: 20px 0 20px 64px;
  border-top: 1px solid var(--line-soft); line-height: 1.6;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-rows > li::before {
  content: counter(ind-row, decimal-leading-zero); position: absolute; left: 0; top: 16px;
  font-size: 1.75rem; font-weight: 500; line-height: 1.1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: var(--accent);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-rows > li > p { margin: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-rows .is-titled strong:first-child { display: block; margin-bottom: 4px; color: var(--ink); }

/* ---------- question list: native disclosures, the answer stays in the page ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq { display: grid; gap: 14px; margin: 24px 0 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item {
  border: 1px solid var(--line-card); border-radius: var(--radius-disclosure); background: var(--panel);
  scroll-margin-top: var(--anchor-offset); transition: border-color 160ms var(--ease), background 160ms var(--ease);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item[open] { background: var(--tint); border-color: #473b7033; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item > summary {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; min-height: 44px;
  padding: 20px 24px; list-style: none; cursor: pointer; border-radius: var(--radius-disclosure);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item > summary::-webkit-details-marker { display: none; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item > summary:hover { color: var(--accent); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item > summary:focus-visible { outline-offset: -3px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__q,
:is(body.aioos-page--industry, body.aioos-page--location) .page-prose .ind-faq__q {
  margin: 0; font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); font-weight: 600; line-height: 1.4; letter-spacing: -.015em; color: inherit;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign { position: relative; flex: 0 0 24px; height: 24px; margin-top: 1px; color: var(--accent); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign::before,
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign::after {
  content: ""; position: absolute; left: 4px; right: 4px; top: 11px; height: 2px; border-radius: 1px; background: currentColor;
  transition: transform 160ms var(--ease);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign::after { transform: rotate(90deg); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item[open] .ind-faq__sign::after { transform: rotate(0deg); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__a { padding: 0 24px 22px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__a > :first-child { margin-top: 0; padding-top: 16px; border-top: 1px solid #473b7026; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__a > :last-child { margin-bottom: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__a p { margin: 0 0 .8em; font-size: clamp(1rem, .97rem + .15vw, 1.0625rem); line-height: 1.65; }

/* ---------- tables: hairline sheet, row headers; on phones every row becomes a labelled block ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table { margin: 28px 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table :is(th, td) { padding: 18px 20px; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody th { background: transparent; font-weight: 650; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody th strong { font-weight: inherit; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table table { font-size: clamp(.9375rem, .9rem + .15vw, 1rem); line-height: 1.55; }
/* Comparisons: four columns fit the reading column without a sideways scroll; AIOOS's own column is tinted. */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table table { min-width: 0; table-layout: auto; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table:is(.ind-table--3, .ind-table--4, .ind-table--5) table { font-size: .9375rem; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table:is(.ind-table--4, .ind-table--5) :is(th, td) { padding: 16px 14px; hyphens: auto; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table .is-aioos { background: color-mix(in srgb, var(--tint) 55%, transparent); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-table thead .is-aioos { background: var(--lilac); }
@media (max-width: 700px) {
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table { overflow: visible; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table .is-aioos { margin-inline: -18px; padding: 10px 18px !important; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table:is(.ind-table--4, .ind-table--5) tbody :is(th, td) { hyphens: manual; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table :is(table, thead, tbody, tr, th, td) { display: block; width: auto; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table thead {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody tr { padding: 18px 18px 16px; border-bottom: 1px solid var(--line-soft); }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody tr:last-child { border-bottom: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody :is(th, td) { padding: 0; border: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody th { margin-bottom: 10px; font-size: 1rem; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody td + td { margin-top: 12px; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table tbody td::before {
    content: attr(data-label); display: block; margin-bottom: 2px;
    font-size: .75rem; font-weight: 650; line-height: 1.5; letter-spacing: .04em; text-transform: uppercase; color: var(--muted);
  }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-table.ind-table--2 tbody td::before { display: none; }
}

/* ---------- flow diagram: the call, the assistant, the outcomes; text in HTML, connectors drawn in CSS ---------- */
:is(body.aioos-page--industry, body.aioos-page--location) .flow {
  --flow-line: 1.5px; --flow-gap: 26px;
  margin: 32px 0; padding: clamp(22px, 3vw, 36px) clamp(16px, 2.4vw, 32px) 20px;
  border: 1px solid var(--line-card); border-radius: var(--radius-lg); background: var(--panel); text-align: center;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow ol,
:is(body.aioos-page--industry, body.aioos-page--location) .flow ul { list-style: none; margin: 0; padding: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow li { margin: 0; padding: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node {
  position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; max-width: 100%;
  padding: 10px 18px; border: 1px solid var(--line-card); border-radius: var(--radius-lg); background: var(--paper);
  font-size: .9375rem; font-weight: 600; line-height: 1.35; color: var(--ink); overflow-wrap: break-word;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node b { font-weight: 650; color: var(--accent); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node small { font-size: .8125rem; font-weight: 450; color: var(--muted); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node--core { background: var(--tint); border-color: #473b7040; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node--out { background: var(--tint); border-color: transparent; color: var(--accent); font-weight: 550; }
/* vertical connectors */
:is(body.aioos-page--industry, body.aioos-page--location) .flow__chain { display: grid; justify-items: center; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__chain > li { display: grid; justify-items: center; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__chain > li + li,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__tail > li { position: relative; padding-top: var(--flow-gap); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__chain > li + li::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__tail > li::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches > li::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node--out::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves::before {
  content: ""; position: absolute; left: 50%; top: 0; width: var(--flow-line); height: var(--flow-gap);
  margin-left: calc(var(--flow-line) / -2); background: var(--accent); transform-origin: 50% 0;
  transition: transform 500ms var(--ease) var(--flow-delay, 0ms);
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__edge { margin-top: 6px; font-size: .8125rem; color: var(--muted); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question {
  margin: 0; display: grid; justify-items: center; font-size: .9375rem; font-weight: 650; color: var(--accent);
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question::after { content: ""; display: block; height: var(--flow-gap); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches {
  position: relative; display: grid; grid-template-columns: repeat(var(--flow-n, 3), minmax(0, 1fr)); gap: 16px;
  margin-top: var(--flow-gap) !important;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches--2 { --flow-n: 2; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches--3 { --flow-n: 3; }
/* the bar that joins the branches, and the line from the chain down to it */
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches::before {
  content: ""; position: absolute; top: 0; height: var(--flow-line);
  left: calc((100% - (var(--flow-n) - 1) * 16px) / var(--flow-n) / 2); right: calc((100% - (var(--flow-n) - 1) * 16px) / var(--flow-n) / 2);
  background: var(--accent); transform-origin: 50% 50%; transition: transform 500ms var(--ease) 160ms;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches::after {
  content: ""; position: absolute; left: 50%; top: calc(-1 * var(--flow-gap)); width: var(--flow-line); height: var(--flow-gap);
  margin-left: calc(var(--flow-line) / -2); background: var(--accent); transform-origin: 50% 0; transition: transform 300ms var(--ease);
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question + .flow__branches { margin-top: 0 !important; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__question + .flow__branches::after { display: none; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches > li {
  --flow-delay: 300ms; position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-top: var(--flow-gap); min-width: 0;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__branches > li > .flow__node { width: 100%; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node--out { --flow-delay: 420ms; margin-top: 20px; width: 100%; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__node--out::before { top: -21px; height: 20px; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__label {
  align-self: center; margin-bottom: 8px; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--ink); color: var(--panel);
  font-size: .75rem; font-weight: 650; letter-spacing: .04em;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves {
  --flow-delay: 420ms; position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 0 !important; padding-top: 20px !important;
}
:is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves::before { height: 20px; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves .flow__node--out { margin: 0; height: 100%; justify-content: center; font-size: .875rem; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves .flow__node--out::before { display: none; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__tail { display: grid; justify-items: center; margin-top: 4px !important; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow__tail > li { --flow-delay: 520ms; display: grid; justify-items: center; }
:is(body.aioos-page--industry, body.aioos-page--location) .flow figcaption { margin-top: 18px; font-size: .8125rem; color: var(--muted); text-align: start; }
/* the connectors draw once when shell.js marks the figure; without script, or with reduced motion, they are drawn */
:is(body.aioos-page--industry, body.aioos-page--location) .flow.route-pending:not(.route-drawn) :is(.flow__chain > li + li, .flow__question, .flow__tail > li, .flow__branches > li, .flow__node--out, .flow__leaves, .flow__branches)::before,
:is(body.aioos-page--industry, body.aioos-page--location) .flow.route-pending:not(.route-drawn) .flow__branches::after { transform: scaleY(0); }
:is(body.aioos-page--industry, body.aioos-page--location) .flow.route-pending:not(.route-drawn) .flow__branches::before { transform: scaleX(0); }
@media (max-width: 640px) {
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches { grid-template-columns: minmax(0, 1fr); gap: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches::before { display: none; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches > li + li { margin-top: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches::after { display: none; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches { margin-top: 0 !important; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__leaves { grid-template-columns: minmax(0, 1fr); }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__node { padding-inline: 14px; }
}

/* ======================================================================== industry template */
/* The scene (#135): a still life of the trade on a lilac ground and, over it, a live paper slip with the sample call's
   result (label, headline, two detail rows, status), the caller chip and a violet route to the slip. The picture is
   decorative (alt=""); the slip carries the meaning and is real text, translated through the catalogue. The caption
   "Illustratives Gespräch · Beispieldaten" sits under the scene at every width. The scene's own sizes follow its
   container (cqw), so the slip keeps its proportions; on narrow containers it sits below the picture. */
:is(body.aioos-page--industry, body.aioos-page--location) .ind-stage { margin: 0; min-width: 0; }
body.aioos-page--industry .ind-stage { justify-self: end; width: 100%; max-width: 664px; display: grid; gap: 14px; }
body.aioos-page--industry .ind-stage__frame { position: relative; container-type: inline-size; min-width: 0; }
body.aioos-page--industry .ind-stage__art {
  display: block; margin: 0; overflow: hidden; aspect-ratio: 1342 / 1172; background: #e4dced;
  border-radius: 28px 28px 28px 38%; box-shadow: var(--shadow-block);
}
body.aioos-page--industry .ind-stage__art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--art-pos, 0% 0%); }
body.aioos-page--industry .ind-stage__cap { margin: 0; font-size: .8125rem; line-height: 1.5; color: var(--muted); text-align: end; }

:is(body.aioos-page--industry, body.aioos-page--location) .ind-call {
  --u: clamp(.78rem, 3.9cqw, 1.0625rem); position: relative; z-index: 1; box-sizing: border-box; width: calc(21.5 * var(--u)); max-width: 100%;
  padding-top: calc(4.4 * var(--u)); font-size: var(--u); line-height: 1.35; color: var(--ink);
}
body.aioos-page--industry .ind-call { position: absolute; right: 4.5%; bottom: 5%; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-chip {
  position: absolute; top: 0; right: 1em; z-index: 2; display: inline-flex; align-items: center; gap: .6em; max-width: 100%; box-sizing: border-box;
  margin: 0; padding: .55em 1.1em .55em .8em; border: 1.5px solid var(--accent); border-radius: 1.5em; background: var(--panel);
  color: var(--accent); font-size: 1em; font-weight: 600; line-height: 1.25;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-chip svg { flex: none; width: 1.25em; height: 1.25em; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-route { position: absolute; z-index: 3; right: 2.6em; top: 2.5em; width: 5em; height: 2.2em; overflow: visible; pointer-events: none; transform: scaleX(-1); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-route .route-trace { stroke-width: 2.2; vector-effect: none; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-route .route-head { fill: none; stroke: var(--accent); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip {
  position: relative; display: grid; gap: .5em; padding: 1.15em 1.3em 1.2em; border: 1px solid #d8d0c0; border-radius: .8em; background: var(--panel);
  box-shadow: .35em .5em 0 var(--cut-1), 0 .8em 1.4em #32233a29; transform: rotate(-2.5deg); transform-origin: 50% 100%;
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip > * { margin: 0; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__label {
  padding-bottom: .55em; border-bottom: 1px solid #d8d0c0; font-size: max(.78em, 10.5px); font-weight: 650; letter-spacing: .08em; text-transform: uppercase; color: var(--ink);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__main {
  font-size: 1.62em; font-weight: 650; line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; color: var(--ink);
}
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__rows { display: grid; gap: .4em; padding: 0; list-style: none; }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__rows li { display: flex; align-items: center; gap: .7em; margin: 0; padding: 0; font-size: max(.95em, 12px); line-height: 1.3; color: var(--ink); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__rows svg { flex: none; width: 1.35em; height: 1.35em; color: var(--ink); }
:is(body.aioos-page--industry, body.aioos-page--location) .ind-slip__status { margin-top: .15em; font-size: 1.08em; font-weight: 650; line-height: 1.25; color: var(--accent); }

/* Narrow container: photo first, then the slip with its chip below it; nothing overlaps the picture's lower edge. */
@container (max-width: 600px) {
  body.aioos-page--industry .ind-call { position: relative; right: auto; bottom: auto; margin: 10px 0 0; width: min(100%, calc(21.5 * var(--u))); margin-inline: auto; }
}
@media (prefers-reduced-motion: no-preference) {
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-slip { animation: ind-slip 380ms cubic-bezier(.2, .65, .3, 1) 120ms both; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-chip { animation: ind-chip 360ms cubic-bezier(.2, .65, .3, 1) 40ms both; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-route .route-trace { animation: ind-draw 380ms ease-out 260ms both; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-route .route-head { animation: ind-head 120ms ease-out 600ms both; }
}
@keyframes ind-slip { from { opacity: 0; transform: translateY(14px) rotate(-2.5deg); } to { opacity: 1; transform: rotate(-2.5deg); } }
@keyframes ind-chip { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
@keyframes ind-draw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes ind-head { from { opacity: 0; } to { opacity: 1; } }

/* Article: the shell's contents rail beside one reading column, below the opening and the strip. */
body.aioos-page--industry .ind-article { padding-top: clamp(40px, 5vw, 72px); }
body.aioos-page--industry .ind-article { grid-template-areas: "toc body" "toc after"; }
body.aioos-page--industry .ind-article > .cta-box { grid-area: after; }
body.aioos-page--industry .ind-article > .page-toc-mobile { margin-bottom: clamp(32px, 6vw, 48px); }
body.aioos-page--industry .page-prose .ind-rows { padding-left: 0; }
body.aioos-page--industry .page-prose .ind-rows > li { margin: 0; }
@media (max-width: 1000px) {
  body.aioos-page--industry .ind-article { grid-template-areas: "toc" "body" "after"; }
}
body.aioos-page--industry .ind-prose > .ind-sec,
body.aioos-page--industry .ind-prose > .ind-part { scroll-margin-top: var(--anchor-offset); }
body.aioos-page--industry .ind-sec { padding-block: var(--ind-section); border-top: 1px solid var(--line-soft); }
body.aioos-page--industry .ind-prose > .ind-sec:first-child { padding-top: 0; border-top: 0; }
body.aioos-page--industry .ind-prose > .ind-part + .ind-sec { border-top: 0; padding-top: 32px; }
body.aioos-page--industry .ind-sec > h2 {
  margin: 0 0 22px; font-size: clamp(1.75rem, 1.25rem + 1.7vw, 2.75rem); line-height: 1.12; letter-spacing: -.04em;
}
body.aioos-page--industry .ind-sec > p { max-width: var(--ind-measure); }
body.aioos-page--industry .ind-sec > :last-child { margin-bottom: 0; }
body.aioos-page--industry .ind-part { margin-top: var(--ind-section); padding: 22px 0 0; border-top: 2px solid var(--accent); }
body.aioos-page--industry .ind-part > h2 {
  margin: 0; font-size: .875rem; font-weight: 650; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; color: var(--accent);
}
body.aioos-page--industry .ind-prose blockquote {
  margin: 28px 0; padding: 20px 24px; border: 0; border-left: 3px solid var(--accent); border-radius: 0 10px 10px 0; background: var(--panel);
}
body.aioos-page--industry .ind-prose blockquote > :last-child { margin-bottom: 0; }

/* Feature rows: the number in its own column, the heading and its content beside it. */
body.aioos-page--industry .ind-feature {
  display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 16px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line-soft);
}
body.aioos-page--industry .ind-feature + .ind-feature { margin-top: 0; }
body.aioos-page--industry .ind-feature__n {
  font-size: 1.75rem; font-weight: 500; line-height: 1.1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; color: var(--accent);
}
body.aioos-page--industry .ind-feature__body > h3 { margin-top: 2px; }
body.aioos-page--industry .ind-feature__body > :last-child { margin-bottom: 0; }
body.aioos-page--industry .ind-feature + :not(.ind-feature) { margin-top: 32px; }
@media (max-width: 600px) {
  body.aioos-page--industry .ind-feature { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--industry .ind-feature__n { margin-bottom: 6px; font-size: 1.375rem; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-rows > li { padding-left: 48px; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-rows > li::before { font-size: 1.375rem; top: 19px; }
}

body.aioos-page--industry .ind-sources p { margin: 0 0 12px; font-size: .875rem; line-height: 1.7; color: var(--muted); overflow-wrap: anywhere; }
body.aioos-page--industry .ind-sources a { color: var(--ink); }
body.aioos-page--industry .ind-sec--sample {
  margin-top: var(--ind-section); padding: clamp(24px, 3vw, 40px); border: 0; border-radius: var(--radius-lg); background: var(--tint);
}
body.aioos-page--industry .ind-prose > .ind-sec--sample + * { border-top: 0; }
body.aioos-page--industry .ind-sec--sample a { color: var(--ink); font-weight: 600; }
body.aioos-page--industry .ind-sec--sample a:hover { color: var(--accent); }

/* ---------- responsive opening ---------- */
@media (max-width: 1023px) {
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-hero { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--industry .ind-stage { justify-self: center; max-width: 540px; }
}
@media (max-width: 760px) {
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-actions { justify-items: stretch; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-actions .page-button { width: 100%; min-width: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-actions__links { gap: 0 24px; }
}
@media (max-width: 359px) {
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-h1__deck { font-size: 1.125rem; }
}

/* ---------- reduced motion, forced colours, print ---------- */
@media (prefers-reduced-motion: reduce) {
  :is(body.aioos-page--industry, body.aioos-page--location) .flow :is(*, *::before, *::after) { transform: none !important; }
}
@media (forced-colors: active) {
  body.aioos-page--industry .ind-stage__art, :is(body.aioos-page--industry, body.aioos-page--location) .ind-route { display: none; }
  :is(body.aioos-page--industry, body.aioos-page--location) :is(.ind-slip, .ind-chip) { border: 1px solid CanvasText; box-shadow: none; }
  body.aioos-page--industry .ind-call { position: relative; right: auto; bottom: auto; margin: 0; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__node, :is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item { border: 1px solid CanvasText; }
  :is(body.aioos-page--industry, body.aioos-page--location) .flow :is(li, .flow__node, .flow__question, .flow__leaves, .flow__branches)::before,
  :is(body.aioos-page--industry, body.aioos-page--location) .flow__branches::after,
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign::before,
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__sign::after { background: CanvasText; }
}
@media print {
  body.aioos-page--industry .ind-stage, :is(body.aioos-page--industry, body.aioos-page--location) .ind-actions { display: none !important; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-hero { display: block; }
  :is(body.aioos-page--industry, body.aioos-page--location) .ind-faq__item:not([open]) > .ind-faq__a { display: block; }
}
