/* Surface modes as classes (generated from tokens.json themes). Put one on any container whose background differs from the page mode. */
.u-surface-navy { --urbin-fluid-outline: var(--urbin-neutral-white); --urbin-fluid-outline-strong: var(--urbin-yellow-base); --urbin-fluid-label: var(--urbin-neutral-white); --urbin-fluid-fill-active: var(--urbin-yellow-base); --urbin-fluid-label-active: var(--urbin-navy-base); --urbin-fluid-route-lit: var(--urbin-yellow-base); --urbin-fluid-gap-fill: var(--urbin-yellow-base); --urbin-fluid-gap-fill-fade: var(--urbin-alpha-yellow-base-00); --urbin-surface-bg: var(--urbin-navy-70); --urbin-surface-ink: var(--urbin-neutral-white); --urbin-surface-body: var(--urbin-lavender-base); --urbin-surface-muted: var(--urbin-lavender-60); --urbin-surface-accent: var(--urbin-yellow-base); --urbin-surface-line: var(--urbin-alpha-white-15); --urbin-focus: var(--urbin-yellow-base); --urbin-fluid-edge: var(--urbin-fluid-outline); }
.u-surface-yellow { --urbin-fluid-outline: var(--urbin-yellow-100); --urbin-fluid-outline-strong: var(--urbin-yellow-100); --urbin-fluid-label: var(--urbin-yellow-90); --urbin-fluid-fill-active: var(--urbin-yellow-100); --urbin-fluid-label-active: var(--urbin-yellow-base); --urbin-fluid-route-lit: var(--urbin-yellow-100); --urbin-fluid-gap-fill: var(--urbin-yellow-100); --urbin-fluid-gap-fill-fade: var(--urbin-alpha-yellow-100-00); --urbin-surface-bg: var(--urbin-yellow-base); --urbin-surface-ink: var(--urbin-navy-base); --urbin-surface-body: var(--urbin-navy-base); --urbin-surface-muted: var(--urbin-yellow-90); --urbin-surface-accent: var(--urbin-navy-base); --urbin-surface-line: var(--urbin-yellow-100); --urbin-focus: var(--urbin-navy-base); --urbin-fluid-edge: var(--urbin-fluid-outline); }
.u-surface-lavender { --urbin-fluid-outline: var(--urbin-navy-base); --urbin-fluid-outline-strong: var(--urbin-navy-base); --urbin-fluid-label: var(--urbin-navy-base); --urbin-fluid-fill-active: var(--urbin-navy-base); --urbin-fluid-label-active: var(--urbin-lavender-10); --urbin-fluid-route-lit: var(--urbin-navy-base); --urbin-fluid-gap-fill: var(--urbin-navy-base); --urbin-fluid-gap-fill-fade: var(--urbin-alpha-navy-base-00); --urbin-surface-bg: var(--urbin-lavender-base); --urbin-surface-ink: var(--urbin-navy-base); --urbin-surface-body: var(--urbin-lavender-90); --urbin-surface-muted: var(--urbin-lavender-90); --urbin-surface-accent: var(--urbin-navy-base); --urbin-surface-line: var(--urbin-navy-base); --urbin-focus: var(--urbin-teal-base); --urbin-fluid-edge: var(--urbin-fluid-outline); }
.u-surface-light { --urbin-fluid-outline: var(--urbin-navy-base); --urbin-fluid-outline-strong: var(--urbin-navy-base); --urbin-fluid-label: var(--urbin-navy-base); --urbin-fluid-fill-active: var(--urbin-navy-base); --urbin-fluid-label-active: var(--urbin-lavender-10); --urbin-fluid-route-lit: var(--urbin-teal-base); --urbin-fluid-gap-fill: var(--urbin-teal-base); --urbin-fluid-gap-fill-fade: var(--urbin-alpha-teal-base-00); --urbin-surface-bg: var(--urbin-neutral-white); --urbin-surface-ink: var(--urbin-navy-base); --urbin-surface-body: var(--urbin-navy-50); --urbin-surface-muted: var(--urbin-navy-50); --urbin-surface-accent: var(--urbin-teal-base); --urbin-surface-line: var(--urbin-navy-base); --urbin-focus: var(--urbin-teal-base); --urbin-fluid-edge: var(--urbin-fluid-outline); }
/* ---------- Base: three weights, balanced wrapping, no tracking on Satoshi ---------- */
.u-root, .u-root * { box-sizing: border-box; }
.u-root { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: var(--font-sans); color: var(--urbin-surface-ink); }
[class^="urbin-heading-"], [class*=" urbin-heading-"], .urbin-text-lead, .urbin-text-caption, .urbin-mono-eyebrow { text-wrap: balance; }
.urbin-text-body, .urbin-text-small, .urbin-text-body-strong { text-wrap: pretty; }
[class^="urbin-heading-"], [class*=" urbin-heading-"], [class^="urbin-text-"], [class*=" urbin-text-"], [class^="urbin-figure-"], [class*=" urbin-figure-"] { letter-spacing: 0; margin: 0; }
[class^="urbin-mono-"], [class*=" urbin-mono-"] { margin: 0; }
.urbin-mono-button { text-transform: uppercase; }
[class^="urbin-figure-"], [class*=" urbin-figure-"] { line-height: normal; }

/* ---------- Logo ---------- */
.u-logo { display: inline-block; width: 165px; min-width: var(--urbin-size-logo-min); line-height: 0; flex: none; }
.u-logo svg { display: block; width: 100%; height: auto; }

/* ---------- Light head ---------- */
.u-lighthead { position: relative; display: inline-block; width: var(--u-lh, 36px); height: var(--u-lh, 36px); flex: none; pointer-events: none; }
.u-lighthead svg { position: absolute; left: -20.78%; top: -20.78%; width: 141.56%; height: 141.56%; overflow: visible; }

/* ---------- Divider ---------- */
.u-divider { position: relative; display: block; width: 100%; height: 1px; flex: none; background: var(--urbin-navy-50); }
.u-divider--glass-lit { background: var(--urbin-yellow-base); }
.u-divider--schematic, .u-divider--schematic-route {
  background: repeating-linear-gradient(90deg, var(--urbin-navy-base) 0 14px, var(--urbin-alpha-navy-base-00) 14px 19px, var(--urbin-navy-base) 19px 21px, var(--urbin-alpha-navy-base-00) 21px 26px);
}
.u-divider__run { position: absolute; left: 0; top: 50%; width: var(--u-lit, 70%); height: 1.5px; transform: translateY(-50%); background: var(--urbin-yellow-base); box-shadow: var(--urbin-glow-route); }
.u-divider--schematic-route .u-divider__run { background: var(--urbin-navy-base); box-shadow: none; }
.u-divider__head { position: absolute; right: 0; top: 50%; transform: translate(50%, -50%); }
.u-divider__node { position: absolute; right: 0; top: 50%; width: 8px; height: 8px; transform: translate(50%, -50%); border-radius: 50%; background: var(--urbin-yellow-base); box-shadow: 0 0 0 1.25px var(--urbin-navy-base); }

/* ---------- Ring map ---------- */
.u-ringmap { display: block; width: 100%; line-height: 0; }
.u-ringmap svg { display: block; width: 100%; height: auto; overflow: visible; }

/* ---------- Icon + tile ---------- */
.u-icon { position: relative; display: inline-block; flex: none; width: var(--u-icon-size, 96px); height: var(--u-icon-size, 96px); }
.u-icon svg { position: absolute; left: -16.667%; top: -16.667%; width: 133.333%; height: 133.333%; overflow: visible; }
.u-tile {
  position: relative; isolation: isolate; display: grid; place-items: center; width: 144px; height: 144px; flex: none;
  border-radius: var(--urbin-radius-tile);
  background: color-mix(in srgb, var(--urbin-navy-70) 38%, transparent);
  -webkit-backdrop-filter: var(--urbin-tile-blur); backdrop-filter: var(--urbin-tile-blur);
}
.u-tile::before, .u-card--glass::before, .u-card--glass::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; padding: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;
}
.u-tile::before { background: linear-gradient(180deg, var(--urbin-alpha-white-15), var(--urbin-alpha-white-03)); }
.u-tile.is-active {
  background:
    linear-gradient(180deg, var(--urbin-alpha-yellow-base-15), var(--urbin-alpha-yellow-base-00) 50%),
    var(--urbin-navy-70);
  box-shadow: var(--urbin-shadow-tile-active);
}
.u-tile.is-active::before { padding: 1.5px; background: linear-gradient(180deg, var(--urbin-alpha-yellow-base-55), var(--urbin-alpha-white-03)); }

/* ---------- Fluid Button system ---------- */
.u-fluid { --urbin-fluid-edge: var(--urbin-fluid-outline); position: relative; display: flex; align-items: center; max-width: 100%; min-width: 0; }
.u-fluid[data-emphasis="strong"] { --urbin-fluid-edge: var(--urbin-fluid-outline-strong); }
.u-fluid--stretch { width: 100%; }
.u-seg {
  position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none;
  height: var(--urbin-size-fluid-height); padding: var(--urbin-size-fluid-inset); margin: 0; border: 0; background: none;
  color: var(--urbin-fluid-label); font: inherit; text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.u-seg__body { position: absolute; top: -0.75px; bottom: -0.75px; left: 20px; right: 20px; border-block: 1.5px solid var(--urbin-fluid-edge); pointer-events: none; }
.u-seg--solo .u-seg__body { left: -0.75px; right: -0.75px; border: 1.5px solid var(--urbin-fluid-edge); border-radius: 20.75px; }
.u-seg--first .u-seg__body { left: -0.75px; border-left: 1.5px solid var(--urbin-fluid-edge); border-radius: 20.75px 0 0 20.75px; }
.u-seg--last .u-seg__body { right: -0.75px; border-right: 1.5px solid var(--urbin-fluid-edge); border-radius: 0 20.75px 20.75px 0; }
.u-seg__neck { position: absolute; top: -0.75px; width: 25px; height: 41.5px; color: var(--urbin-fluid-edge); overflow: visible; pointer-events: none; }
.u-seg__neck--out { left: calc(100% - 20px); }
.u-seg__neck--in { right: calc(100% - 20px); transform: scaleX(-1); }
.u-seg__fill {
  position: absolute; inset: var(--urbin-size-fluid-inset); border-radius: var(--urbin-radius-fill); background: var(--urbin-fluid-fill-active);
  opacity: 0; transition-property: opacity, transform; transition-duration: 150ms; transition-timing-function: ease-out;
}
.u-seg__label {
  position: relative; padding: 0 16px; white-space: nowrap;
  font-family: var(--font-mono); font-weight: 700; font-size: 11px; line-height: 1; letter-spacing: 0.06em; text-transform: uppercase;
  transition: color 150ms ease-out;
}
.u-seg:hover .u-seg__fill { opacity: 0.14; }
.u-fluid__glide {
  position: absolute; top: var(--urbin-size-fluid-inset); bottom: var(--urbin-size-fluid-inset); border-radius: var(--urbin-radius-fill);
  background: var(--urbin-fluid-fill-active); pointer-events: none; opacity: 0;
  transition-property: left, right, opacity, transform; transition-duration: 320ms, 320ms, 180ms, 150ms;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1), cubic-bezier(0.22, 1, 0.36, 1), ease-out, ease-out;
}
.u-fluid__glide.is-right { transition-duration: 460ms, 260ms, 180ms, 150ms; }
.u-fluid__glide.is-left { transition-duration: 260ms, 460ms, 180ms, 150ms; }
.u-fluid__glide.is-jump { transition-property: opacity; }
.u-fluid__glide--hover.is-on { opacity: 0.16; }
.u-fluid--hover-fill .u-fluid__glide--hover.is-on { opacity: 1; }
.u-fluid--hover-fill .u-seg.is-hovered { color: var(--urbin-fluid-label-active); }
.u-fluid--hover-fill .u-seg .u-seg__label { transition: color 160ms ease-out 90ms; }
.u-fluid__glide--active { opacity: 1; }
.u-fluid:active .u-fluid__glide--hover { transform: scaleY(0.9); }
.u-fluid.has-glide .u-seg:not(.is-active):hover .u-seg__fill { opacity: 0; }
.u-seg.is-glided .u-seg__fill { opacity: 0; transition: none; }
.u-fluid.has-glide .u-seg.is-active .u-seg__label { transition: color 200ms ease-out 120ms; }
.u-seg:active .u-seg__fill { transform: scale(0.97); }
.u-seg.is-active .u-seg__fill { opacity: 1; }
.u-seg.is-active { color: var(--urbin-fluid-label-active); }
.u-seg:focus-visible { outline: none; }
.u-seg:focus-visible::after { content: ""; position: absolute; inset: -5px; border: 2px solid var(--urbin-focus); border-radius: 25px; pointer-events: none; }
.u-seg:disabled { cursor: default; opacity: 0.4; }
.u-seg:disabled .u-seg__fill { opacity: 0; }
.u-gap { position: relative; display: block; flex: none; width: var(--urbin-size-splice); height: var(--urbin-size-fluid-height); pointer-events: none; }
.u-gap--fluid { flex: 1 1 48px; min-width: 24px; width: auto; }
.u-gap__band { position: absolute; left: 5px; right: 5px; top: calc(20px - var(--urbin-size-neck) / 2 - 0.75px); height: calc(var(--urbin-size-neck) + 1.5px); border-block: 1.5px solid var(--urbin-fluid-edge); }
.u-gap.has-fill .u-gap__band { background: linear-gradient(90deg, var(--urbin-fluid-gap-fill-fade), var(--urbin-fluid-gap-fill) 30%, var(--urbin-fluid-gap-fill) 70%, var(--urbin-fluid-gap-fill-fade)); }
@media (prefers-reduced-motion: reduce) { .u-seg__fill, .u-seg__label { transition: none; } .u-fluid__glide { transition-property: opacity; } }

/* ---------- Card ---------- */
.u-card {
  position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; gap: var(--urbin-space-24);
  min-width: var(--urbin-size-card-min-w); min-height: var(--urbin-size-card-min-h); padding: var(--urbin-space-30);
  border-radius: var(--urbin-radius-card);
  transition-property: box-shadow, transform; transition-duration: 240ms; transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
.u-card__top, .u-card__bottom { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.u-card__footer { display: flex; flex-direction: column; gap: 18px; }
.u-card__figure { display: flex; flex-direction: column; gap: var(--urbin-space-4); }
.u-card__media { line-height: 0; }
.u-card__link { color: inherit; text-decoration: none; }
.u-card__link::after { content: ""; position: absolute; inset: calc(-1 * var(--urbin-space-30)); z-index: 3; border-radius: var(--urbin-radius-card); }
.u-card__link:focus-visible { outline: none; }
.u-card:has(.u-card__link:focus-visible) { outline: 2px solid var(--urbin-focus); outline-offset: 4px; }
.u-card__title, .u-card__body, .u-card__data, .u-card__figval, .u-card__figlabel { margin: 0; transition: color 200ms ease-out; }
.u-card__data, .u-card__figlabel { white-space: pre-wrap; text-transform: uppercase; }
/* glass */
.u-card--glass { background: linear-gradient(180deg, var(--urbin-alpha-navy-100-20), var(--urbin-alpha-teal-base-20)); -webkit-backdrop-filter: var(--urbin-glass-blur); backdrop-filter: var(--urbin-glass-blur); }
.u-card--glass::before { z-index: 2; background: linear-gradient(180deg, var(--urbin-alpha-white-15), var(--urbin-alpha-white-03)); transition: opacity 200ms ease-out; }
.u-card--glass::after { z-index: 2; padding: 2px; opacity: 0; background: linear-gradient(180deg, var(--urbin-yellow-40), var(--urbin-alpha-white-03)); transition: opacity 200ms ease-out; }
.u-card__tint, .u-card__glow { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.u-card__glow { z-index: -2; opacity: 0; background: linear-gradient(180deg, var(--urbin-alpha-yellow-base-15), var(--urbin-alpha-yellow-base-00) 50%), var(--urbin-teal-80); transition: opacity 200ms ease-out; }
.u-card__tint { z-index: -1; background: var(--urbin-alpha-navy-70-00); }
.u-tint-soft .u-card__tint { background: var(--urbin-alpha-navy-70-40); }
.u-tint-medium .u-card__tint { background: var(--urbin-alpha-navy-70-65); }
.u-tint-deep .u-card__tint { background: var(--urbin-alpha-navy-70-85); }
.u-card--glass .u-card__title { color: var(--urbin-yellow-base); }
.u-card--glass .u-card__body { color: var(--urbin-lavender-base); }
.u-card--glass .u-card__data, .u-card--glass .u-card__figlabel { color: var(--urbin-lavender-60); }
.u-card--glass .u-card__figval { color: var(--urbin-neutral-white); }
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) { box-shadow: var(--urbin-shadow-card-hover); }
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within)::after,
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) .u-card__glow { opacity: 1; }
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within)::before { opacity: 0; }
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) :is(.u-card__body, .u-card__data, .u-card__figlabel) { color: var(--urbin-yellow-base); }
.u-card--glass:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) .u-divider--glass { background: var(--urbin-yellow-base); }
/* schematic */
.u-card--schematic { background: var(--urbin-neutral-white); box-shadow: inset 0 0 0 1px var(--urbin-navy-base); }
.u-card--schematic .u-card__title, .u-card--schematic .u-card__figval { color: var(--urbin-navy-base); }
.u-card--schematic :is(.u-card__body, .u-card__data, .u-card__figlabel) { color: var(--urbin-navy-50); }
.u-card--schematic:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) { box-shadow: inset 0 0 0 1.5px var(--urbin-navy-base); }
.u-card.is-interactive { cursor: pointer; }
.u-card:is(.is-hover, .is-interactive:hover, .is-interactive:focus-within) { transform: translateY(-10px); }
@media (prefers-reduced-motion: reduce) { .u-card, .u-card *, .u-card::before, .u-card::after { transition: none !important; } }

/* ---------- Stat ---------- */
.u-stat { display: inline-flex; flex-direction: column; gap: var(--urbin-space-4); }
.u-stat--light .u-stat__figure { color: var(--urbin-navy-base); }
.u-stat--light .u-stat__label { color: var(--urbin-navy-50); }
.u-stat--dark .u-stat__figure { color: var(--urbin-neutral-white); }
.u-stat--dark .u-stat__label { color: var(--urbin-lavender-60); }
.u-stat__label { text-transform: uppercase; }
.u-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--urbin-space-24); }

/* ---------- Forms ---------- */
.u-field { display: flex; flex-direction: column; gap: var(--urbin-space-12); min-width: 160px; width: 100%; }
.u-field__label { display: block; color: var(--urbin-navy-base); text-transform: uppercase; }
.u-field__optional { color: var(--urbin-lavender-80); margin-left: var(--urbin-space-12); white-space: nowrap; }
.u-field__control {
  display: block; width: 100%; height: var(--urbin-size-field); padding: 0 var(--urbin-space-20); margin: 0;
  border: 1px solid var(--urbin-lavender-80); border-radius: var(--urbin-radius-card); background: var(--urbin-lavender-10);
  color: var(--urbin-navy-base); font-family: var(--font-sans); font-size: 18px; line-height: 1.5; font-weight: 400;
  outline: none; -webkit-appearance: none; appearance: none; text-overflow: ellipsis;
  transition-property: border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease-out;
}
.u-field__control::placeholder { color: var(--urbin-lavender-80); opacity: 1; }
.u-field__control:hover { border-color: var(--urbin-navy-50); }
.u-field__control:focus, .u-field.is-focus .u-field__control { border-color: var(--urbin-navy-base); box-shadow: inset 0 0 0 0.5px var(--urbin-navy-base); }
.u-field__control:focus-visible { box-shadow: inset 0 0 0 0.5px var(--urbin-navy-base), 0 0 0 3px var(--urbin-neutral-white), 0 0 0 5px var(--urbin-teal-base); }
.u-field__control[aria-invalid="true"] { border-color: var(--urbin-teal-base); }
.u-field__control--area { height: auto; min-height: 176px; padding: var(--urbin-space-16) var(--urbin-space-20); resize: vertical; text-overflow: clip; }
.u-field__select { position: relative; }
.u-field__select .u-field__control { padding-right: 48px; cursor: pointer; }
.u-field__select select:invalid, .u-field__select select:has(option[value=""]:checked) { color: var(--urbin-lavender-80); }
.u-field__chevron { position: absolute; right: var(--urbin-space-20); top: 50%; transform: translateY(-50%); color: var(--urbin-navy-base); pointer-events: none; }
.u-hint { display: inline-flex; align-items: center; gap: 10px; color: var(--urbin-teal-base); text-transform: uppercase; }
.u-hint__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--urbin-teal-base); flex: none; }
.u-check { position: relative; display: inline-flex; align-items: center; gap: 14px; min-height: var(--urbin-size-fluid-height); cursor: pointer; }
.u-check__input { position: absolute; opacity: 0; width: 22px; height: 22px; margin: 0; cursor: pointer; }
.u-check__box { display: grid; place-items: center; width: 22px; height: 22px; flex: none; border-radius: var(--urbin-radius-check); border: 1.5px solid; transition-property: background-color, border-color; transition-duration: 150ms; transition-timing-function: ease-out; }
.u-check__box svg { opacity: 0; transition: opacity 120ms ease-out; }
.u-check__input:checked + .u-check__box svg { opacity: 1; }
.u-check__input:focus-visible + .u-check__box { outline: 2px solid var(--urbin-focus); outline-offset: 3px; }
.u-check--navy .u-check__box { background: var(--urbin-lavender-10); border-color: var(--urbin-navy-10); color: var(--urbin-navy-base); }
.u-check--navy .u-check__input:checked + .u-check__box { background: var(--urbin-yellow-base); border-color: var(--urbin-yellow-base); }
.u-check--navy .u-check__label { color: var(--urbin-navy-10); }
.u-check--light .u-check__box { background: var(--urbin-lavender-10); border-color: var(--urbin-lavender-80); color: var(--urbin-yellow-base); }
.u-check--light .u-check__input:checked + .u-check__box { background: var(--urbin-navy-base); border-color: var(--urbin-navy-base); }
.u-check--light .u-check__label { color: var(--urbin-navy-base); }
.u-routelink { display: inline-flex; align-items: center; height: var(--urbin-size-field); padding: 0 var(--urbin-space-12); flex: none; --urbin-fluid-edge: var(--urbin-navy-base); }
.u-routelink__node { width: 9px; height: 9px; border-radius: 50%; background: var(--urbin-navy-base); flex: none; }
.u-routelink .u-gap__band { left: -1px; right: -1px; }
.u-row {
  display: flex; flex-wrap: wrap; gap: var(--urbin-space-24) var(--urbin-space-48); padding: var(--urbin-space-40);
  border-radius: var(--urbin-radius-card); background: var(--urbin-neutral-white); box-shadow: inset 0 0 0 1.5px var(--urbin-navy-base);
}
.u-row__label { flex: 0 1 var(--urbin-layout-label-col); display: flex; flex-direction: column; gap: 10px; min-width: 200px; }
.u-row__title { color: var(--urbin-navy-base); }
.u-row__desc { color: var(--urbin-lavender-90); }
.u-row__content { flex: 1 1 240px; min-width: 0; display: flex; flex-direction: column; gap: var(--urbin-space-24); }
.u-row--submit { background: var(--urbin-navy-base); box-shadow: none; align-items: center; }
.u-row--submit .u-row__title { color: var(--urbin-yellow-base); }
.u-row--submit .u-row__content { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.u-form-stack { display: flex; flex-direction: column; }
.u-form-stack > * + * { margin-top: -1.5px; }
.u-fields { display: flex; flex-wrap: wrap; gap: var(--urbin-space-24); }
.u-fields > .u-field { flex: 1 1 220px; }
.u-route-ends { display: flex; flex-wrap: wrap; align-items: flex-end; }
.u-route-ends > .u-field { flex: 1 1 200px; }
.u-chips { display: flex; flex-wrap: wrap; gap: var(--urbin-space-12); }
.u-chips .u-seg { min-width: 160px; }

/* ---------- Maps ---------- */
.u-maplabel { display: inline-flex; align-items: center; padding: var(--urbin-space-8) var(--urbin-space-12); border-radius: var(--urbin-radius-label); background: var(--urbin-navy-70); color: var(--urbin-yellow-base); white-space: nowrap; }
.u-callout { display: flex; flex-direction: column; gap: var(--urbin-space-20); padding: var(--urbin-space-30); border-radius: var(--urbin-radius-card); background: var(--urbin-navy-70); min-width: 280px; max-width: 420px; }
.u-callout__title { color: var(--urbin-yellow-base); }
.u-callout__body { color: var(--urbin-lavender-base); }

/* ---------- Site header ---------- */
.u-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--urbin-space-24) var(--urbin-space-40); }
.u-header__home { display: inline-flex; border-radius: var(--urbin-radius-label); }
.u-header__home:focus-visible { outline: 2px solid var(--urbin-focus); outline-offset: 6px; }
.u-header__nav { max-width: 100%; overflow-x: auto; scrollbar-width: none; padding: 6px; margin: -6px; }
.u-header__nav::-webkit-scrollbar { display: none; }
@media (max-width: 720px) { .u-header__nav { -webkit-mask: linear-gradient(90deg, #000 85%, transparent); mask: linear-gradient(90deg, #000 85%, transparent); } }

/* ---------- Layout helpers ---------- */
.u-section { position: relative; isolation: isolate; background: var(--urbin-surface-bg); color: var(--urbin-surface-ink);
  padding-inline: clamp(var(--urbin-layout-margin-mobile), 5.5vw, var(--urbin-layout-margin-desktop)); }
.u-section--dark { padding-block: clamp(var(--urbin-space-40), 4.2vw, var(--urbin-space-60)) clamp(var(--urbin-space-60), 7vw, var(--urbin-space-100)); }
.u-section--light { padding-block: clamp(var(--urbin-space-60), 8.3vw, var(--urbin-space-120)) clamp(var(--urbin-space-80), 9.7vw, var(--urbin-space-140)); }
.u-section--none { padding-block: 0; }
.u-section__inner { position: relative; z-index: 1; max-width: var(--urbin-layout-content); margin-inline: auto; }
.u-section__inner--narrow { max-width: var(--urbin-layout-form); }
.u-headline { margin: 0; color: var(--urbin-surface-ink); text-wrap: balance; }
.u-headline__accent { display: block; color: var(--urbin-surface-accent); }
.u-headline--display { font-size: clamp(56px, 7.6vw + 10px, 120px); }
.u-headline--headline { font-size: clamp(40px, 4.4vw + 9px, 72px); }
.u-headline--headline-s { font-size: clamp(32px, 2.2vw + 16px, 48px); }
.u-dotgrid { position: absolute; inset: 0; z-index: 0; pointer-events: none; mix-blend-mode: screen; opacity: 0.5;
  background: radial-gradient(circle, var(--urbin-teal-base) 0.8px, var(--urbin-alpha-teal-base-00) 1.4px) 0 0 / 11.5px 11.5px; }
.u-section > .u-dotgrid { bottom: auto; height: min(293px, 50%); }
.u-dotgrid--fade-bottom { -webkit-mask: linear-gradient(180deg, #000, transparent); mask: linear-gradient(180deg, #000, transparent); }
.u-dotgrid--fade-top { -webkit-mask: linear-gradient(0deg, #000, transparent); mask: linear-gradient(0deg, #000, transparent); }
.u-dotgrid--fade-both { -webkit-mask: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent); mask: linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent); }
