/* Generated by scripts/build-web-css.py; edit Styles/ sources. */
@layer pages {
  /* Marketing + public chrome styles extracted from app.css.
   Workspace/admin pages continue to load app.css. */

  /* Public pages do not load app.css, so its polish aliases must be available
   here as well. Without them, menu overlay backgrounds resolve as invalid and
   become transparent over the page content. */
  :root {
    --polish-page: var(--color-page);
    --polish-surface: var(--color-surface);
    --polish-surface-muted: var(--color-surface-muted);
    --polish-text: var(--color-text);
    --polish-text-secondary: var(--color-text-secondary);
    --polish-text-muted: var(--color-text-tertiary);
    --polish-line: var(--color-border);
    --polish-line-strong: var(--color-rule-2);
  }

  .ui-empty-state {
    display: grid;
    place-items: center;
    text-align: center;
    gap: 10px;
    padding: 48px 24px;
    border: 1px dashed var(--border, var(--color-rule));
    border-radius: 16px;
    background: var(--background, var(--color-paper));
  }

  .ui-empty-state h2 {
    margin: 4px 0 0;
    font-family: var(--font-sans, Inter, sans-serif);
    font-size: 1.1rem;
  }

  .ui-empty-state p {
    max-width: 48rem;
    margin: 0;
    color: var(--muted-foreground);
    font-size: 0.88rem;
    line-height: 1.65;
  }

  .ui-empty-state .button {
    margin-top: 8px;
  }

  [data-microinteractions="true"] .button,
  [data-microinteractions="true"] button,
  [data-microinteractions="true"] summary {
    transition:
      transform 0.16s ease,
      box-shadow 0.16s ease,
      border-color 0.16s ease,
      background-color 0.16s ease;
  }

  [data-microinteractions="true"] details[open] > .account-menu-panel {
    animation: experience-pop 0.16s ease-out both;
  }

  main > section {
    content-visibility: auto;
    contain-intrinsic-size: auto 480px;
  }

  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      scroll-behavior: auto;
      animation-duration: 0.001ms;
      animation-iteration-count: 1;
      transition-duration: 0.001ms;
    }
    [data-microinteractions="true"] .button:hover,
    [data-microinteractions="true"] button:hover {
      transform: none;
    }
  }

  .footer-cookie-settings {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .footer-cookie-settings .ui-icon {
    width: 14px;
    height: 14px;
  }

  .public-info-page {
    padding: clamp(4rem, 8vw, 7rem) 0;
    background: linear-gradient(
      180deg,
      var(--surface, var(--color-paper)) 0%,
      var(--surface-subtle, var(--color-paper)) 100%
    );
  }

  .public-info-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  .public-info-shell.narrow {
    max-width: 64rem;
  }

  .public-info-hero {
    max-width: 64rem;
  }

  .public-info-hero h1 {
    margin: 0.55rem 0 0.85rem;
    font-size: clamp(2.3rem, 5vw, 4.6rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
  }

  .public-info-hero p {
    max-width: 48rem;
    margin: 0;
    font-size: clamp(1rem, 1.7vw, 1.2rem);
    line-height: 1.75;
    color: var(--text-muted);
  }

  .faq-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  @media (max-width: 48rem) {
    .faq-grid {
      grid-template-columns: 1fr;
    }  }
}

/* Public detail, policy, article, pricing, and directory components. */
@layer pages {
  :where(
    h1,
    h2,
    h3,
    .hero-title,
    .public-info-hero h1
  ) {
    min-width: 0;
    overflow-wrap: anywhere;
    text-wrap: balance;
    font-style: normal;
  }

  :where(.legal-content, .article-body, .prose, .public-info-shell.narrow) {
    max-width: 65ch;
  }

  :where(
    .button,
    .mobile-main-link,
    .footer-cookie-settings,
    .ui-segmented > button,
    .ui-segmented > a
  ) {
    max-width: 100%;
    white-space: nowrap;
  }

  :where(
    .ui-card,
    .form-card,
    .public-form-card,
    .faq-card
  ) {
    border-color: var(--color-rule);
    box-shadow: var(--shadow-sm);
  }

  :where(
      .ui-card,
      .form-card,
      .public-form-card,
      .faq-card
    )
    > :first-child {
    margin-block-start: 0;
  }

  :where(
      .ui-card,
      .form-card,
      .public-form-card,
      .faq-card
    )
    > :last-child {
    margin-block-end: 0;
  }

  @media (hover: hover) and (pointer: fine) {
    .button:not(:disabled, [aria-disabled="true"]):hover {
      border-color: var(--color-accent-hover);
      background: var(--color-accent-hover);
      color: var(--color-accent-ink);
      box-shadow: none;
      transform: none;
    }
    .button:is(.outline, .ghost):not(:disabled, [aria-disabled="true"]):hover {
      border-color: var(--color-rule-2);
      background: var(--color-paper-3);
      color: var(--color-ink);
    }
    .button.danger:not(:disabled, [aria-disabled="true"]):hover {
      border-color: var(--color-danger);
      background: var(--color-danger);
      color: var(--color-paper);
    }
    .button.danger.outline:not(:disabled, [aria-disabled="true"]):hover {
      background: var(--color-danger-soft);
      color: var(--color-danger);
    }
    :where(.icon-button, .footer-cookie-settings):not(:disabled, [aria-disabled="true"]):hover {
      color: var(--color-accent);
    }
    :where(.policy-card a):hover {
      border-color: var(--color-rule-2);
      box-shadow: var(--shadow-md);
      transform: translateY(-1px);
    }
    :where(tbody tr):hover {
      background: color-mix(in oklch, var(--color-accent) 3.5%, transparent);
    }
  }

  @media (pointer: coarse) {
    :where(
      .button,
      .icon-button,
      .nav-toggle,
      .footer-cookie-settings,
      summary,
      [role="button"]
    ) {
      min-block-size: 44px;
    }
    :where(.brand, .mobile-main-link, .mobile-submenu a, .site-footer a) {
      min-block-size: 44px;
      align-items: center;
    }
    :where(.site-footer a, .footer-cookie-settings) {
      display: inline-flex;
      padding-block: 10px;
    }
    :where(input[type="checkbox"], input[type="radio"]) {
      min-width: 0;
      min-height: 22px;
    }
  }

  @media (max-width: 48rem) {
    html {
      scroll-padding-top: 4.5rem;
    }
    :where(button, .button, .icon-button, .nav-toggle, summary, [role="button"]) {
      min-block-size: 44px;
    }
    .button.small,
    .nav-actions .button.small,
    .ui-segmented > button,
    .ui-segmented > a {
      min-height: 44px;
    }
    .icon-button,
    .nav-toggle,
    .brand {
      min-width: 0;
    }
    :where(
      .brand,
      .mobile-main-link,
      .mobile-submenu a,
      .site-footer a
    ) {
      min-block-size: 44px;
      align-items: center;
    }
    :where(.brand, .site-footer a) {
      display: flex;
    }
    :where(.site-footer a, .footer-cookie-settings) {
      padding-block: 10px;
    }
    :where(input[type="checkbox"], input[type="radio"]) {
      min-width: 0;
      min-height: 22px;
    }
    :where(.shell, .public-info-shell) {
      min-width: 0;
    }
    :where(.marketing-section, .public-info-page) {
      padding-block: clamp(3rem, 12vw, 4.5rem);
    }
    :where(.section-heading) {
      align-items: flex-start;
      flex-direction: column;
    }
    :where(.section-heading) > .button {
      width: 100%;
    }
    :where(.faq-grid) {
      grid-template-columns: minmax(0, 1fr);
    }
    :where(table) {
      max-width: 100%;
    }

  }

  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
      scroll-behavior: auto !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 100ms !important;
    }
    :where(.button, .icon-button):is(:hover, :active) {
      transform: none !important;
    }
  }

  .button:is(:disabled, [aria-disabled="true"]) {
    opacity: 0.68;
  }

  .desktop-nav > a {
    color: var(--polish-text-secondary);
    font-weight: 600;
  }

  .account-menu-panel {
    border-color: var(--polish-line-strong);
    background: var(--polish-surface);
  }

  .mobile-main-link {
    color: var(--polish-text-secondary);
  }

  .site-footer {
    background: var(--color-ink);
    color: var(--color-on-dark);
  }

  .site-footer :where(p, a, small, .footer-bottom, .footer-address) {
    color: var(--color-on-dark-muted);
  }

  .site-footer a:hover,
  .site-footer button:hover {
    color: var(--color-paper);
  }

  .site-footer h4 {
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .footer-brand-block > p:first-of-type {
    max-width: 34ch;
    color: var(--color-paper);
  }

  .footer-address {
    line-height: 1.75;
  }

  .footer-bottom {
    border-top-color: color-mix(in oklch, var(--color-paper) 18%, transparent);
  }

  .footer-cookie-settings {
    color: var(--color-on-dark-muted);
  }

  :where(.pricing-page, .public-info-page, .policies-page, .legal-page) {
    background: var(--polish-page);
  }

  .public-info-hero p {
    color: var(--polish-text-muted);
  }

  .section-kicker,
  .eyebrow,
  .legal-kicker,
  .policy-card-category {
    color: var(--color-accent-hover);
  }

  :where(
    .faq-card,
    .public-form-card
  ) {
    border-color: var(--polish-line);
    background: var(--polish-surface);
    box-shadow:
      0 1px 2px color-mix(in oklch, var(--color-ink) 4%, transparent),
      0 10px 30px color-mix(in oklch, var(--color-ink) 4%, transparent);
  }

  :where(
    .faq-card
  ) {
    transition:
      border-color var(--dur-short) var(--ease-out),
      box-shadow var(--dur-short) var(--ease-out),
      transform var(--dur-short) var(--ease-out);
  }

  :where(
    .faq-card
  )
    p {
    color: var(--polish-text-muted);
  }

  :where(
    .faq-card
  )
    :where(h2, h3, h4, strong) {
    color: var(--polish-text);
  }

  .text-link,
  .policy-inline-links a,
  .prose a {
    color: var(--color-link);
    font-weight: 650;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #pricing-plans {
    scroll-margin-top: calc(var(--space-2xl) + var(--space-lg));
  }

  @media (max-width: 48rem) {
    .auth-back-link {
      min-width: var(--control-height);
      min-height: var(--control-height);
      justify-content: center;
    }
  }

  .status-badge.muted,
  .status.false {
    color: var(--polish-text-secondary);
  }

  .policies-page,
  .legal-page {
    padding: clamp(3.75rem, 7vw, 6.5rem) 0 clamp(5rem, 9vw, 8rem);
  }

  .policies-shell,
  .legal-shell {
    display: grid;
    gap: clamp(2.25rem, 5vw, 4.5rem);
  }

    .policies-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
    align-items: end;
    gap: clamp(2rem, 6vw, 5rem);
    padding-bottom: clamp(2rem, 4vw, 3.5rem);
    border-bottom: 1px solid var(--polish-line);
  }
  .policies-hero h1 {
    max-width: 13ch;
    margin: 0.55rem 0 1rem;
    font-family: var(--font-display);
    font-size: clamp(3rem, 7vw, 6rem);
    font-weight: 500;
    line-height: 0.98;
    letter-spacing: -0.045em;
  }
  .policies-hero > div > p {
    max-width: 64ch;
    margin: 0;
    color: var(--polish-text-muted);
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.75;
  }

  .policies-contact-card {
    padding: 1.35rem;
    border: 1px solid var(--polish-line);
    border-radius: var(--radius-card);
    background: var(--polish-surface);
    box-shadow: var(--shadow-sm);
  }

  .policies-contact-card > span {
    display: block;
    color: var(--polish-text-muted);
    font-size: 0.76rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.07em;
  }

  .policies-contact-card > strong {
    display: block;
    margin: 0.45rem 0 0.35rem;
    overflow-wrap: anywhere;
    font-size: 1rem;
  }

  .policies-contact-card > p {
    margin: 0;
    color: var(--polish-text-muted);
    font-size: 0.85rem;
    line-height: 1.55;
  }

  .policies-contact-card > a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 1rem;
    color: var(--color-accent-hover);
    font-size: 0.85rem;
    font-weight: 750;
  }

  .policies-contact-card .ui-icon {
    width: 15px;
    height: 15px;
  }

  .policies-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  .policy-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "icon category category" "icon title arrow" "icon copy copy" "icon link link";
    align-items: start;
    gap: 0.35rem 1rem;
    padding: 1.4rem;
    border: 1px solid var(--polish-line);
    border-radius: var(--radius-card);
    background: var(--polish-surface);
    box-shadow: var(--shadow-sm);
  }

  .policy-card-icon {
    grid-area: icon;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 13px;
    background: var(--color-accent-soft);
    color: var(--color-accent-hover);
  }

  .policy-card-icon .ui-icon {
    width: 20px;
    height: 20px;
  }

  .policy-card-category {
    grid-area: category;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  .policy-card > strong {
    grid-area: title;
    font-size: 1.08rem;
    line-height: 1.35;
  }

  .policy-card > p {
    grid-area: copy;
    margin: 0.2rem 0 0;
    color: var(--polish-text-muted);
    font-size: 0.88rem;
    line-height: 1.65;
  }

  .policy-card::after {
    grid-area: arrow;
    align-self: center;
    color: var(--polish-text-muted);
    content: "↗";
    font-size: 1rem;
  }

  .policy-card-link {
    grid-area: link;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
    color: var(--color-accent-hover);
    font-size: 0.8rem;
    font-weight: 750;
  }

  .policy-card-link .ui-icon {
    width: 14px;
    height: 14px;
  }

  .policies-principles {
    display: grid;
    gap: 1.5rem;
    padding-top: 1rem;
  }
  .policies-principles > .legal-section-heading {
    border-top: 1px solid var(--polish-line);
    padding-top: 2.5rem;
  }
  .policies-principles > div:last-child {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
  .policies-principles article {
    padding: 1.25rem;
    border-left: 2px solid var(--color-accent);
    background: color-mix(in oklch, var(--color-accent-soft) 38%, transparent);
  }
  .policies-principles article strong {
    font-size: 0.95rem;
  }
  .policies-principles article p {
    margin: 0.5rem 0 0;
    color: var(--polish-text-muted);
    font-size: 0.84rem;
    line-height: 1.65;
  }

  .legal-shell {
    max-width: 90rem;
  }

  .legal-breadcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    color: var(--polish-text-muted);
    font-size: 0.78rem;
  }

  .legal-breadcrumbs a {
    color: var(--polish-text-secondary);
    font-weight: 650;
  }

  .legal-breadcrumbs a:hover {
    color: var(--color-accent-hover);
  }

  .legal-breadcrumbs .ui-icon {
    width: 13px;
    height: 13px;
    opacity: 0.72;
  }

  .legal-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
    align-items: end;
    gap: clamp(2rem, 6vw, 5rem);
    padding-bottom: clamp(2rem, 4vw, 3.5rem);
    border-bottom: 1px solid var(--polish-line);
  }

  .legal-hero-copy h1 {
    max-width: 17ch;
    margin: 0.65rem 0 1rem;
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 6vw, 5.4rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.04em;
  }

  .legal-hero-copy > p {
    max-width: 62ch;
    margin: 0;
    color: var(--polish-text-muted);
    font-size: clamp(1rem, 1.6vw, 1.16rem);
    line-height: 1.75;
  }

  .legal-kicker {
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .legal-meta {
    display: grid;
    gap: 0.85rem;
    margin: 0;
    padding: 1.2rem 1.25rem;
    border: 1px solid var(--polish-line);
    border-radius: var(--radius-card);
    background: var(--polish-surface);
  }

  .legal-meta > div {
    display: grid;
    grid-template-columns: 98px minmax(0, 1fr);
    gap: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--polish-line);
  }

  .legal-meta > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .legal-meta dt {
    color: var(--polish-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
  }

  .legal-meta dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--polish-text-secondary);
    font-size: 0.78rem;
    font-weight: 650;
    text-align: right;
  }

  .legal-meta a {
    color: var(--color-accent-hover);
  }

  .legal-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 720px);
    justify-content: center;
    align-items: start;
    gap: clamp(2rem, 6vw, 5rem);
  }

  .legal-toc {
    position: sticky;
    top: 104px;
    display: grid;
    gap: 0.8rem;
    padding: 1rem 0;
    border-top: 1px solid var(--polish-line);
    border-bottom: 1px solid var(--polish-line);
  }

  .legal-toc > strong {
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  .legal-toc nav {
    display: grid;
    gap: 0.12rem;
    max-height: calc(100svh - 170px);
    overflow: auto;
  }

  .legal-toc a {
    padding: 0.42rem 0.55rem;
    border-left: 2px solid transparent;
    color: var(--polish-text-muted);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  .legal-toc a.level-3 {
    padding-left: 1rem;
    font-size: 0.72rem;
  }

  .legal-toc a:hover {
    border-left-color: var(--color-accent);
    background: var(--color-accent-soft);
    color: var(--color-accent-hover);
  }

  .legal-document {
    min-width: 0;
  }

  .legal-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.8rem;
    margin-bottom: 2rem;
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in oklch, var(--color-accent) 28%, var(--polish-line));
    border-radius: var(--radius-sm);
    background: color-mix(in oklch, var(--color-accent-soft) 42%, var(--polish-surface));
  }

  .legal-note .ui-icon {
    width: 18px;
    height: 18px;
    margin-top: 0.18rem;
    color: var(--color-accent-hover);
  }

  .legal-note p {
    margin: 0;
    color: var(--polish-text-secondary);
    font-size: 0.82rem;
    line-height: 1.65;
  }

  .legal-prose {
    max-width: none !important;
    color: var(--polish-text-secondary);
    font-family: var(--font-body) !important;
    font-size: 1rem;
    line-height: 1.84;
  }

  .legal-prose > :first-child {
    margin-top: 0;
  }

  .legal-prose h2 {
    margin: 2.6rem 0 0.8rem;
    padding-top: 0.4rem;
    color: var(--polish-text);
    font-size: 1.45rem;
    line-height: 1.25;
    letter-spacing: -0.015em;
  }

  .legal-prose h3 {
    margin: 2rem 0 0.65rem;
    color: var(--polish-text);
    font-size: 1.08rem;
  }

  .legal-prose p {
    margin: 1rem 0;
  }

  .legal-prose ul,
  .legal-prose ol {
    padding-left: 1.35rem;
  }

  .legal-prose li {
    padding-left: 0.2rem;
  }

  .legal-prose strong {
    color: var(--polish-text);
    font-weight: 750;
  }

  .legal-prose blockquote {
    border-left-color: var(--color-accent);
    background: var(--color-paper-2);
    color: var(--polish-text-secondary);
  }

  .legal-prose .prose-table-wrap {
    border-color: var(--polish-line-strong);
  }

  .legal-prose th {
    background: var(--color-paper-3);
    color: var(--polish-text);
  }

  .legal-prose td {
    color: var(--polish-text-secondary);
  }

  .legal-help {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    margin-top: 3.5rem;
    padding: 1.4rem;
    border: 1px solid var(--polish-line);
    border-radius: var(--radius-card);
    background: var(--color-paper-2);
  }

  .legal-help-label {
    color: var(--color-accent-hover);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .legal-help h2 {
    margin: 0.25rem 0 0;
    font-family: var(--font-body);
    font-size: 1.05rem;
  }

  .legal-help p {
    margin: 0.45rem 0 0;
    color: var(--polish-text-muted);
    font-size: 0.82rem;
    line-height: 1.6;
  }

  .legal-related {
    display: grid;
    gap: 1.25rem;
    padding-top: 2.25rem;
    border-top: 1px solid var(--polish-line);
  }

  .legal-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
  }

  .legal-section-heading > div > span {
    color: var(--color-accent-hover);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .legal-section-heading h2 {
    margin: 0.35rem 0 0;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 500;
    line-height: 1.1;
  }

  .legal-section-heading > a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--color-accent-hover);
    font-size: 0.8rem;
    font-weight: 750;
  }

  .legal-section-heading .ui-icon {
    width: 14px;
    height: 14px;
  }

  .legal-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.85rem;
  }

  .legal-related-grid > a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem 0.8rem;
    padding: 1.15rem;
    border: 1px solid var(--polish-line);
    border-radius: var(--radius-sm);
    background: var(--polish-surface);
  }

  .legal-related-grid strong {
    font-size: 0.9rem;
  }

  .legal-related-grid span {
    grid-column: 1/-1;
    color: var(--polish-text-muted);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  .legal-related-grid .ui-icon {
    width: 15px;
    height: 15px;
    color: var(--polish-text-muted);
  }

  @media (hover: hover) and (pointer: fine) {
    .policy-card:hover,
    .legal-related-grid > a:hover {
      border-color: var(--polish-line-strong);
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }
    .policy-card:hover::after {
      color: var(--color-accent-hover);
    }
    .policies-contact-card > a:hover,
    .legal-section-heading > a:hover {
      color: var(--color-link-hover);
    }
    .error-button.primary:hover {
      border-color: var(--color-accent-hover);
      background: var(--color-accent-hover);
    }
    .error-button.secondary:hover {
      border-color: var(--color-accent);
      background: var(--color-accent-soft);
    }
  }

  @media (max-width: 64rem) {
    .policies-hero,
    .legal-hero {
      grid-template-columns: minmax(0, 1fr);
    }
    .policies-contact-card,
    .legal-meta {
      max-width: 48rem;
    }
    .legal-layout {
      grid-template-columns: minmax(0, 720px);
    }
    .legal-toc {
      position: static;
      display: none;
    }
    .legal-related-grid,
    .policies-principles > div:last-child {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 48rem) {
    .policies-page,
    .legal-page {
      padding: 3rem 0 4.5rem;
    }
    .policies-shell,
    .legal-shell {
      gap: 2.25rem;
    }
    .policies-grid {
      grid-template-columns: minmax(0, 1fr);
    }
    .legal-section-heading {
      align-items: flex-start;
      flex-direction: column;
    }
    .legal-help {
      grid-template-columns: minmax(0, 1fr);
    }
    .legal-help .button {
      width: 100%;
    }
    .policy-card {
      padding: 1.15rem;
    }
    .error-help {
      position: static;
      justify-content: center;
      margin-top: 1rem;
    }
    .error-page-main {
      align-content: center;
      place-items: stretch;
    }
  }

  @media (max-width: 30rem) {
    .legal-meta > div {
      grid-template-columns: minmax(0, 1fr);
    }
    .legal-meta dd {
      text-align: left;
    }
    .error-panel {
      padding: 2rem 1.35rem;
      border-radius: var(--radius-lg);
    }
    .error-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }
    .error-button {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .policy-card,
    .legal-related-grid > a,
    .error-button {
      transition: none !important;
    }
    .policy-card:hover,
    .legal-related-grid > a:hover {
      transform: none;
    }
  }
}
