/* ==== folded from variants/v44/v26-overrides.css (load order preserved) ==== */
/* ==========================================================================
   v26 overrides. Loaded by variants/v26/index.html and en.html only, AFTER every
   base stylesheet, so v25 stays byte-identical and the two versions render side
   by side. Every rule block below is an override expression of a production
   base-file edit; nothing here is v26-only design.

   MERGE MAP (promotion: apply the named edit in the base file, then delete the
   block here; when every block is gone, drop this file and its <link>):

   1. .uru-portal-shell__contact base + hover/focus rules
      -> site.css: add verbatim after the .uru-portal-shell__lang rules
         (after the .uru-portal-shell__lang.is-current::after block).
         Spec: MOBILE-GREEN-01 CSS (a).
   2. @media (max-width: 31.98rem) additions
      -> site.css: extend the EXISTING max-width:31.98rem block (the one that
         already hides .uru-portal-shell__link) with the two declarations here;
         do NOT create a second non-Carbon breakpoint. Spec: MOBILE-GREEN-01 CSS (b).
   3. .uru-contact-form .uru-text-input / .uru-textarea type size
      -> home-form.css: in the base rule replace
         font-size: var(--cds-body-01-font-size, 0.875rem); line-height: 1.43;
         with the body-02 pair used here. Spec: MOBILE-GREEN-02.
   4. .uru-footer__links gap and .uru-footer__link min-height
      -> site.css: in .uru-footer__links change gap spacing-03 to spacing-02;
         in .uru-footer__link change min-block-size 1.5rem to 2.75rem
         (display:inline-flex and align-items:center are already in the base).
         Spec: MOBILE-GREEN-04.
   5. .uru-contact-form .bx--label / .bx--form__helper-text type size
      -> home-form.css: replace the label-01 and helper-text-01 font-size tokens
         with var(--cds-label-02-font-size, 0.875rem). Spec: MOBILE-GREEN-05.
   6. .uru-contact-status:focus
      -> home-form.css: add next to the .uru-contact-summary:focus rule.
         Spec: FORM-GREEN-08 (b).
   7. .uru-portal-shell__link--portal visibility gate
      -> site.css: add verbatim after the .uru-portal-shell__link rules. The header
         portal link renders only from the Carbon md boundary (42rem) up: below it
         the PL pair "Portal Klienta" + "Napisz do nas" over-subscribes the header
         at 512-523px and both labels wrap (R3-BLACK-1). Owner decision 2026-07-26:
         header portal is desktop-only; the footer link covers every width.
         Spec: portal-link round 3, R3-BLACK-1/2/3 combined fix.
   ========================================================================== */

/* 1. Header contact icon (MOBILE-GREEN-01a). Hidden except below 512px, where the
      text CTA hides and this icon is the depth-independent contact route. */
.uru-portal-shell__contact {
  display: none;
  align-items: center;
  justify-content: center;
  inline-size: 3rem;
  block-size: 3rem;
  color: var(--cds-text-secondary);
}
.uru-portal-shell__contact:hover,
.uru-portal-shell__contact:focus-visible {
  color: var(--cds-text-primary);
  background: var(--cds-background-hover, transparent);
}
.uru-portal-shell__contact:focus-visible {
  outline: 2px solid var(--cds-focus);
  outline-offset: -2px;
}

/* 2. Below 512px: show the icon, compact the language switch so 320px fits
      (MOBILE-GREEN-01b). site.css already hides .uru-portal-shell__link here. */
@media (max-width: 31.98rem) {
  .uru-portal-shell__contact { display: inline-flex; }
  .uru-portal-shell__lang { inline-size: 2.5rem; }
}

/* 3. 16px input text at every width kills the iOS focus zoom without touching the
      viewport meta (MOBILE-GREEN-02). Same selector as home-form.css; this file
      loads later, so the pair wins at equal specificity. */
.uru-contact-form .uru-text-input,
.uru-contact-form .uru-textarea {
  font-size: var(--cds-body-02-font-size, 1rem);
  line-height: var(--cds-body-02-line-height, 1.5);
}

/* 4. Footer links lifted to 44px targets on a 48px pitch (MOBILE-GREEN-04). */
.uru-footer__links { gap: var(--cds-spacing-02); }
.uru-footer__link { min-block-size: 2.75rem; }

/* 5. Form labels and helper text one Carbon step up, 12px to 14px, on the
      conversion surface only (MOBILE-GREEN-05). The RODO ramp stays legal-01. */
.uru-contact-form .bx--label {
  font-size: var(--cds-label-02-font-size, 0.875rem);
}
.uru-contact-form .bx--form__helper-text {
  font-size: var(--cds-label-02-font-size, 0.875rem);
}

/* 6. Success panel takes deliberate focus on submit (tabindex=-1 in the markup);
      give it the same visible ring as the error summary (FORM-GREEN-08b). */
.uru-contact-status:focus {
  outline: 2px solid var(--cds-focus);
  outline-offset: 2px;
}

/* 7. Header portal link: desktop-only (>= 42rem). Below the md boundary the PL
      label pair wraps in the 512-523px band (R3-BLACK-1); the footer portal link
      is the route at every width. Placed AFTER the contact CTA in the DOM so the
      acquisition action reads first (R3-BLACK-2, old-root last-slot precedent). */
.uru-portal-shell__link--portal {
  display: none;
}
@media (min-width: 42rem) {
  .uru-portal-shell__link--portal {
    display: inline-flex;
  }
}


/* ==== folded from variants/v44/v27-hero.css (load order preserved) ==== */
/* ==========================================================================
   v27 hero swap, layout 1 "text left". Loaded by variants/v27/*.html only, after
   every base sheet and after the carried v26-overrides.css. Two jobs: the swap
   layout (network kernel on top, to the fold; the relocated scene needs no rules,
   every .hero-scene / .caption rule in home.css is location-independent) and the
   g10 day-palette darkening (owner criterion 2026-07-26).

   THEME SCOPING: every theme-conditional rule in this sheet is scoped with the
   selector pair `.cds--g10 ...` AND `[data-theme="g10"] ...`, exactly as the
   home.css theme blocks are. Nothing here keys off prefers-color-scheme, so the
   in-page toggle and the OS default resolve identically, and g90 gets no rule
   in this file at all.

   RECORDED DEVIATIONS (GREEN round, 2026-07-26):
   - layer token: --uru-kernel-layer deliberately unchanged; the spec's "layer
     edges/lines to higher alpha" is delivered by the uru-day-boost alpha filter
     instead, because the runtime hardcodes its stroke alphas (0.12 tree, 0.18
     root) and no token can raise them.
   - ink/muted: #000000 / #3d3d3d, one step past the spec's letter (#161616 /
     ~#4d4d4d), which the g10 tokens already resolved; following the letter
     would have changed nothing visible.
   - poster: the fallback svg cap is max(21.25rem, min(38rem, 88%)), floored at
     the band's own 21.25rem cap so 320-414 never shows a smaller poster than
     the band did.

   MERGE MAP (promotion: every rule below folds into assets/home.css, then this
   file dies with the variant):
   A. Shared shell -> the hero block around home.css:247.
      - the :root { --uru-header-h; --uru-hero-peek } tokens -> the home.css
        root custom-property block (ADDITIVE).
      - overflow-x: clip -> COLLISION, REPLACE: fold the declaration into the
        existing .uru-home-hero rule at home.css:247; do not add a second
        .uru-home-hero rule.
      - the .uru-day-defs 0x0 rule and the .kernel-fallback svg cap -> ADDITIVE
        new rules.
   B. Below-66rem block -> ADDITIVE after home.css:252. COLLISION, REPLACE: the
      row-gap: 0 in this media block supersedes home.css:253's
      row-gap: var(--cds-spacing-07) for the hero; the two must not survive at
      two specificities.
   C. From-66rem block -> COLLISION, REPLACE: it replaces home.css:262-271 (the
      current 66rem hero media block) wholesale. The (min-width: 99rem) inset
      block lands right after the replaced block (ADDITIVE).
   D. g10 kernel tokens -> ADDITIVE after the .uru-hero-kernel token block at
      home.css:1092-1096; the poster overrides -> ADDITIVE after the
      .kf-node/.kf-link rules at home.css:1208/:1211. The canvas filter
      DECLARATION merges into NO sheet: it stays an in-page <style> in each
      twin, next to the 0x0 #uru-day-boost definition (a fragment-only url() in
      an external sheet resolves against the sheet URL in some engines).
   ========================================================================== */

/* --------------------------------------------------------------------------
   A. Shared hero shell
   -------------------------------------------------------------------------- */

/* 49px is the measured .uru-portal-shell height (48px + 1px border); 4rem is the
   deliberate peek of the next section kept above the fold on desktop so the page
   visibly continues. Named once here; every calc below subtracts the tokens. */
:root {
  --uru-header-h: 49px;
  --uru-hero-peek: 4rem;
}

/* The canvas column bleeds with margin-inline: calc(50% - 50vw); when a classic
   scrollbar makes 100vw wider than the layout viewport the few excess pixels are
   clipped here instead of creating horizontal scroll. */
.uru-home-hero {
  overflow-x: clip;
}

/* The filter-definition svg must stay renderable (display:none breaks filter
   references) but must not add a line box under the canvas. */
.uru-day-defs {
  position: absolute;
  inline-size: 0;
  block-size: 0;
}

/* The static kernel diagram doubles as the reduced-motion and runtime-failure
   poster. At hero size the band cap of 21.25rem looks lost; let it grow, but keep
   the band's own cap as the floor: bare min(38rem, 88%) resolves BELOW 21.25rem
   on 320-414 phones, and the hero poster must never be smaller than the band's. */
.uru-home-hero .kernel-fallback svg {
  max-width: max(21.25rem, min(38rem, 88%));
}

/* v38 poster bridge (bug 2, 2026-07-27). The entrance draws the network in from a
   blank canvas, so whenever the runtime is actually going to run the poster only
   ever showed as a flash under the draw-in on a warm reload. home-kernel.js sets
   data-hero-booting synchronously at bind on the runtime path (JS on, motion
   allowed) and clears it on runtime failure, on the 1.5 s no-first-frame
   failsafe, and under reduced motion, so the poster still covers no-JS,
   reduced-motion and every failure path exactly as before. */
.uru-hero-kernel[data-hero-booting] .kernel-fallback {
  display: none;
}

/* --------------------------------------------------------------------------
   B. Below 66rem: text, CTA, canvas, then the rest
   -------------------------------------------------------------------------- */

@media (max-width: 65.98rem) {
  /* Everything in the first screen that is not canvas: eyebrow, h1, the CTA pair,
     the note and the hero's own padding, measured 24.5rem at 320-389. Subtracting
     the stack (and the header token) from 100svh is what keeps the canvas bottom
     at or above the fold. */
  .uru-home-hero {
    --uru-hero-stack: 22rem;
  }

  .uru-home-hero .cds--css-grid {
    row-gap: 0;
  }

  /* The lead column dissolves; its children become items of the hero grid so
     the canvas can slot in right after the CTA pair. */
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:first-child {
    display: contents;
  }

  /* The dissolved column's 16px gutters come back on each child; the canvas
     column below keeps its own bleed. */
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:first-child > * {
    grid-column: 1 / -1;
    margin-inline: var(--cds-spacing-05);
  }

  .uru-home-hero__eyebrow { order: 1; }
  .uru-home-hero__title { order: 2; }
  .uru-home-hero .uru-home-cta { order: 3; margin-top: var(--cds-spacing-05); }
  .uru-home-hero .uru-home-cta__note { order: 4; }
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:last-child { order: 5; }
  .uru-home-hero__lede { order: 6; margin-top: var(--cds-spacing-06); }

  /* Full-bleed canvas between the CTA block and the lede. */
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:last-child {
    margin-block: var(--cds-spacing-05) 0;
    margin-inline: calc(50% - 50vw);
  }

  /* Fold-aware: the old min(52svh, 30rem) ignored the text stack above the canvas
     and ran up to 36px past the 844 fold at 320-390. The subtraction term caps the
     canvas at what the first screen actually has left; the 12rem floor keeps the
     animation legible on very short viewports. */
  .uru-home-hero .kernel-viz.uru-hero-kernel {
    height: max(12rem, min(52svh, 30rem, calc(100svh - var(--uru-header-h) - var(--uru-hero-stack))));
  }
}

/* One step tighter from 390 (24.375rem) up: the measured lead stack is 1.25rem
   shorter there, and the canvas gets that space back. */
@media (min-width: 24.375rem) and (max-width: 65.98rem) {
  .uru-home-hero {
    --uru-hero-stack: 20.75rem;
  }
}

/* --------------------------------------------------------------------------
   C. From 66rem up: text left, canvas fills the rest to the fold
   -------------------------------------------------------------------------- */

@media (min-width: 66rem) {
  .uru-home-hero {
    padding-block: 0;
  }

  .uru-home-hero .cds--css-grid {
    display: grid;
    grid-template-columns: minmax(24rem, 34rem) minmax(0, 1fr);
    column-gap: var(--cds-spacing-07);
    row-gap: 0;
    align-items: stretch;
    max-inline-size: none;
    margin-inline: 0;
    padding-inline: 0;
    min-height: calc(100svh - var(--uru-header-h) - var(--uru-hero-peek));
  }

  /* The column keeps the plain Carbon gutter. The wide-screen centring moved off
     this padding onto the grid's own 99rem inset below: padding a fixed-width
     column drifted the h1 16-24px off the band h2's left edge from 1584 up and
     squeezed the h1 to 344px at 1920 (24px at 2560); insetting the grid keeps
     the text track at its full 34rem and the h1 edge-aligned at every width. */
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:first-child {
    grid-column: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: var(--cds-spacing-07);
    padding-inline-start: var(--cds-spacing-05);
  }

  .uru-home-hero .cds--css-grid > .cds--css-grid-column:last-child {
    grid-column: 2;
    margin: 0;
  }

  .uru-home-hero .kernel-viz.uru-hero-kernel {
    height: 100%;
    min-height: 28rem;
  }
}

/* Mirrors the centred 99rem Carbon grid the band uses below: from 99rem the band
   grid caps and centres, and this inset moves the hero grid to the same content
   edge, so the hero h1 and the band h2 share a left edge at 1728/1920/2560. */
@media (min-width: 99rem) {
  .uru-home-hero .cds--css-grid {
    /* Carbon grids keep inline-size: 100%, so a start margin alone SHIFTS the grid
       without shrinking it: the canvas column then pokes past the viewport by exactly
       the inset (measured: +8px at 1584, +176 at 1920, +496 at 2560) and the right-edge
       output icons and labels clip. The inline-size subtraction makes the inset real:
       text starts at the centred 99rem edge, canvas ends at the viewport edge. */
    margin-inline-start: calc(50vw - 49rem);
    inline-size: calc(100% - (50vw - 49rem));
  }
}

/* --------------------------------------------------------------------------
   D. g10 day-palette darkening (all three hero-swap variants carry this block)
   -------------------------------------------------------------------------- */

/* Ink to true black buys the last step on the low-alpha strokes and turns the
   floating labels pure black on the white halo; muted (input packets, chip pins)
   drops from g10's #525252; the accent leaves raw #f58200, which never belonged
   on a light ground, for the contrast-corrected day orange. g90 keeps every
   value it has today. */
/* Also scoped to `.uru-hero`. This rule was written when the home hero was
   `.uru-home-hero`; moving the page onto layout B's leadspace silently took it out of
   circulation, so g10 fell back to the color-mix ink and the labels lost the true black
   this rule exists to give them. Both selectors are listed rather than one replaced,
   because the matrix still builds pages that use the old shell. */
.cds--g10 .uru-home-hero .uru-hero-kernel,
[data-theme="g10"] .uru-home-hero .uru-hero-kernel,
.cds--g10 .uru-hero .uru-hero-kernel,
[data-theme="g10"] .uru-hero .uru-hero-kernel {
  --uru-kernel-ink: #000000;
  --uru-kernel-muted: #393939; /* gray-80 */
  /* accent moved to the base rule in site.css: both themes want the same orange token, and
     stating it only here is what let g90 keep painting the link colour. */
}

/* The alpha boost itself: every canvas stroke keeps its colour and gains
   opacity (x2.6, clamped at 1), so the tree and root lines the owner could not
   read on a phone in day mode become clearly visible. DOM labels and the static
   fallback svg sit outside the canvas and are not filtered. The filter
   DECLARATION does not live in this sheet: it sits in each twin's in-head
   <style>, next to the 0x0 svg that defines #uru-day-boost, because a
   fragment-only url() in an external sheet resolves against the sheet URL in
   some engines and a dangling filter reference is not a safe no-op everywhere. */

/* The g10 poster-darkening rules that used to sit here are deleted rather than
   re-scoped. They were dead twice over: `.uru-home-hero` stopped matching when the page
   moved onto layout B's leadspace (the same regression fixed for --uru-kernel-ink above),
   and `.kernel-fallback` is not in the shipped markup at all -- the hero partial's static
   poster is `.motif`, which the runtime hides once a frame lands. Their comment carried
   three measured ratios (16.5:1 / 7.1:1 / 3.0:1) that are arithmetically correct and
   describe CSS that has never painted, which is precisely how a false claim survives: no
   rendering ever contradicts a rule that matches nothing. If the poster needs day
   darkening, it needs it on `.motif`, measured there. */


/* ==== folded from variants/v44/v43-overrides.css (load order preserved) ==== */
/* ==========================================================================
   v43 overrides ("Wynik i bramka", repositioning run 2026-07-27). Loaded by
   variants/v43/index.html only, AFTER every base stylesheet and after
   v26-overrides.css and v27-hero.css, so v38 and the other candidates stay
   byte-identical and the versions render side by side.

   MERGE MAP (promotion: apply the named edit in the base file, then delete the
   block here; when every block is gone, drop this file and its <link>):

   1. .uru-hero-chip, .uru-hero-risk
      -> assets/home.css: add after the .uru-home-cta__note rule. These are the
         fold-contract proof chip and risk line (GREEN-1), part of the hero
         block, not variant decoration.
   2. Mobile hero order additions inside @media (max-width: 65.98rem)
      -> assets/hero/../home.css hero media query (the block v27-hero.css owns
         at promotion): the chip, the risk line and two lede lines move above
         the CTAs so the mobile fold is not "asked to write before told what
         you do" (RED-23). Merge WITH the v27-hero.css order scale, do not
         append a second competing scale.
   3. .uru-home-paths, .uru-path-card*
      -> assets/home.css: new section block, add after the evidence-band rules.
   4. .uru-home-readiness, .uru-readiness-*
      -> assets/home.css: new section block, add after the commercial-strip
         rules (the band sits between #zasady and #zespol in the DOM).
   5. .uru-home-commercial__more
      -> assets/home.css: add directly after .uru-home-commercial__line.
   6. RETIRED 2026-07-28. .uru-field__optional labelled the three optional
      fields (firma, rola, skala); the owner removed those fields from both
      twins, so there is nothing left to promote.

   Tokens only, no raw hex: the v23 Carbon-conformance rule holds here.
   ========================================================================== */

/* 1. Fold-contract chip and risk line ------------------------------------- */

.uru-hero-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--cds-spacing-03);
  margin-top: var(--cds-spacing-05);
  padding: var(--cds-spacing-03) var(--cds-spacing-05);
  /* This chip is a link (href="#zasady") with no underline and no link colour, so its
     box is the only cue that it is interactive -- which puts it under 1.4.11's 3:1
     for a UI component boundary. border-subtle-01 measured 1.20:1 against the hero's
     #f4f4f4 in g10 (g90 was already fine at 3.01:1); border-strong carries the 3:1
     guarantee by definition. */
  border: 1px solid var(--cds-border-strong-01, var(--cds-border-strong));
  /* Carbon has no rounded surface: every tile, field, button and notification in the
     vendored CSS is square, and a 1rem pill was the only radius on the page. The chip keeps
     its own box padding (its type sits against the padding, which is the rule) and its box
     edge stays on the hero key line with the h1 and the lede above it. */
  border-radius: 0;
  background: var(--cds-layer-01);
  color: var(--cds-text-secondary);
  font-size: var(--cds-label-01-font-size, 0.75rem);
  line-height: var(--cds-label-01-line-height, 1.34);
  letter-spacing: var(--cds-label-01-letter-spacing, 0.32px);
  text-decoration: none;
}

/* The dot marks a claim ("Wynik liczymy na danych firmy według spisanej reguły"),
   not a system state. support-success is Carbon's "Success; On" status colour, and
   using it as decoration on marketing copy spends a status signal on something that
   has no status -- the same category of misuse as the link blue that was on the
   evidence statistics. Neutral ink keeps the device and drops the false semantics. */
.uru-hero-chip::before {
  content: "";
  flex: 0 0 auto;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--cds-icon-secondary, var(--cds-text-secondary));
}

.uru-hero-chip:hover { background: var(--cds-layer-hover-01); }
.uru-hero-chip:focus-visible {
  outline: 2px solid var(--cds-focus);
  outline-offset: 2px;
}

.uru-hero-risk {
  margin-top: var(--cds-spacing-04);
  color: var(--cds-text-secondary);
  font-size: var(--cds-body-compact-01-font-size, 0.875rem);
  line-height: var(--cds-body-compact-01-line-height, 1.29);
}

.uru-hero-risk a { color: var(--cds-link-primary); }

/* 2. Mobile fold order (RED-23) ------------------------------------------- */

@media (max-width: 65.98rem) {
  /* The lede carries the two sentences that say what we do, so it precedes the
     CTAs; the chip and the risk line stay with the claim they qualify. The scale
     continues v27-hero.css: eyebrow 1, title 2, then this block, canvas 5. */
  .uru-home-hero__lede { order: 3; margin-top: var(--cds-spacing-05); }
  .uru-home-hero .uru-hero-chip { order: 4; }
  .uru-home-hero .uru-hero-risk { order: 4; }
  .uru-home-hero .uru-home-cta { order: 5; margin-top: var(--cds-spacing-05); }
  .uru-home-hero .uru-home-cta__note { order: 6; }
  .uru-home-hero .cds--css-grid > .cds--css-grid-column:last-child { order: 7; }
}

/* 3. Dual-path cards ------------------------------------------------------ */

/* Bare .cds--css-grid resolves row-gap: normal, so the router line's descenders sat on the
   first card's 2px top accent (measured seam 0.3px at 1440, 0.0px at 390) and the two cards
   touched when they stack. spacing-07 is the grid gutter and clears the spacing-06 card
   padding by a step. */
#dla-kogo .cds--css-grid { row-gap: var(--cds-spacing-07); }

.uru-home-paths .uru-home-h2 { margin-bottom: var(--cds-spacing-06); }

.uru-path-card {
  height: 100%;
  padding: var(--cds-spacing-06);
  border-top: 2px solid var(--cds-border-interactive);
  background: var(--cds-layer-01);
}

.uru-path-card .uru-home-h3 { margin-bottom: var(--cds-spacing-04); }
.uru-path-card p { color: var(--cds-text-secondary); }

.uru-path-card__links {
  margin-top: var(--cds-spacing-05);
  font-size: var(--cds-body-compact-01-font-size, 0.875rem);
}

.uru-path-card__links a { color: var(--cds-link-primary); }

/* 4. Enterprise-readiness band -------------------------------------------- */

/* The band keeps the page background and separates with a rule instead of a tint.
   A tint here (layer-accent-01 / layer-02) drops --cds-link-primary to about 3.2:1,
   the same plain-Carbon pairing that failed AA in the v24 build, and the notes below
   the cards are link-bearing body text. The cards supply the visual grouping. */
.uru-home-readiness {
  background: var(--cds-background);
  /* base-set surface -> base-set border; see the note over .uru-home-section in home.css */
  border-top: 1px solid var(--cds-border-subtle-00);
}

/* The band's two grid rows (heading column, then the card column) met at a 0.0px seam with
   the 32px carried as .uru-readiness-grid's own margin-top. The parent owns the layout now,
   so the seam is a token and the value is not applied twice. */
#gotowosc .cds--css-grid { row-gap: var(--cds-spacing-07); }

.uru-readiness-grid {
  display: grid;
  gap: var(--cds-spacing-05);
  margin-top: 0;
  grid-template-columns: 1fr;
}

@media (min-width: 42rem) {
  .uru-readiness-grid { grid-template-columns: repeat(3, 1fr); }
}

/* spacing-05 on all four sides is the tile content padding [tile-style]. The three variants
   sit in one row and are therefore equal height, and the shortest carries about half the copy
   of the longest, so the row has slack. Two rules decide where it goes. The tags and headings
   stay on one horizontal key line, which is non-negotiable: centring the content block was
   tried and put the three tags at three different heights, which reads as a bug rather than
   as white space. So the slack collects at the foot of the short cards, behind a full-height
   accent border, and the heading takes the expressive step (heading-04 from lg) to spend part
   of it. The residual is arithmetic: see MERGE-MAP-1.md. */
.uru-readiness-card {
  display: flex;
  flex-direction: column;
  padding: var(--cds-spacing-05);
  background: var(--cds-layer-01);
  border-left: 2px solid var(--cds-border-subtle-01);
}

.uru-readiness-card:first-child { border-left-color: var(--cds-border-interactive); }

.uru-readiness-card__tag {
  margin-bottom: var(--cds-spacing-05);
  color: var(--cds-text-secondary);
  font-size: var(--cds-label-01-font-size, 0.75rem);
  letter-spacing: var(--cds-label-01-letter-spacing, 0.32px);
  text-transform: uppercase;
}

.uru-readiness-card p {
  margin-top: var(--cds-spacing-05);
  color: var(--cds-text-secondary);
}
.uru-readiness-card a { color: var(--cds-link-primary); }

/* Closing panel 2026-07-28, b4. The tag and the first heading line held one key line, then the
   longest heading wrapped and the body line split three ways: card body tops measured 154 /
   118 / 118px at 1440 PL and 190 / 118 / 154px at 1056 PL, against 154 / 154 / 154 in the EN
   twin at 1440. A PL-only break, so the reservation is type-derived rather than a spacing
   token: the heading-04 line box is 36px, and the block reserves as many of them as the
   widest heading in the band needs. At 1056 the cards are 320px and the longest heading wraps
   to three lines in both twins; from x-large no heading passes two. */
@media (min-width: 66rem) {
  .uru-readiness-card .uru-home-h3 {
    font-size: var(--cds-heading-04-font-size, 1.75rem);
    line-height: var(--cds-heading-04-line-height, 1.29);
    font-weight: 400;
    min-block-size: 6.75rem;
  }
}

@media (min-width: 82rem) {
  .uru-readiness-card .uru-home-h3 {
    min-block-size: 4.5rem;
  }
}

.uru-readiness-subhead { margin-top: var(--cds-spacing-08); }

/* list-style: disc plus a spacing-06 padding-left pushed every bullet 24px right of the
   band's key line. The marker is the 8px square the kernel facts list and the commercial
   options list use, hung on the key line itself, with the text one token step in. */
.uru-readiness-list {
  margin-top: var(--cds-spacing-05);
  padding-left: 0;
  color: var(--cds-text-secondary);
  list-style: none;
}

.uru-readiness-list li {
  position: relative;
  margin-bottom: var(--cds-spacing-04);
  padding-inline-start: var(--cds-spacing-06);
}

.uru-readiness-list li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.45em;
  width: 8px;
  height: 8px;
  border: 2px solid var(--cds-interactive);
}

.uru-readiness-note {
  margin-top: var(--cds-spacing-06);
  color: var(--cds-text-secondary);
  font-size: var(--cds-body-compact-01-font-size, 0.875rem);
}

.uru-readiness-note a { color: var(--cds-link-primary); }

/* 5. Commercial strip: the engagement-model deep link --------------------- */

/* This closing pointer is the one line in the band that is not on the rail, so its
   separation has to be a step above the spacing-07 that separates the railed groups from
   each other; otherwise leaving the rail reads as a shear rather than as an exit. */
.uru-home-commercial__more {
  margin-top: var(--cds-spacing-08);
  font-size: var(--cds-body-compact-01-font-size, 0.875rem);
}

.uru-home-commercial__more a { color: var(--cds-link-primary); }

/* 6. (retired) Optional-field label marker -------------------------------
   .uru-field__optional went with the three optional fields (firma, rola, skala), removed
   from both twins by owner instruction 2026-07-28. Nothing carries the class any more, so
   the rule and its merge-map row are gone rather than shipped dead. */
