/* AIOOS location template (#120): the five pages under /standorte/.

   Loaded after shell.css and industry.css (which holds the opening, the reading strip, numbered rows, questions,
   tables and the flow diagram shared with the industry pages). This file adds the city atlas, the chapter jumps,
   the editorial splits, the industry cards, the connection layout, the price line and the city links.

   Motion: the sample call's chip, route and slip settle once (at most 400ms, see industry.css). Everything else
   is still. Without script, or with reduced motion, all of it is in its final state from the first paint. */

body.aioos-page--location {
  --loc-wrap: min(100% - var(--gutter) * 2, var(--page-wrap));
}
body.aioos-page--location .ind-h1 { font-size: clamp(1.75rem, 10cqi, 4.5rem); line-height: 1.04; }
body.aioos-page--location .ind-h1__main { max-width: 14ch; }
body.aioos-page--location .ind-hero { grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); gap: 24px 40px; align-items: start; }
body.aioos-page--location .ind-hero__copy { padding-bottom: 8px; }

/* ---------- atlas ---------- */
body.aioos-page--location .loc-atlas { margin: clamp(20px, 2.6vw, 36px) 0 0; min-width: 0; }
body.aioos-page--location .loc-atlas__card {
  position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: clamp(320px, 46vw, 660px); container-type: inline-size;
  padding: clamp(20px, 2.4vw, 32px); overflow: hidden; border-radius: var(--radius-card);
  background: linear-gradient(160deg, #ebe4f1, var(--tint) 46%, #d9cee7);
  box-shadow: var(--shadow-block);
}
body.aioos-page--location .loc-atlas__word {
  font-family: var(--display); font-weight: 400; font-size: min(18.875rem, calc(100cqi / (var(--len, 4) * .43))); line-height: .8;
  letter-spacing: -.01em; color: var(--accent); white-space: nowrap;
}
body.aioos-page--location .loc-atlas__card > .ind-call { align-self: end; justify-self: end; margin-top: clamp(16px, 2.4vw, 28px); }
body.aioos-page--location .loc-atlas figcaption { margin-top: 12px; font-size: .8125rem; color: var(--muted); text-align: end; }
body.aioos-page--location .at-river { fill: none; stroke: var(--lilac); stroke-width: 24; stroke-linecap: round; opacity: .5; }
body.aioos-page--location .at-branch { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; opacity: .55; vector-effect: non-scaling-stroke; }
body.aioos-page--location .at-node { fill: var(--accent); stroke: var(--panel); stroke-width: 3; transition: fill 160ms var(--ease) calc(240ms + var(--n, 0) * 320ms); }
body.aioos-page--location .at-node--end { stroke-width: 4; }
body.aioos-page--location :is(.loc-ctx__route, .loc-city__map) .at-river { opacity: .45; stroke-width: 22; }

/* ---------- chapter jumps under the reading strip ---------- */
body.aioos-page--location .loc-jumps { border-bottom: 1px solid var(--line-soft); }
body.aioos-page--location .loc-jumps ul {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: var(--loc-wrap); margin: 0 auto; padding: 0; list-style: none;
}
body.aioos-page--location .loc-jumps li { display: flex; min-width: 0; }
body.aioos-page--location .loc-jumps li + li { border-left: 1px solid var(--line-soft); }
body.aioos-page--location .loc-jumps a {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 72px; padding: 12px;
  color: var(--accent); font-size: clamp(.9375rem, .9rem + .3vw, 1.125rem); font-weight: 550; text-decoration: none;
  transition: background 160ms var(--ease);
}
body.aioos-page--location .loc-jumps a > span:first-child { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; transition: text-decoration-color 160ms var(--ease); }
body.aioos-page--location .loc-jumps a:hover { background: var(--panel); }
body.aioos-page--location .loc-jumps a:hover > span:first-child { text-decoration-color: currentColor; }
body.aioos-page--location .loc-jumps a:focus-visible { outline-offset: -4px; }

/* ---------- chapters ---------- */
body.aioos-page--location .loc-sec { width: var(--loc-wrap); margin-inline: auto; padding-block: var(--ind-section); scroll-margin-top: var(--anchor-offset); }
body.aioos-page--location .loc-sec + .loc-sec { border-top: 1px solid var(--line-soft); }
body.aioos-page--location .loc-sec h2 {
  margin: 0; max-width: 20ch; font-family: var(--type-family); font-weight: 650;
  font-size: clamp(1.875rem, 1.2rem + 2.3vw, 3.25rem); line-height: 1.1; letter-spacing: -.045em; text-wrap: balance;
  scroll-margin-top: var(--anchor-offset);
}
body.aioos-page--location .loc-sec :is(p, li, td, th, h3) { overflow-wrap: break-word; hyphens: auto; }
body.aioos-page--location .loc-sec p,
body.aioos-page--location .loc-sec li { font-size: clamp(1rem, .96rem + .2vw, 1.125rem); line-height: 1.65; }
body.aioos-page--location .loc-sec p { margin: 0 0 1em; max-width: var(--ind-measure); }
body.aioos-page--location .loc-sec a:not(.page-link) { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
body.aioos-page--location .loc-sec a:not(.page-link):hover { text-decoration-thickness: 2px; }
body.aioos-page--location .loc-sec strong { font-weight: 650; }
body.aioos-page--location .loc-sec h3 { margin: 28px 0 8px; font-size: clamp(1.125rem, 1.05rem + .3vw, 1.3125rem); font-weight: 650; line-height: 1.3; letter-spacing: -.02em; }
body.aioos-page--location .loc-sec ul:not([role]) { margin: 0 0 1em; padding-left: 1.3em; }
body.aioos-page--location .loc-sec ul:not([role]) > li { margin: 0 0 .5em; padding-left: .2em; }
body.aioos-page--location .loc-sec ul:not([role]) > li::marker { color: var(--accent); }

body.aioos-page--location .loc-split { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); gap: 32px 48px; align-items: start; }
body.aioos-page--location .loc-split--faq { grid-template-columns: minmax(0, 34fr) minmax(0, 66fr); }
body.aioos-page--location .loc-split__head { min-width: 0; }
body.aioos-page--location .loc-split__body { min-width: 0; padding-left: 48px; border-left: 1px solid var(--line-soft); }
body.aioos-page--location .loc-split__body > :first-child { margin-top: 0; }
body.aioos-page--location .loc-split--faq .loc-split__body { padding-left: 0; border-left: 0; }
body.aioos-page--location .loc-split--faq .ind-faq { margin-top: 0; }
body.aioos-page--location .loc-ctx__num {
  margin: clamp(24px, 3vw, 40px) 0 0; font-family: var(--display); font-weight: 400; font-size: clamp(7rem, 4rem + 9vw, 13.75rem); line-height: .8;
  color: var(--lilac); max-width: none;
}
body.aioos-page--location .loc-ctx__route { width: min(100%, 300px); margin-top: clamp(24px, 3vw, 40px); }
body.aioos-page--location .loc-ctx__route svg { display: block; width: 100%; height: auto; }
body.aioos-page--location .loc-links { display: flex; flex-wrap: wrap; gap: 0 28px; margin: 8px 0 0 !important; }
body.aioos-page--location .loc-links .page-link { color: var(--accent); }

/* industries: one paper card per sector, all open */
body.aioos-page--location .loc-cards { display: grid; gap: 20px; margin: clamp(28px, 3vw, 40px) 0 0; padding: 0; list-style: none; }
body.aioos-page--location .loc-card {
  display: grid; grid-template-columns: minmax(0, 32fr) minmax(0, 68fr); gap: 20px 32px; margin: 0;
  padding: clamp(22px, 2.6vw, 32px); border: 1px solid var(--line-card); border-radius: var(--radius-card); background: var(--panel);
}
body.aioos-page--location .loc-card--tint { background: var(--tint); border-color: #473b7033; }
body.aioos-page--location .loc-card__head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 18px; min-width: 0; }
body.aioos-page--location .loc-card__n {
  font-size: clamp(2.75rem, 1.8rem + 2.6vw, 4.5rem); font-weight: 450; line-height: .95; letter-spacing: -.055em;
  font-variant-numeric: tabular-nums; color: var(--accent);
}
body.aioos-page--location .loc-card h3 { margin: 4px 0 0; font-size: clamp(1.25rem, 1.1rem + .5vw, 1.625rem); line-height: 1.2; letter-spacing: -.03em; }
body.aioos-page--location .loc-card__body { min-width: 0; padding-left: 32px; border-left: 1px solid var(--line-soft); }
body.aioos-page--location .loc-card__body > p:first-child { font-weight: 550; }
body.aioos-page--location .loc-card__body > :last-child { margin-bottom: 0; }

/* connection: the schematic flow beside the table or the setup points */
body.aioos-page--location .loc-con__intro { margin-top: 24px; }
body.aioos-page--location .loc-connect { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 32px 48px; align-items: start; margin-top: 12px; }
body.aioos-page--location .loc-connect--single { grid-template-columns: minmax(0, 1fr); }
body.aioos-page--location .loc-connect__flow .flow { margin: 0; background: var(--tint); border-color: #473b7026; }
body.aioos-page--location .loc-connect__flow .flow__node:not(.flow__node--core):not(.flow__node--out) { background: var(--panel); }
body.aioos-page--location .loc-connect__flow .flow__node--out { background: var(--panel); }
body.aioos-page--location .loc-connect__flow .flow__branches { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 0 !important; }
body.aioos-page--location .loc-connect__flow .flow__branches::before,
body.aioos-page--location .loc-connect__flow .flow__branches::after { display: none; }
body.aioos-page--location .loc-connect__body > .ind-table:first-child { margin-top: 0; }
body.aioos-page--location .loc-connect__body .ind-table { background: transparent; border-inline: 0; border-radius: 0; }
body.aioos-page--location .loc-connect__body .ind-table thead th { background: transparent; border-bottom: 1px solid var(--line); }
body.aioos-page--location .loc-connect__body .ind-table tbody th { width: 28%; }

/* free sample and price line */
body.aioos-page--location .loc-start__panel {
  padding: clamp(24px, 3.4vw, 48px); border-radius: var(--radius-card); background: var(--tint);
}
body.aioos-page--location .loc-start__panel p { margin: 20px 0 0; max-width: 60ch; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); line-height: 1.6; }
body.aioos-page--location .loc-start__panel a { color: var(--ink); font-weight: 600; }
body.aioos-page--location .loc-price {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px 32px; margin-top: 24px;
  padding: 18px 24px; border: 1px solid var(--line-card); border-radius: var(--radius-card); background: var(--panel);
}
body.aioos-page--location .loc-sec .loc-price p { margin: 0; }
body.aioos-page--location .loc-sec .loc-price__from { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); font-weight: 650; letter-spacing: -.03em; white-space: nowrap; }
body.aioos-page--location .loc-sec .loc-price__note { font-size: .9375rem; color: var(--muted); padding-left: 32px; border-left: 1px solid var(--line-soft); }

/* demo invitation and city links */
body.aioos-page--location .loc-tail { width: var(--loc-wrap); margin-inline: auto; }
body.aioos-page--location .loc-tail > .cta-box { margin-top: 0; }
body.aioos-page--location .loc-cities-wrap { margin-top: clamp(56px, 6vw, 80px); padding-top: clamp(40px, 4vw, 56px); border-top: 1px solid var(--line-soft); }
body.aioos-page--location .loc-cities-title { margin: 0 0 24px; font-size: clamp(1.75rem, 1.3rem + 1.5vw, 2.75rem); font-weight: 650; line-height: 1.1; letter-spacing: -.045em; }
body.aioos-page--location .loc-cities { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
body.aioos-page--location .loc-cities > li { display: flex; min-width: 0; }
body.aioos-page--location .loc-city {
  flex: 1; display: grid; grid-template-rows: 1fr auto auto; gap: 4px; min-height: 180px; padding: 20px;
  border: 1px solid var(--line-card); border-radius: var(--radius-card); background: var(--panel); color: var(--ink); text-decoration: none;
  transition: background 160ms var(--ease), border-color 160ms var(--ease), color 160ms var(--ease);
}
body.aioos-page--location .loc-city:hover { background: var(--tint); border-color: var(--accent); }
body.aioos-page--location .loc-city.is-current { background: var(--tint); border-color: #473b7040; color: var(--accent); }
body.aioos-page--location .loc-city__map { display: block; height: 72px; }
body.aioos-page--location .loc-city__map svg { display: block; width: 100%; height: 100%; }
body.aioos-page--location .loc-city__map .route-track { opacity: .25; }
body.aioos-page--location .loc-city__name { font-family: var(--display); font-weight: 400; font-size: clamp(2.25rem, 1.8rem + 1vw, 2.75rem); line-height: .9; letter-spacing: .005em; overflow-wrap: anywhere; }
body.aioos-page--location .loc-city__meta { display: flex; justify-content: space-between; align-items: center; font-size: .9375rem; font-variant-numeric: tabular-nums; }
body.aioos-page--location .loc-city__meta > span:last-child { transition: transform 160ms var(--ease); }
body.aioos-page--location .loc-city:hover .loc-city__meta > span:last-child { transform: translateX(2px); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  body.aioos-page--location .loc-cities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  body.aioos-page--location .ind-hero { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--location .loc-atlas__card { min-height: 0; aspect-ratio: auto; }
  body.aioos-page--location .loc-connect { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--location .loc-connect__flow { max-width: 520px; }
}
@media (max-width: 900px) {
  body.aioos-page--location .loc-split,
  body.aioos-page--location .loc-split--faq { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--location .loc-split__body { padding-left: 0; border-left: 0; }
  body.aioos-page--location .loc-ctx__num { font-size: clamp(5.5rem, 3rem + 10vw, 8rem); margin-top: 16px; }
  body.aioos-page--location .loc-ctx__route { display: none; }
  body.aioos-page--location .loc-card { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--location .loc-card__body { padding-left: 0; border-left: 0; }
  body.aioos-page--location .loc-price { grid-template-columns: minmax(0, 1fr); }
  body.aioos-page--location .loc-sec .loc-price__note { padding-left: 0; border-left: 0; }
}
@media (max-width: 760px) {
  body.aioos-page--location .loc-jumps ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.aioos-page--location .loc-jumps li:nth-child(3) { border-left: 0; }
  body.aioos-page--location .loc-jumps li:nth-child(n + 3) { border-top: 1px solid var(--line-soft); }
  body.aioos-page--location .loc-jumps a { min-height: 56px; justify-content: space-between; padding-inline: 4px 14px; }
  body.aioos-page--location .loc-jumps li:nth-child(even) a { padding-left: 14px; }
  body.aioos-page--location .loc-cities { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  body.aioos-page--location .loc-city { min-height: 150px; padding: 16px; }
}
@media (max-width: 359px) {
  body.aioos-page--location .loc-cities { grid-template-columns: minmax(0, 1fr); }
}

@media (forced-colors: active) {
  body.aioos-page--location .loc-atlas__card { border: 1px solid CanvasText; background: Canvas; box-shadow: none; }
  body.aioos-page--location .loc-city { border: 1px solid CanvasText; }
  body.aioos-page--location .loc-city.is-current { outline: 2px solid Highlight; }
}
@media print {
  body.aioos-page--location :is(.loc-atlas, .loc-jumps, .loc-cities-wrap, .loc-ctx__num, .loc-ctx__route) { display: none !important; }
}

/* ---------- tables in the location chapters (the industry article takes these from the shell's prose rules) ---------- */
body.aioos-page--location .ind-table table { width: 100%; margin: 0; border-collapse: collapse; }
body.aioos-page--location .ind-table :is(th, td) {
  padding: 18px 20px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--line-soft);
  font-size: clamp(.9375rem, .9rem + .2vw, 1.0625rem); line-height: 1.6;
}
body.aioos-page--location .ind-table tr:last-child > :is(th, td) { border-bottom: 0; }
body.aioos-page--location .ind-table :is(th, td) + :is(th, td) { border-left: 1px solid var(--line-soft); }
body.aioos-page--location .ind-table thead th { background: var(--tint); font-size: .875rem; font-weight: 650; }
body.aioos-page--location .ind-table tbody th { width: 30%; font-weight: 650; }
body.aioos-page--location .loc-connect__body .ind-table :is(th, td) + :is(th, td) { border-left: 0; }
body.aioos-page--location .loc-connect__body .ind-table :is(th, td) { padding-inline: 0 24px; }
body.aioos-page--location .loc-connect__body .ind-table tr:last-child > :is(th, td) { border-bottom: 1px solid var(--line-soft); }
@media (max-width: 700px) {
  body.aioos-page--location .ind-table tbody :is(th, td),
  body.aioos-page--location .loc-connect__body .ind-table tbody :is(th, td) { width: auto; padding: 0; border: 0; }
  body.aioos-page--location .loc-connect__body .ind-table tbody tr { padding-inline: 0; }
}
body.aioos-page--location .loc-sec .ind-faq__q { margin: 0; font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); }
body.aioos-page--location .loc-sec .ind-faq__a p { font-size: clamp(1rem, .97rem + .15vw, 1.0625rem); }
body.aioos-page--location .loc-sec ul:not([role]) { list-style-type: disc; }
body.aioos-page--location .loc-sec .loc-ctx__num { margin: clamp(24px, 3vw, 40px) 0 0; font-size: clamp(7rem, 4rem + 9vw, 13.75rem); line-height: .8; }
@media (max-width: 900px) {
  body.aioos-page--location .loc-sec .loc-ctx__num { font-size: clamp(5.5rem, 3rem + 10vw, 8rem); margin-top: 16px; }
}
