/* CholloPrinting public design system. Shared by home, catalog and content pages. */
:root {
  --cp-font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cp-color-ink: #251420;
  --cp-color-body: #50434c;
  --cp-color-muted: #65545f;
  --cp-color-accent: #bf0069;
  --cp-color-accent-hover: #990054;
  --cp-color-accent-soft: #fff0f7;
  --cp-color-cyan: #41bbdb;
  --cp-color-yellow: #f8b200;
  --cp-color-paper: #fffdf9;
  --cp-color-canvas: #faf8f6;
  --cp-color-line: #e4dee1;
  --cp-content-width: 1320px;
  --cp-page-gutter: 16px;
  --cp-control-radius: 12px;
  --cp-card-radius: 18px;
}
body.cp-public-site {
  font-family: var(--cp-font-body);
  --font-body: var(--cp-font-body);
  --font-display: var(--cp-font-body);
  --color-accent-dark: var(--cp-color-accent-hover);
  --color-text-soft: var(--cp-color-muted);
  --content-max: var(--cp-content-width);
  --page-gutter: var(--cp-page-gutter);
}
.cp-public-footer {
  width: 100%; margin: 0; padding: 36px 0 20px;
  background: var(--cp-color-ink); color: #fffdf9;
  font-family: var(--cp-font-body); font-size: 14px; line-height: 1.55;
}
.cp-public-footer *, .cp-public-footer *::before, .cp-public-footer *::after { box-sizing: border-box; }
.cp-public-footer-inner {
  width: min(var(--cp-content-width), 100%); margin: 0 auto; padding: 0 var(--cp-page-gutter);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px;
}
.cp-public-footer .cp-public-footer-brand { grid-column: 1 / -1; }
.cp-public-footer .cp-public-footer-wordmark { font-size: 24px; font-weight: 850; letter-spacing: -.04em; }
.cp-public-footer-reg { position: relative; top: -.58em; margin-left: 2px; font-size: .46em; line-height: 1; font-weight: 800; }
.cp-public-footer p { margin: 8px 0; color: #e1d7de; font-size: 14px; line-height: 1.55; }
.cp-public-footer h2 { margin: 0 0 8px; color: #fffdf9; font: 750 15px/1.4 var(--cp-font-body); letter-spacing: 0; }
.cp-public-footer ul { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0; }
.cp-public-footer li { min-width: 0; margin: 0; padding: 0; list-style: none; color: inherit; }
.cp-public-footer a, .cp-public-footer button {
  display: flex; align-items: center; justify-content: flex-start;
  min-height: 44px; width: fit-content; max-width: 100%; margin: 0; padding: 7px 0;
  appearance: none; border: 0; border-radius: 0; box-shadow: none; background: transparent;
  color: #f5edf2; font: inherit; font-size: 14px; font-weight: 500; line-height: 1.45;
  text-align: left; text-transform: none; letter-spacing: 0; text-decoration: none;
  white-space: normal; overflow-wrap: anywhere; cursor: pointer;
}
.cp-public-footer a:hover, .cp-public-footer button:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.cp-public-footer :is(a,button):focus-visible { outline: 3px solid var(--cp-color-yellow); outline-offset: 4px; border-radius: 3px; }
.cp-public-footer-bottom { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid #64515e; }
.cp-public-footer-bottom > p { margin: 0 0 12px; font-size: 13px; }
.cp-public-footer-bottom ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 20px; }
.cp-public-footer-bottom :is(a,button) { font-size: 13px; }
/* Content tables are a scrollable component, never a wider mobile page. */
.cp-prose { min-width: 0; overflow-wrap: anywhere; }
.cp-table-wrap { width: 100%; max-width: 100%; margin: 20px 0; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--cp-color-line); border-radius: 12px; }
.cp-table-wrap:focus-visible { outline: 3px solid var(--cp-color-accent); outline-offset: 3px; }
.cp-table-wrap table { border-collapse: collapse; width: 100%; min-width: 620px; margin: 0; font-size: 14px; line-height: 1.5; }
.cp-table-wrap :is(th,td) { padding: 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cp-color-line); white-space: normal; overflow-wrap: anywhere; }
.cp-table-wrap th { background: var(--cp-color-accent-soft); color: var(--cp-color-ink); }
.cp-table-hint { margin: 6px 0; font-size: 13px; color: var(--cp-color-muted); }
@media (min-width: 768px) {
  :root { --cp-page-gutter: 24px; }
  .cp-public-footer { padding-top: 44px; }
  .cp-public-footer-inner { grid-template-columns: 1.2fr 1fr 1fr; gap: 28px 40px; }
  .cp-public-footer .cp-public-footer-brand { grid-column: auto; }
  .cp-public-footer-bottom ul { display: flex; flex-wrap: wrap; gap: 4px 22px; }
  .cp-table-hint { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cp-public-footer * { scroll-behavior: auto; } }
