@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --yusticium-surface: #f7f5f0;
  --yusticium-surface-raised: #fffdfa;
  --yusticium-ink: #1d2421;
  --yusticium-muted: #5c655f;
  --yusticium-brand: #1f5146;
  --yusticium-brand-strong: #173c34;
  --yusticium-border: #d8d5cc;
  --yusticium-focus: #0d6b57;
  --yusticium-container: 1240px;
  --yusticium-space-1: clamp(0.5rem, 0.45rem + 0.25vw, 0.75rem);
  --yusticium-space-2: clamp(1rem, 0.85rem + 0.75vw, 1.5rem);
  --yusticium-space-3: clamp(1.5rem, 1.15rem + 1.75vw, 2.75rem);
  --yusticium-space-4: clamp(2.5rem, 1.8rem + 3.5vw, 5rem);
  --yusticium-font: Manrope, Inter, "Helvetica Neue", Arial, sans-serif;
}

body,
button,
input,
select,
textarea {
  font-family: var(--yusticium-font);
}

body {
  background: var(--yusticium-surface);
  color: var(--yusticium-ink);
}

/* The current Helix layout has no enabled header/footer rows. Render the
   public site shell independently while keeping Joomla menus as the source. */
.y-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid var(--yusticium-border);
  background: color-mix(in oklch, var(--yusticium-surface) 95%, transparent);
  backdrop-filter: blur(12px);
}

.y-site-header__inner {
  display: flex;
  align-items: center;
  min-height: 68px;
}

.y-site-brand {
  align-items: center;
  color: var(--yusticium-ink);
  display: inline-flex;
  gap: 0.625rem;
  font-size: 1.3125rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  text-decoration: none;
}

.y-site-brand__mark {
  display: block;
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
}

.y-site-header .y-site-brand:hover {
  color: var(--yusticium-ink);
}

.y-site-navigation {
  display: flex;
  gap: 1.5rem;
  margin-left: auto;
}

.y-site-navigation a {
  color: var(--yusticium-muted);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.y-site-navigation a:hover,
.y-site-navigation a[aria-current="page"] {
  color: var(--yusticium-ink);
}

.y-button {
  align-items: center;
  background: var(--yusticium-brand);
  border: 1px solid var(--yusticium-brand);
  border-radius: 4px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.875rem;
  font-weight: 700;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.55rem 1.625rem;
  text-decoration: none;
}

.y-button:hover,
.y-button:focus-visible {
  background: var(--yusticium-brand-strong);
  border-color: var(--yusticium-brand-strong);
  color: #fff;
}

.y-site-header__cta {
  margin-left: 2rem;
  min-width: 13.75rem;
}

.y-menu-toggle,
.y-button--mobile {
  display: none;
}

.y-site-footer {
  border-top: 1px solid var(--yusticium-border);
  padding: 3rem 0 1.75rem;
}

.y-site-footer__grid {
  display: grid;
  gap: 2.25rem;
  grid-template-columns: 1.2fr 0.8fr 1fr;
}

.y-site-footer p,
.y-site-footer a,
.y-site-footer span {
  color: var(--yusticium-muted);
  display: block;
  font-size: 0.875rem;
  margin: 0.5rem 0 0;
}

.y-site-footer a {
  text-decoration: none;
}

.y-site-footer a:hover {
  color: var(--yusticium-ink);
}

.y-site-footer__brand {
  align-items: center;
  color: var(--yusticium-ink) !important;
  display: inline-flex !important;
  gap: 0.5625rem;
  font-size: 1.125rem !important;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-top: 0 !important;
}

.y-site-footer__brand img {
  display: block;
  flex: 0 0 auto;
  width: 1.875rem;
  height: 1.875rem;
}

.y-site-footer__brand span {
  color: inherit;
  font-size: inherit;
  margin: 0;
}

.y-site-footer__label {
  color: var(--yusticium-ink) !important;
  font-size: 0.875rem !important;
  font-weight: 700;
  margin-top: 0 !important;
}

.y-site-footer__bottom {
  border-top: 1px solid var(--yusticium-border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin-top: 2.25rem;
  padding-top: 1.25rem;
}

.y-site-footer__bottom > * {
  font-size: 0.8125rem;
  line-height: 1.45;
  margin: 0;
}

/* Helix defaults add a second article heading and editorial metadata before
   the approved page payload. They are not part of the approved design. */
.itemid-101 .article-header,
.itemid-101 .article-info,
.itemid-101 .pagenavigation,
.itemid-109 .article-header,
.itemid-109 .article-info,
.itemid-109 .pagenavigation,
.itemid-111 .article-header,
.itemid-111 .article-info,
.itemid-111 .pagenavigation {
  display: none;
}

.container,
.sppb-row-container {
  width: min(var(--yusticium-container), calc(100% - (2 * var(--yusticium-space-2))));
  max-width: var(--yusticium-container);
}

.body-innerwrapper > .container,
.sp-page-builder .page-content > .sppb-section {
  padding-block: var(--yusticium-space-3);
}

/* Helix applies 100px before every component. The page payload already owns
   the visual rhythm, so this creates an excessive gap below the header. */
#sp-main-body {
  padding: 32px 0 0;
}

a {
  color: var(--yusticium-brand);
}

a:hover {
  color: var(--yusticium-brand-strong);
}

button,
input,
select,
textarea {
  border-radius: 0;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--yusticium-focus);
  outline-offset: 3px;
}

:where(.btn, .sppb-btn, button[type="submit"]) {
  background-color: var(--yusticium-brand);
  border-color: var(--yusticium-brand);
  color: #fff;
}

:where(.btn, .sppb-btn, button[type="submit"]):hover,
:where(.btn, .sppb-btn, button[type="submit"]):focus-visible {
  background-color: var(--yusticium-brand-strong);
  border-color: var(--yusticium-brand-strong);
  color: #fff;
}

@media (max-width: 959px) {
  .y-site-header__inner {
    min-height: 62px;
  }

  .y-site-brand__mark {
    width: 1.875rem;
    height: 1.875rem;
  }

  .y-site-header__cta {
    display: none;
  }

  .y-menu-toggle {
    display: block;
    width: 44px;
    height: 44px;
    margin-left: auto;
    border: 0;
    background: transparent;
    color: var(--yusticium-ink);
  }

  .y-menu-toggle::before,
  .y-menu-toggle::after,
  .y-menu-toggle span {
    display: block;
    width: 22px;
    height: 1px;
    margin: 6px auto;
    background: currentcolor;
    content: "";
  }

  .y-site-navigation {
    display: none;
    position: absolute;
    inset: 62px 0 auto;
    gap: 0;
    margin: 0;
    border-bottom: 1px solid var(--yusticium-border);
    background: var(--yusticium-surface);
  }

  .y-site-header.is-menu-open .y-site-navigation {
    display: grid;
  }

  .y-site-navigation a {
    border-top: 1px solid var(--yusticium-border);
    font-size: 1.0625rem;
    padding: 1rem var(--yusticium-space-2);
  }

  .y-button--mobile {
    display: inline-flex;
    margin: 1rem var(--yusticium-space-2) 1.25rem;
    width: fit-content;
  }
}

@media (max-width: 767px) {
  .y-site-footer__grid {
    grid-template-columns: 1fr;
  }

  .body-innerwrapper > .container,
  .sp-page-builder .page-content > .sppb-section {
    padding-block: var(--yusticium-space-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Joomla article payload conventions; they do not alter Helix header, positions or layouts. */
.y-page,
.y-latest-articles {
  margin-inline: auto;
  max-width: var(--yusticium-container);
}

.y-page *,
.y-latest-articles * {
  box-sizing: border-box;
}

.y-page h2,
.y-page h3,
.y-latest-articles h2,
.y-latest-articles h3 {
  color: var(--yusticium-ink);
  letter-spacing: -0.025em;
}

.y-page h2,
.y-latest-articles h2 {
  font-size: clamp(1.875rem, 1.4rem + 2vw, 2.625rem);
  line-height: 1.16;
}

.y-page h3,
.y-latest-articles h3 {
  font-size: 1.25rem;
  line-height: 1.35;
}

.y-page p + p { margin-top: 1rem; }
.y-page-lead, .y-quiet { color: var(--yusticium-muted); }
.y-page-lead { font-size: 1.125rem; max-width: 66ch; }
.y-quiet { font-size: 0.9375rem; }
.y-eyebrow { color: var(--yusticium-brand); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.y-copy-stack { display: grid; gap: 1.25rem; }
.y-copy-stack > * { margin: 0; }
.y-home-hero { padding-block: var(--yusticium-space-4); }
.y-home-hero h1 { font-size: clamp(2.375rem, 2rem + 2.8vw, 3.5rem); letter-spacing: -0.045em; line-height: 1.08; max-width: 13ch; }
.y-home-hero__grid, .y-split, .y-offer-card, .y-contacts-grid { display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr); }
.y-home-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; }
.y-page .button { background: var(--yusticium-brand); border: 1px solid var(--yusticium-brand); color: #fff; display: inline-flex; font: 700 0.875rem var(--yusticium-font); min-height: 3rem; padding: 0.7rem 1.25rem; text-decoration: none; }
.y-page .button:hover, .y-page .button:focus-visible { background: var(--yusticium-brand-strong); color: #fff; }
.y-text-link { color: var(--yusticium-brand); font-size: 0.9375rem; font-weight: 700; text-decoration: underline; text-underline-offset: 0.25rem; }
.y-hero-note { border-left: 2px solid var(--yusticium-border); color: var(--yusticium-muted); font-size: 0.9375rem; padding-left: 1rem; }
.y-path-card, .y-card-grid article, .y-offer-card, .y-article-card, .y-contact-form-placeholder { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); padding: clamp(1.25rem, 3vw, 2.25rem); }
.y-path-card { overflow: hidden; position: relative; }
.y-path-card__label { color: var(--yusticium-ink); font-size: 1rem; font-weight: 700; margin: 0; }
.y-process-route { border-top: 1px solid var(--yusticium-border); display: grid; list-style: none; margin: 1.25rem 0; padding: 0; }
.y-process-route li { align-items: center; border-bottom: 1px solid var(--yusticium-border); display: grid; gap: 0.75rem; grid-template-columns: 2rem minmax(0, 1fr) auto; min-height: 3.25rem; padding: 0.625rem 0.25rem; position: relative; }
.y-process-route li span { color: var(--yusticium-brand); font: 700 0.6875rem ui-monospace, monospace; }
.y-process-route li strong { font-size: 0.9375rem; line-height: 1.35; }
.y-process-route li small { color: var(--yusticium-muted); font-size: 0.75rem; font-style: normal; }
.y-process-route li.is-break { border-left: 2px dashed var(--yusticium-brand); padding-left: 0.75rem; }
.y-process-route li.is-break small { color: var(--yusticium-brand); }
.y-path-flow, .y-numbered-list, .y-rules, .y-faq-list { border-top: 1px solid var(--yusticium-border); list-style: none; margin: 1.25rem 0 0; padding: 0; }
.y-path-flow li, .y-numbered-list li, .y-rules li { border-bottom: 1px solid var(--yusticium-border); padding: 1rem 0; }
.y-path-flow { counter-reset: path; }
.y-path-flow li, .y-numbered-list li, .y-rules li { display: grid; gap: 1rem; grid-template-columns: 2.25rem minmax(0, 1fr); }
.y-path-flow li::before, .y-numbered-list li::before, .y-rules li::before { color: var(--yusticium-brand); font: 700 0.75rem ui-monospace, monospace; }
.y-path-flow li::before { content: counter(path, decimal-leading-zero); counter-increment: path; }
.y-numbered-list { counter-reset: list; }
.y-numbered-list li::before, .y-rules li::before { content: counter(list); counter-increment: list; }
.y-rules { counter-reset: list; }

/* A list item can contain both <strong> and following plain text. Grid turns
   that text node into a new, narrow implicit column. Keep the number absolute
   and let all editorial text flow through one normal-width column. */
.y-numbered-list li,
.y-rules li {
  display: block;
  position: relative;
  padding-left: 3.25rem;
}

.y-numbered-list li::before,
.y-rules li::before {
  left: 0;
  position: absolute;
  top: 1rem;
}

/* The criteria and the rules are independent editorial groups. Keep each
   group together: it prevents the rules heading from inheriting the height
   of the large left-hand headline and keeps the left copy compact. */
.y-approach-copy, .y-rules-panel { align-content: start; display: grid; gap: 1rem; }
.y-approach-copy > *, .y-rules-panel > * { margin: 0; }
.y-approach-copy .y-bullet-list { padding-left: 1.25rem; }
.y-rules-panel .y-rules { margin-top: 0.25rem; }
.y-rules-table { background: var(--yusticium-border); border: 1px solid var(--yusticium-border); display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.y-rules-table section { background: var(--yusticium-surface-raised); min-width: 0; padding: 1.25rem; }
.y-rules-table section > h4 { color: var(--yusticium-brand); font: 700 0.6875rem ui-monospace, monospace; letter-spacing: 0.06em; margin: 0; text-transform: uppercase; }
.y-rules-table ol { margin: 1rem 0 0; padding-left: 1.35rem; }
.y-rules-table li { font-size: 0.875rem; line-height: 1.55; overflow-wrap: anywhere; padding-left: 0.15rem; }
.y-rules-table li + li { margin-top: 0.75rem; }

@media (min-width: 1150px) {
  .y-approach {
    grid-template-areas:
      "title rules"
      "copy rules";
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  }

  .y-approach > h2 { grid-area: title; }
  .y-approach-copy { grid-area: copy; }
  .y-rules-panel { grid-area: rules; }
}
@media (max-width: 1149px) {
  .y-approach, .y-manual-control-layout { grid-template-columns: 1fr; }
}
.y-tax { border-top: 2px solid var(--yusticium-ink); font-weight: 700; margin-top: 1.5rem; padding-top: 1.25rem; }
.y-path-retention { align-items: stretch; background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 1fr) minmax(9.5rem, 0.9fr) minmax(0, 1fr); margin: 0 0 2rem; padding: 1rem; }
.y-path-retention figcaption { align-items: center; background: var(--yusticium-ink); color: var(--yusticium-surface-raised); display: flex; font-size: 1rem; font-weight: 700; grid-column: 2; grid-row: 1; justify-content: center; line-height: 1.4; padding: 1rem; text-align: center; }
.y-path-retention__inputs, .y-path-retention__outputs { display: grid; gap: 0.625rem; }
.y-path-retention__inputs { grid-column: 1; grid-row: 1; }
.y-path-retention__outputs { grid-column: 3; grid-row: 1; }
.y-path-retention span { align-items: center; border: 1px solid var(--yusticium-border); color: var(--yusticium-muted); display: flex; font-size: 0.8125rem; line-height: 1.3; min-height: 2.5rem; min-width: 0; overflow-wrap: anywhere; padding: 0.5rem 0.625rem; }
.y-manual-control-intro { align-content: start; }
.y-manual-control-intro .y-path-retention { margin: 0; }
.y-system-intro { align-content: start; display: grid; gap: 2rem; }
.y-system-intro h2 { margin: 0; }
.y-system-visual { align-items: center; display: grid; gap: 1.125rem; grid-template-columns: minmax(5rem, 0.8fr) auto minmax(8rem, 1.2fr); max-width: 28rem; }
.y-system-fragments, .y-system-connected { display: grid; gap: 0.625rem; }
.y-system-fragments small, .y-system-connected small { color: var(--yusticium-muted); font-size: 0.6875rem; font-weight: 600; line-height: 1.25; }
.y-system-fragments > div { display: grid; gap: 0.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.y-system-fragments span { aspect-ratio: 1.8 / 1; background: color-mix(in oklch, var(--yusticium-surface-raised) 55%, transparent); border: 1px solid color-mix(in oklch, var(--yusticium-muted) 60%, transparent); color: transparent; font-size: 0; }
.y-system-visual__arrow { color: var(--yusticium-brand); font-size: 1.375rem; }
.y-system-connected > div { align-items: center; display: flex; justify-content: space-between; position: relative; }
.y-system-connected > div::before { background: var(--yusticium-brand); content: ""; height: 1px; left: 0; position: absolute; right: 0; top: calc(50% - 0.5px); }
.y-system-connected span { background: #e9e3d6; border: 1px solid var(--yusticium-brand); border-radius: 50%; color: transparent; font-size: 0; height: 0.75rem; position: relative; width: 0.75rem; z-index: 1; }
.y-system-connected span:nth-child(3) { background: var(--yusticium-brand); box-shadow: 0 0 0 0.4rem color-mix(in oklch, var(--yusticium-brand) 12%, transparent); }
.y-system-lines { border-top: 1px solid var(--yusticium-border); }
.y-system-lines p { border-bottom: 1px solid var(--yusticium-border); margin: 0; padding: 1rem 0; }
.y-bullet-list { margin: 1rem 0; padding-left: 1.25rem; }
.y-bullet-list li + li { margin-top: 0.625rem; }
.y-page-section { border-top: 1px solid var(--yusticium-border); margin-inline: calc((100vw - min(100vw, var(--yusticium-container))) / -2); padding: var(--yusticium-space-4) max(0px, calc((100vw - var(--yusticium-container)) / 2)); }
.y-page-section > * { margin-inline: auto; max-width: var(--yusticium-container); padding-inline: var(--yusticium-space-2); }
.y-page-section--sand { background: #e9e3d6; }
.y-page-section--surface { background: var(--yusticium-surface-raised); }
@media (min-width: 1101px) {
  .y-route-section { --y-route-gutter: max(1.25rem, calc((100vw - var(--yusticium-container)) / 2 - 1.5rem)); position: relative; }
  .y-route-section::before { background: repeating-linear-gradient(to bottom, color-mix(in oklch, var(--yusticium-brand) 45%, transparent) 0 3px, transparent 3px 9px); bottom: 0; content: ""; left: var(--y-route-gutter); pointer-events: none; position: absolute; top: 0; width: 1px; }
  .y-route-section[data-y-route-index]::after { align-items: center; background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-brand); border-radius: 50%; color: var(--yusticium-brand); content: attr(data-y-route-index); display: flex; font: 700 0.625rem ui-monospace, monospace; height: 1.75rem; justify-content: center; left: calc(var(--y-route-gutter) - 0.875rem); pointer-events: none; position: absolute; top: clamp(2rem, 4vw, 4rem); width: 1.75rem; }
}
.y-chain { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); margin-top: 1.5rem; padding: 1.25rem; }
.y-chain p { color: var(--yusticium-brand); font-weight: 700; margin: 0; }
.y-path-stages { display: grid; gap: 2rem; margin-top: 1.75rem; }
.y-path-stage { display: grid; gap: 0.75rem; }
.y-path-stage .y-chain, .y-path-stage .y-card-grid { margin-top: 0; }
.y-path-stage__label { color: var(--yusticium-muted); margin: 0; }
.y-path-stage .y-quiet { margin: 0; }
.y-card-grid, .y-article-grid, .y-contours { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.5rem; }
.y-card-grid article p, .y-article-card p { color: var(--yusticium-muted); font-size: 0.9375rem; }
.y-path-card-grid { border: 1px solid color-mix(in oklch, var(--yusticium-brand) 55%, var(--yusticium-border)); gap: 0.75rem; padding: 0.75rem; position: relative; }
.y-path-card-grid::before { border-left: 1px dashed var(--yusticium-brand); content: ""; height: 2rem; left: 50%; position: absolute; top: -2rem; }
.y-path-card-grid::after { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-brand); border-radius: 50%; content: ""; height: 0.625rem; left: calc(50% - 0.3125rem); position: absolute; top: -0.3125rem; width: 0.625rem; }
.y-path-card-grid article { position: relative; }
.y-path-card-grid article::before { background: var(--yusticium-brand); border: 3px solid var(--yusticium-surface-raised); border-radius: 50%; content: ""; height: 0.75rem; left: calc(50% - 0.375rem); position: absolute; top: -0.4375rem; width: 0.75rem; }
.y-outcomes article { border-top: 2px solid var(--yusticium-ink); }
.y-offer-card { align-items: start; margin-inline: auto; max-width: 70rem; }
.y-diagnostic-matrix { border: 1px solid var(--yusticium-border); display: grid; gap: 0.625rem; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto minmax(11rem, 1fr) auto; margin: 2rem 0 0; padding: 1rem; }
.y-diagnostic-matrix figcaption { color: var(--yusticium-ink); font-size: 0.8125rem; font-weight: 700; grid-column: 1 / -1; margin: 0; }
.y-diagnostic-matrix__plot { background: repeating-linear-gradient(to right, transparent 0 calc(25% - 1px), var(--yusticium-border) calc(25% - 1px) 25%), repeating-linear-gradient(to bottom, transparent 0 calc(33.333% - 1px), var(--yusticium-border) calc(33.333% - 1px) 33.333%); border-bottom: 1px solid var(--yusticium-border); border-left: 1px solid var(--yusticium-border); display: grid; gap: 0.35rem; grid-column: 2; grid-row: 2; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); padding: 0.625rem; }
.y-diagnostic-matrix__axis { color: var(--yusticium-muted); font: 600 0.6875rem ui-monospace, monospace; letter-spacing: 0.04em; text-transform: uppercase; }
.y-diagnostic-matrix__axis--y { align-self: center; grid-column: 1; grid-row: 2; transform: rotate(180deg); writing-mode: vertical-rl; }
.y-diagnostic-matrix__axis--x { grid-column: 2; grid-row: 3; justify-self: end; }
.y-matrix-tag { align-self: center; background: var(--yusticium-brand); color: #fff; font-size: 0.75rem; font-weight: 700; justify-self: center; line-height: 1.2; max-width: 100%; padding: 0.4rem 0.5rem; }
.y-matrix-tag--roles { grid-column: 1; grid-row: 1; }
.y-matrix-tag--terms { grid-column: 2; grid-row: 1; }
.y-matrix-tag--data { grid-column: 3; grid-row: 1; }
.y-matrix-tag--knowledge { grid-column: 4; grid-row: 1; }
.y-matrix-tag--economy { background: var(--yusticium-ink); grid-column: 1 / span 2; grid-row: 2; }
.y-pilot-layout { grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr); }
.y-pilot-stages { display: grid; gap: 0.5rem; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.y-pilot-stages li { aspect-ratio: 1; background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: 0.875rem; }
.y-pilot-stages span { color: var(--yusticium-brand); font: 700 0.6875rem ui-monospace, monospace; }
.y-pilot-stages strong { font-size: clamp(0.75rem, 1vw, 0.9375rem); line-height: 1.3; overflow-wrap: anywhere; }
.y-pilot-decisions { display: grid; gap: 0.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0.5rem 0 1.5rem; }
.y-pilot-decisions span { background: #e9e3d6; color: var(--yusticium-ink); font-size: 0.8125rem; font-weight: 600; padding: 0.75rem; text-align: center; }
.y-system-connected > div::before, .y-path-card-grid::before, .y-path-card-grid::after, .y-path-card-grid article::before { pointer-events: none; }
.y-table-wrap { overflow-x: auto; }
.y-compare { border-collapse: collapse; margin-top: 1.5rem; min-width: 42rem; width: 100%; }
.y-compare th, .y-compare td { border: 1px solid var(--yusticium-border); padding: 0.9rem 1rem; text-align: left; vertical-align: top; }
.y-compare th { background: #e9e3d6; }
.y-latest-articles { border-top: 1px solid var(--yusticium-border); padding-block: var(--yusticium-space-4); }
.y-latest-articles__head { align-items: end; display: flex; gap: 1rem; justify-content: space-between; }
.y-latest-articles__head h2 { margin-top: 0.5rem; max-width: 22ch; }
.y-article-card { display: flex; min-width: 0; padding: 0; }
.y-article-card--expertise { flex-direction: column; }
.y-article-card--graphic::before,
.y-blog-card--graphic::before {
  background:
    radial-gradient(circle at 16% 58%, var(--yusticium-surface-raised) 0 3px, var(--yusticium-brand) 3px 5px, transparent 5px),
    radial-gradient(circle at 36% 58%, var(--yusticium-surface-raised) 0 3px, var(--yusticium-brand) 3px 5px, transparent 5px),
    radial-gradient(circle at 58% 37%, var(--yusticium-brand) 0 5px, transparent 5px),
    radial-gradient(circle at 82% 58%, var(--yusticium-surface-raised) 0 3px, var(--yusticium-brand) 3px 5px, transparent 5px),
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 16% 58% / 67% 1px no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 58% 37% / 1px 22% no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 50% 25% / 17% 1px no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 50% 49% / 17% 1px no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 50% 37% / 1px 25% no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 66% 37% / 1px 25% no-repeat,
    #e9e3d6;
  border-bottom: 1px solid var(--yusticium-border);
  content: "";
  display: block;
  height: 10rem;
}
.y-blog-card--graphic::before { aspect-ratio: 16 / 9; height: auto; }
.y-blog-card--documents::before {
  background:
    linear-gradient(90deg, transparent 0 16%, rgb(30 84 73 / 0.16) 16% 16.5%, transparent 16.5% 83.5%, rgb(30 84 73 / 0.16) 83.5% 84%, transparent 84%),
    repeating-linear-gradient(to bottom, transparent 0 1.75rem, rgb(30 84 73 / 0.16) 1.75rem calc(1.75rem + 1px), transparent calc(1.75rem + 1px) 3.5rem),
    linear-gradient(135deg, transparent 0 50%, rgb(30 84 73 / 0.12) 50% 50.7%, transparent 50.7%),
    #e9e3d6;
  position: relative;
}
.y-blog-card--advisor::before {
  background:
    radial-gradient(circle at 50% 50%, #e9e3d6 0 12%, var(--yusticium-brand) 12.4% 13.5%, #e9e3d6 13.9% 27%, rgb(30 84 73 / 0.45) 27.4% 28.2%, #e9e3d6 28.6% 43%, rgb(30 84 73 / 0.2) 43.4% 44.2%, transparent 44.6%),
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 14% 50% / 72% 1px no-repeat,
    linear-gradient(90deg, transparent 0 49.7%, var(--yusticium-brand) 49.7% 50.3%, transparent 50.3%),
    #e9e3d6;
}
.y-blog-card--ii-pravosudie::before {
  background:
    linear-gradient(135deg, transparent 0 49.7%, var(--yusticium-brand) 49.7% 50.3%, transparent 50.3%),
    linear-gradient(45deg, transparent 0 49.7%, rgb(30 84 73 / 0.45) 49.7% 50.3%, transparent 50.3%),
    radial-gradient(circle at 50% 50%, var(--yusticium-brand) 0 4.5%, #e9e3d6 4.8% 16%, rgb(30 84 73 / 0.25) 16.3% 17.2%, #e9e3d6 17.5% 29%, rgb(30 84 73 / 0.15) 29.3% 30.2%, transparent 30.5%),
    #e9e3d6;
}
.y-blog-card--insight::before {
  background:
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 18% 70% / 64% 1px no-repeat,
    linear-gradient(var(--yusticium-brand), var(--yusticium-brand)) 50% 29% / 1px 42% no-repeat,
    radial-gradient(circle at 18% 70%, var(--yusticium-brand) 0 5px, transparent 5.5px),
    radial-gradient(circle at 50% 29%, var(--yusticium-brand) 0 5px, transparent 5.5px),
    radial-gradient(circle at 82% 70%, var(--yusticium-brand) 0 5px, transparent 5.5px),
    #e9e3d6;
}
.y-article-card__image { aspect-ratio: 16 / 8; background: #e9e3d6; display: block; overflow: hidden; }
.y-article-card__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.y-article-card__body { display: grid; gap: 0.875rem; padding: 1.5rem; }
.y-article-card__body > * { margin: 0; }
.y-article-card__meta { color: var(--yusticium-muted); display: flex; flex-wrap: wrap; font-size: 0.8125rem; gap: 0.5rem; }
.y-article-card__meta span + time::before { content: "/"; margin-right: 0.5rem; }
.y-page--final { border: 0; }
.y-final-card, .y-digital-cta { background: var(--yusticium-ink); color: var(--yusticium-surface-raised); padding: clamp(2rem, 6vw, 4.75rem); }
.y-final-card h2, .y-digital-cta h2 { color: inherit; }
.y-final-card .button, .y-digital-cta .button { background: var(--yusticium-surface-raised); border-color: var(--yusticium-surface-raised); color: var(--yusticium-ink); }
.y-faq-item { border-bottom: 1px solid var(--yusticium-border); }
.y-faq-question { align-items: center; background: transparent; border: 0; color: var(--yusticium-ink); display: flex; font: 700 1rem var(--yusticium-font); justify-content: space-between; min-height: 4.5rem; padding: 1rem 0; text-align: left; width: 100%; }
.y-faq-question span:last-child { color: var(--yusticium-brand); font-size: 1.5rem; font-weight: 400; }
.y-faq-answer { color: var(--yusticium-muted); display: none; padding-bottom: 1.25rem; }
.y-faq-answer p { margin: 0; }
.y-faq-item.is-open .y-faq-answer { display: block; }
.y-faq-item.is-open .y-faq-question span:last-child { transform: rotate(45deg); }
.y-digital-layout { display: grid; gap: clamp(2rem, 6vw, 5rem); grid-template-columns: 15rem minmax(0, 50rem); padding-block: var(--yusticium-space-4); }
.y-local-toc { align-self: start; border-top: 1px solid var(--yusticium-border); position: sticky; top: 6rem; }
.y-local-toc p { color: var(--yusticium-brand); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; margin: 0; padding: 0.75rem 0; text-transform: uppercase; }
.y-local-toc a { border-bottom: 1px solid var(--yusticium-border); color: var(--yusticium-muted); display: block; font-size: 0.875rem; padding: 0.7rem 0; text-decoration: none; }
.y-digital-content { display: grid; gap: 3.5rem; }
.y-digital-content section { scroll-margin-top: 7rem; }
.y-digital-content h2 { margin-bottom: 1.25rem; }
.y-mobile-toc { display: none; }
.y-contours { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.y-contours article { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); padding: 1.5rem; }
.y-contours article p, .y-route p { color: var(--yusticium-muted); font-size: 0.9375rem; }
.y-route { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 1.5rem; }
.y-route article { border: 1px solid var(--yusticium-border); border-right: 0; min-width: 0; padding: 1.25rem; }
.y-route article:last-child { border-right: 1px solid var(--yusticium-border); }
.y-route span { color: var(--yusticium-brand); display: block; font: 700 0.8125rem ui-monospace, monospace; margin-bottom: 2rem; }
.y-contacts-hero { padding-block: var(--yusticium-space-4) var(--yusticium-space-3); }
.y-contacts-hero h1 { font-size: clamp(2.5rem, 2rem + 2.6vw, 4.25rem); letter-spacing: -0.05em; line-height: 1.05; margin-bottom: 1.5rem; max-width: 18ch; }
.y-contacts-hero .y-page-lead { max-width: 50rem; }
.y-contacts-grid { border-top: 1px solid var(--yusticium-border); padding-block: var(--yusticium-space-4); }
.y-contact-details { display: grid; gap: 1rem; align-content: start; }
.y-contact-details p { color: var(--yusticium-muted); margin: 0; }
.y-contact-form { min-width: 0; }
.y-contact-next { border-top: 1px solid var(--yusticium-border); counter-reset: contact-next; list-style: none; margin: 0; padding: 0; }
.y-contact-next li { border-bottom: 1px solid var(--yusticium-border); display: grid; gap: 1rem; grid-template-columns: 2rem minmax(0, 1fr); padding: 1rem 0; }
.y-contact-next li::before { color: var(--yusticium-brand); content: counter(contact-next); counter-increment: contact-next; font: 700 0.75rem ui-monospace, monospace; padding-top: 0.2rem; }
.y-contact-details--next .y-quiet { margin-top: 0.25rem; }

@media (min-width: 901px) {
  .y-contacts-grid { grid-template-areas: "form details"; }
  .y-contact-form { grid-area: form; }
  .y-contact-details { grid-area: details; }
}

/* Bitrix24 is mounted by the template into this explicit host. Keep the
   surrounding page open: only the fields themselves need boundaries. */
.y-bitrix-form .b24-form-wrapper,
.y-bitrix-form .b24-form {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.y-bitrix-form .b24-form-wrapper { max-width: none !important; }
.y-bitrix-form .b24-form-content { padding: 0 !important; }
.y-bitrix-form .b24-form-header { border-bottom: 0 !important; padding: 0 0 1.5rem !important; }
.y-bitrix-form .b24-form-header-title,
.y-bitrix-form .b24-form-control-label,
.y-bitrix-form .b24-form-control-label-text,
.y-bitrix-form .b24-form-control-string,
.y-bitrix-form .b24-form-control-textarea { color: var(--yusticium-ink) !important; font-family: var(--yusticium-font) !important; }
.y-bitrix-form .b24-form-header-title { font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem) !important; letter-spacing: -0.04em !important; line-height: 1.1 !important; text-align: left !important; }
.y-bitrix-form .b24-form-header-description,
.y-bitrix-form .b24-form-sign,
.y-bitrix-form .b24-form-control-desc,
.y-bitrix-form .b24-form-control-label-legend { color: var(--yusticium-muted) !important; font-family: var(--yusticium-font) !important; }
.y-bitrix-form .b24-form-header-description { text-align: left !important; }
.y-bitrix-form input,
.y-bitrix-form select,
.y-bitrix-form textarea {
  background: var(--yusticium-surface-raised) !important;
  border: 1px solid var(--yusticium-border) !important;
  border-radius: 4px !important;
  color: var(--yusticium-ink) !important;
  font-family: var(--yusticium-font) !important;
}
.y-bitrix-form input:focus,
.y-bitrix-form select:focus,
.y-bitrix-form textarea:focus { border-color: var(--yusticium-focus) !important; box-shadow: 0 0 0 2px rgb(13 107 87 / 16%) !important; outline: 0; }
.y-bitrix-form input::placeholder,
.y-bitrix-form textarea::placeholder { color: var(--yusticium-muted) !important; opacity: 0.8; }
.y-bitrix-form .b24-form-btn,
.y-bitrix-form button[type="submit"] { background: var(--yusticium-brand) !important; border: 1px solid var(--yusticium-brand) !important; border-radius: 4px !important; color: #fff !important; font-family: var(--yusticium-font) !important; font-weight: 700 !important; }
.y-bitrix-form .b24-form-btn:hover,
.y-bitrix-form .b24-form-btn:focus-visible,
.y-bitrix-form button[type="submit"]:hover,
.y-bitrix-form button[type="submit"]:focus-visible { background: var(--yusticium-brand-strong) !important; border-color: var(--yusticium-brand-strong) !important; }
.y-bitrix-form input[type="checkbox"] { accent-color: var(--yusticium-brand); }
.y-bitrix-form a { color: var(--yusticium-brand) !important; }

@media (max-width: 900px) {
  .y-home-hero__grid, .y-split, .y-offer-card, .y-contacts-grid, .y-digital-layout { grid-template-columns: 1fr; }
  .y-local-toc { display: none; }
  .y-mobile-toc { border: 1px solid var(--yusticium-border); display: block; margin-bottom: 1.5rem; padding: 0 1rem; }
  .y-mobile-toc summary { cursor: pointer; font-weight: 700; padding: 1rem 0; }
  .y-mobile-toc a { border-top: 1px solid var(--yusticium-border); color: var(--yusticium-muted); display: block; padding: 0.75rem 0; text-decoration: none; }
  .y-card-grid, .y-article-grid { grid-template-columns: 1fr; }
  .y-route { grid-template-columns: 1fr; }
  .y-route article, .y-route article:last-child { border-bottom: 0; border-right: 1px solid var(--yusticium-border); }
  .y-route article:last-child { border-bottom: 1px solid var(--yusticium-border); }
  .y-route span { margin-bottom: 0.75rem; }
}

@media (max-width: 600px) {
  .y-page-section { margin-inline: calc(var(--yusticium-space-2) * -1); padding-inline: 0; }
  .y-page-section > * { padding-inline: var(--yusticium-space-2); }
  .y-path-retention { grid-template-columns: 1fr; }
  .y-path-retention figcaption { grid-column: 1; grid-row: 1; }
  .y-path-retention__inputs { grid-column: 1; grid-row: 2; }
  .y-path-retention__outputs { grid-column: 1; grid-row: 3; }
  .y-rules-table { grid-template-columns: 1fr; }
  .y-system-visual { gap: 0.75rem; grid-template-columns: minmax(4.5rem, 0.85fr) auto minmax(7.5rem, 1.15fr); }
  .y-diagnostic-matrix { grid-template-rows: auto minmax(10rem, 1fr) auto; padding: 0.75rem; }
  .y-diagnostic-matrix__plot { padding: 0.35rem; }
  .y-matrix-tag { font-size: 0.6875rem; padding: 0.35rem; }
  .y-pilot-stages, .y-pilot-decisions { grid-template-columns: 1fr; }
  .y-pilot-stages li { aspect-ratio: auto; min-height: 4.5rem; }
  .y-contours { grid-template-columns: 1fr; }
  .y-compare, .y-compare tbody, .y-compare tr, .y-compare th, .y-compare td { display: block; min-width: 0; width: 100%; }
  .y-compare thead { display: none; }
  .y-compare tr { border: 1px solid var(--yusticium-border); margin-bottom: 0.875rem; padding: 0.75rem; }
  .y-compare td { border: 0; padding: 0.25rem 0; }
  .y-compare td:first-child { color: var(--yusticium-ink); font-weight: 700; }
}

/* Opt-in Joomla blog/article layouts and the reusable client-only dialog. */
.y-blog, .y-article { margin-inline: auto; max-width: var(--yusticium-container); }
.y-blog *, .y-article *, .y-diagnostic-modal *, .y-breadcrumbs * { box-sizing: border-box; }
.y-blog__header, .y-article__header { border-bottom: 1px solid var(--yusticium-border); padding-block: var(--yusticium-space-3); }
.y-blog__header h1, .y-article__header h1 { font-size: clamp(2.25rem, 1.65rem + 2.75vw, 4.25rem); letter-spacing: -0.045em; line-height: 1.06; max-width: 18ch; }
.y-blog__description, .y-article__lead { color: var(--yusticium-muted); font-size: 1.125rem; line-height: 1.65; max-width: 48rem; }
.y-blog__tools { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-top: 2rem; }
.y-blog__filter { margin: 0; }
.y-blog-search { display: grid; gap: 0.35rem; min-width: min(100%, 19rem); }
.y-blog-search label { font-size: 0.8125rem; font-weight: 700; }
.y-blog-search div { display: flex; gap: 0.5rem; }
.y-blog-search input { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); min-width: 0; padding: 0.65rem 0.75rem; width: 100%; }
.y-blog-search button, .y-dialog-trigger, .y-diagnostic-form button { background: var(--yusticium-brand); border: 1px solid var(--yusticium-brand); color: #fff; cursor: pointer; font: 700 0.875rem var(--yusticium-font); min-height: 2.75rem; padding: 0.65rem 1rem; }
.y-blog__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: var(--yusticium-space-3); }
.y-blog-card { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); display: flex; flex-direction: column; min-width: 0; }
.y-blog-card__image { aspect-ratio: 16 / 9; background: #e9e3d6; display: block; overflow: hidden; }
.y-blog-card__image img { height: 100%; object-fit: cover; width: 100%; }
.y-blog-card__body { display: grid; gap: 0.875rem; padding: 1.5rem; }
.y-blog-card__body > * { margin: 0; }
.y-blog-card__body h2 { font-size: 1.35rem; line-height: 1.3; }
.y-blog-card__body h2 a { color: var(--yusticium-ink); }
.y-blog-card__body > p:not(.y-blog-card__meta) { color: var(--yusticium-muted); }
.y-blog-card__meta, .y-article__meta { color: var(--yusticium-muted); display: flex; flex-wrap: wrap; font-size: 0.8125rem; gap: 0.5rem 0.75rem; margin: 0; }
.y-blog-card__meta span + time::before, .y-article__meta a + time::before { content: "/"; margin-right: 0.75rem; }
.y-blog__pagination { border-top: 1px solid var(--yusticium-border); padding-block: var(--yusticium-space-2); }
.y-blog__pagination ul { display: flex; flex-wrap: wrap; gap: 0.25rem; list-style: none; margin: 0; padding: 0; }
.y-blog__pagination a, .y-blog__pagination span { border: 1px solid var(--yusticium-border); display: inline-block; padding: 0.5rem 0.75rem; text-decoration: none; }
.y-blog__empty { background: var(--yusticium-surface-raised); border: 1px solid var(--yusticium-border); color: var(--yusticium-muted); margin: var(--yusticium-space-3) 0; padding: 1.5rem; }
.y-article { padding-block: var(--yusticium-space-3); }
.y-article__header { margin-inline: auto; max-width: 48.75rem; }
.y-article__image { margin: 2rem 0 0; }
.y-article__image img { display: block; height: auto; max-width: 100%; }
.y-article__content { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: minmax(0, 10rem) minmax(0, 48.75rem); justify-content: center; padding-block: var(--yusticium-space-3); }
.y-article-toc { align-self: start; border-top: 1px solid var(--yusticium-border); position: sticky; top: 6rem; }
.y-article-toc p { color: var(--yusticium-brand); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; margin: 0; padding: 0.75rem 0; text-transform: uppercase; }
.y-article-toc ol { list-style: none; margin: 0; padding: 0; }
.y-article-toc a { border-top: 1px solid var(--yusticium-border); color: var(--yusticium-muted); display: block; font-size: 0.8125rem; padding: 0.65rem 0; text-decoration: none; }
.y-article-prose { font-size: 1.0625rem; line-height: 1.75; max-width: 48.75rem; overflow-wrap: break-word; }
.y-article-prose > :first-child { margin-top: 0; }
.y-article-prose h2, .y-article-prose h3 { line-height: 1.2; scroll-margin-top: 7rem; }
.y-article-prose h2 { font-size: clamp(1.7rem, 1.4rem + 1.2vw, 2.35rem); margin-top: 3rem; }
.y-article-prose h3 { font-size: 1.35rem; margin-top: 2rem; }
.y-article-prose img, .y-article-prose iframe, .y-article-prose table { max-width: 100%; }
.y-article__cta { align-items: center; background: var(--yusticium-ink); color: var(--yusticium-surface-raised); display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-inline: auto; max-width: 48.75rem; padding: 1.5rem; }
.y-article__cta p { font-weight: 700; margin: 0; }
.y-article__cta .y-dialog-trigger { align-items: center; background: var(--yusticium-surface-raised); border-color: var(--yusticium-surface-raised); color: var(--yusticium-ink); display: inline-flex; text-decoration: none; }
.y-article-related { border-top: 1px solid var(--yusticium-border); margin-top: var(--yusticium-space-3); padding-top: var(--yusticium-space-2); }
.y-breadcrumbs { margin-inline: auto; max-width: var(--yusticium-container); padding-block: 1rem; }
.y-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; margin: 0; padding: 0; }
.y-breadcrumbs li + li::before { color: var(--yusticium-muted); content: "/"; margin-right: 0.4rem; }
.y-breadcrumbs span, .y-breadcrumbs a { font-size: 0.8125rem; }
.y-diagnostic-modal { background: transparent; border: 0; max-height: 100vh; max-width: 100vw; padding: var(--yusticium-space-2); width: min(100%, 42rem); }
.y-diagnostic-modal::backdrop { background: rgb(15 28 24 / 0.72); }
.y-diagnostic-modal__panel { background: var(--yusticium-surface-raised); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.25); padding: clamp(1.5rem, 5vw, 3rem); position: relative; }
.y-diagnostic-modal__panel h2 { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); letter-spacing: -0.035em; margin-top: 0.25rem; }
.y-diagnostic-modal__close { background: transparent; border: 0; color: var(--yusticium-ink); cursor: pointer; font-size: 2rem; line-height: 1; padding: 0.25rem; position: absolute; right: 0.75rem; top: 0.75rem; }
.y-diagnostic-modal__status { background: #e9e3d6; color: var(--yusticium-ink); font-size: 0.9375rem; margin: 1.5rem 0; padding: 0.875rem 1rem; }
.y-diagnostic-modal__status.is-error { background: #f8ded8; }
.y-diagnostic-form { display: grid; gap: 1rem; }
.y-diagnostic-form__field { display: grid; gap: 0.4rem; }
.y-diagnostic-form label { font-size: 0.875rem; font-weight: 700; }
.y-diagnostic-form input:not([type="checkbox"]), .y-diagnostic-form textarea { background: #fff; border: 1px solid var(--yusticium-border); color: var(--yusticium-ink); padding: 0.7rem 0.75rem; width: 100%; }
.y-diagnostic-form textarea { resize: vertical; }
.y-diagnostic-form__consent { align-items: start; display: grid; gap: 0.65rem; grid-template-columns: 1rem minmax(0, 1fr); }
.y-diagnostic-form__consent input { margin-top: 0.25rem; }
.y-field-error { color: #9b2c1d; font-size: 0.8125rem; margin: 0; min-height: 1.25em; }
.y-diagnostic-form [aria-invalid="true"] { border-color: #9b2c1d; }
.y-diagnostic-form__honeypot { height: 1px; left: -10000px; overflow: hidden; position: absolute; width: 1px; }

@media (max-width: 900px) {
  .y-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .y-article__content { grid-template-columns: 1fr; }
  .y-article-toc { display: none; }
}

@media (max-width: 600px) {
  .y-blog__tools, .y-article__cta { align-items: stretch; flex-direction: column; }
  .y-blog-search { min-width: 0; width: 100%; }
  .y-blog__grid { grid-template-columns: 1fr; }
  .y-diagnostic-modal { padding: 0.75rem; }
  .y-diagnostic-modal__panel { max-height: calc(100vh - 1.5rem); overflow-y: auto; }
}

/* Legal articles and consent-gated optional browser storage. */
.y-legal { margin-inline: auto; max-width: var(--yusticium-container); padding-block: var(--yusticium-space-3); }
.y-legal__header { border-bottom: 1px solid var(--yusticium-border); margin-inline: auto; max-width: 55rem; padding-bottom: var(--yusticium-space-2); }
.y-legal__header h1 { font-size: clamp(2.25rem, 1.7rem + 2.5vw, 4rem); letter-spacing: -0.045em; line-height: 1.08; margin-bottom: 1rem; max-width: 21ch; }
.y-legal__version { color: var(--yusticium-muted); margin: 0; }
.y-legal__content { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: minmax(0, 13rem) minmax(0, 55rem); justify-content: center; padding-block: var(--yusticium-space-3); }
.y-legal__toc { align-self: start; border-top: 1px solid var(--yusticium-border); position: sticky; top: 6rem; }
.y-legal__toc p { color: var(--yusticium-brand); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; margin: 0; padding: 0.75rem 0; text-transform: uppercase; }
.y-legal__toc ol { list-style: none; margin: 0; padding: 0; }
.y-legal__toc a { border-top: 1px solid var(--yusticium-border); color: var(--yusticium-muted); display: block; font-size: 0.8125rem; line-height: 1.35; padding: 0.65rem 0; text-decoration: none; }
.y-legal__prose { font-size: 1rem; line-height: 1.72; overflow-wrap: anywhere; }
.y-legal__prose > :first-child { margin-top: 0; }
.y-legal__prose h2 { font-size: clamp(1.55rem, 1.3rem + 1vw, 2.15rem); line-height: 1.2; margin-top: 3rem; scroll-margin-top: 7rem; }
.y-legal__prose h3 { font-size: 1.25rem; line-height: 1.3; margin-top: 2rem; scroll-margin-top: 7rem; }
.y-legal__prose li + li { margin-top: 0.5rem; }
.y-legal__prose a { color: var(--yusticium-brand); }
.article-details:has(.y-legal-document) { margin-inline: auto; max-width: 55rem; padding-block: var(--yusticium-space-3); }
.article-details:has(.y-legal-document) .article-header { border-bottom: 1px solid var(--yusticium-border); margin-bottom: var(--yusticium-space-2); padding-bottom: var(--yusticium-space-2); }
.article-details:has(.y-legal-document) .article-header h1 { font-size: clamp(2.25rem, 1.7rem + 2.5vw, 4rem); letter-spacing: -0.045em; line-height: 1.08; max-width: 21ch; }
.article-details:has(.y-legal-document) .article-info { display: none; }
.y-legal-document { font-size: 1rem; line-height: 1.72; overflow-wrap: anywhere; }
.y-legal-document__version { color: var(--yusticium-muted); margin: 0 0 var(--yusticium-space-2); }
.y-legal-document h2 { font-size: clamp(1.55rem, 1.3rem + 1vw, 2.15rem); line-height: 1.2; margin-top: 3rem; scroll-margin-top: 7rem; }
.y-legal-document h3 { font-size: 1.25rem; line-height: 1.3; margin-top: 2rem; scroll-margin-top: 7rem; }
.y-legal-document li + li { margin-top: 0.5rem; }
.y-legal-document a { color: var(--yusticium-brand); }

.y-cookie-consent[hidden] { display: none; }
.y-cookie-consent { align-items: center; background: rgb(15 28 24 / 0.76); bottom: 0; display: flex; inset: 0; justify-content: center; overflow-y: auto; padding: 1rem; position: fixed; z-index: 10050; }
.y-cookie-consent__panel { background: var(--yusticium-surface-raised, #fff); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.3); color: var(--yusticium-ink, #1d2421); max-width: 44rem; padding: clamp(1.5rem, 5vw, 3rem); width: 100%; }
.y-cookie-consent__panel h2 { font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem); letter-spacing: -0.035em; line-height: 1.15; margin: 0.35rem 0 1rem; }
.y-cookie-consent__panel > p { color: var(--yusticium-muted, #59615d); }
.y-cookie-consent__choice { align-items: start; background: #f4f1e9; border: 1px solid var(--yusticium-border, #d6d5ce); display: grid; gap: 0.75rem; grid-template-columns: 1.2rem minmax(0, 1fr); margin-top: 1.5rem; padding: 1rem; }
.y-cookie-consent__choice input { accent-color: var(--yusticium-brand, #1f5146); height: 1.1rem; margin-top: 0.2rem; width: 1.1rem; }
.y-cookie-consent__choice label { font-size: 0.9375rem; line-height: 1.5; }
.y-cookie-consent__choice a { color: var(--yusticium-brand, #1f5146); }
.y-cookie-consent__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.y-cookie-consent__actions button, .y-external-content-placeholder button { cursor: pointer; font: 700 0.875rem var(--yusticium-font, sans-serif); min-height: 2.85rem; padding: 0.65rem 1rem; }
.y-cookie-consent__accept { background: var(--yusticium-brand, #1f5146); border: 1px solid var(--yusticium-brand, #1f5146); color: #fff; }
.y-cookie-consent__accept:disabled { cursor: not-allowed; opacity: 0.45; }
.y-cookie-consent__reject { background: transparent; border: 1px solid var(--yusticium-border, #d6d5ce); color: var(--yusticium-ink, #1d2421); }
.y-cookie-consent__note { font-size: 0.8125rem; margin: 1rem 0 0; }
.y-cookie-consent-open { overflow: hidden; }
.y-site-footer__bottom a, .y-site-footer__link-button { color: var(--yusticium-muted); text-decoration: none; text-underline-offset: 0.18em; }
.y-site-footer__bottom a:hover, .y-site-footer__bottom a:focus-visible, .y-site-footer__link-button:hover, .y-site-footer__link-button:focus-visible { color: var(--yusticium-ink); text-decoration: underline; }
.y-site-footer__link-button { background: transparent; border: 0; cursor: pointer; font-family: inherit; padding: 0; text-align: left; }
.y-external-content-placeholder { background: #f4f1e9; border: 1px solid var(--yusticium-border, #d6d5ce); padding: 1.25rem; }
.y-external-content-placeholder p { margin-top: 0; }
.y-external-content-placeholder button { background: var(--yusticium-brand, #1f5146); border: 1px solid var(--yusticium-brand, #1f5146); color: #fff; }

@media (max-width: 900px) {
  .y-legal__content { grid-template-columns: 1fr; }
  .y-legal__toc { display: none; }
}

@media (max-width: 600px) {
  .y-cookie-consent { align-items: end; padding: 0; }
  .y-cookie-consent__panel { max-height: 92vh; overflow-y: auto; }
  .y-cookie-consent__actions { align-items: stretch; flex-direction: column; }
}
