/* Public Kiriweb pages: retain the existing light leaf/sky identity and content order.
 * Home shares browser chrome only; its content stays in home-design.css.
 * Existing reading widths, screenshots, data, prices and interactions are preserved.
 */
body.public-page {
  --public-ink: #202b28;
  --public-muted: #555e59;
  --public-line: #dce4df;
  --public-surface: #f7faf8;
  --public-leaf: #456e25;
  --public-sky: #1d6398;
  --public-gutter: clamp(1rem, 3vw, 2rem);
  color-scheme: light;
  accent-color: var(--public-leaf);
  caret-color: var(--public-leaf);
  scrollbar-color: #a8b5ac var(--public-surface);
}
.public-page ::selection { background: #d5eac3; color: var(--public-ink); }
.public-page ::-moz-selection { background: #d5eac3; color: var(--public-ink); }
.public-page :where(a[href], button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--public-leaf);
  outline-offset: 3px;
}
.public-page a { text-underline-offset: .2em; }
.public-page > header { border-bottom-color: var(--public-line); }
.public-page > header nav[aria-label="주요 메뉴"] { line-height: 1.5; }
.public-page > footer { border-top-color: var(--public-line); }
.public-page > footer :where(p, dl, nav) { line-height: 1.7; }
.public-page > footer dl { color: var(--public-muted); }
.public-page > footer :where(a, dd) { overflow-wrap: anywhere; }

/* Shared rhythm; the max-width on each incumbent main remains authoritative. */
.public-page:not(.site-refresh) > main {
  padding-inline: var(--public-gutter);
  padding-block-start: 3rem;
  padding-block-end: 4.5rem;
}
.public-page:not(.site-refresh) > nav[aria-label="현재 위치"] {
  padding-inline: var(--public-gutter);
  padding-block-start: 1.5rem;
  line-height: 1.65;
}
.public-page:not(.site-refresh).public-crumbs > main { padding-block-start: 2rem; }
.public-page:not(.site-refresh).public-crumbs > main > :is(section, article):first-child {
  padding-block-start: 0;
}
.public-page:not(.site-refresh).public-profile > main > section:first-child {
  padding-block-start: 0;
}
.public-page:not(.site-refresh) main :where(h1, h2, h3) {
  color: var(--public-ink);
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-wrap: balance;
  letter-spacing: -.025em;
}
.public-page:not(.site-refresh) main h1 {
  font-size: clamp(2rem, 3.4vw, 2.75rem);
  line-height: 1.28;
}
.public-page:not(.site-refresh) main h2 { line-height: 1.4; }
.public-page:not(.site-refresh) main h3 { line-height: 1.5; }
.public-page:not(.site-refresh) main h1 + p:not(.flex) {
  max-width: 70ch;
  margin-block-start: 1.15rem;
  line-height: 1.8;
  color: var(--public-muted);
}
.public-page:not(.site-refresh) main :where(section[id], article[id], h2[id], h3[id]) {
  scroll-margin-top: 6rem;
}
.public-page:not(.site-refresh) main :where(input, select, textarea) {
  caret-color: var(--public-leaf);
}
.public-page:not(.site-refresh) main form label {
  line-height: 1.6;
  color: var(--public-ink);
}
.public-page:not(.site-refresh) main textarea { line-height: 1.75; }
.public-page:not(.site-refresh) main :where(input, textarea)::placeholder { color: #69736d; }
.public-page:not(.site-refresh) main :where(button, a)[aria-disabled="true"] { cursor: default; }

/* Galleries keep their existing images, order and column counts. */
.public-page:not(.site-refresh).public-gallery main > section + section,
.public-page:not(.site-refresh).public-template main > section + section,
.public-page:not(.site-refresh).public-demo main > section {
  margin-block-start: 3.5rem;
}
.public-page:not(.site-refresh).public-gallery main > section:nth-of-type(2) > ul > li {
  border-color: var(--public-line);
  border-radius: 1rem;
  box-shadow: none;
  transition: border-color .18s ease;
}
.public-page:not(.site-refresh).public-gallery main > section:nth-of-type(2) > ul > li:hover {
  border-color: #97b880;
  box-shadow: none;
}
.public-page:not(.site-refresh).public-gallery main > section:nth-of-type(2) > ul > li > a:focus-visible {
  outline-offset: -3px;
}
.public-page:not(.site-refresh).public-gallery main > section:nth-of-type(2) > ul > li > a > div p {
  line-height: 1.75;
}
.public-page:not(.site-refresh).public-template main section > p,
.public-page:not(.site-refresh).public-demo main > p,
.public-page:not(.site-refresh).public-guide main > p {
  max-width: 70ch;
  line-height: 1.8;
}

/* A primary demo action, then two equally reachable secondary actions. */
.public-page:not(.site-refresh).public-demo [data-choose-cards] {
  gap: 1.5rem;
}
.public-page:not(.site-refresh).public-demo [data-choose-cards] > article {
  border-color: var(--public-line);
  border-radius: 1rem;
}
.public-page:not(.site-refresh).public-demo [data-choose-cards] > article > a:focus-visible {
  outline-offset: -3px;
}
.public-page:not(.site-refresh).public-demo [data-choose-cards] > article > div > p {
  line-height: 1.75;
}
.public-page:not(.site-refresh).public-demo [data-choose-cards] dl {
  font-size: .875rem;
  line-height: 1.7;
  color: var(--public-muted);
}
.public-page:not(.site-refresh).public-demo [data-choose-cards] > article > div > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  line-height: 1.6;
}
.public-page:not(.site-refresh) .demo-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  margin-top: .5rem;
}
.public-page:not(.site-refresh) .demo-card-actions > :is(a, button) {
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: .625rem .5rem;
  border: 1px solid var(--public-line);
  border-radius: .5rem;
  color: var(--public-muted);
  line-height: 1.5;
  text-align: center;
}
.public-page:not(.site-refresh) .demo-card-actions > :is(a, button):hover {
  background: var(--public-surface);
  color: var(--public-ink);
  border-color: #97b880;
}

/* Board titles can shrink within their badge row, including unbroken input. */
.public-page:not(.site-refresh) .notice-list-title {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  line-height: 1.5;
}
.public-page:not(.site-refresh).public-board main > section:first-child > p {
  max-width: 70ch;
  line-height: 1.8;
}
.public-page:not(.site-refresh).public-board #qna-form { max-width: 48rem; }
.public-page:not(.site-refresh).public-board #qna-form label,
.public-page:not(.site-refresh).review-page .review-write label {
  font-size: .9375rem;
}
.public-page:not(.site-refresh).public-board #qna-form input:not([type="checkbox"]):not([type="radio"]),
.public-page:not(.site-refresh).public-board #qna-form select {
  min-height: 44px;
}
.public-page:not(.site-refresh).public-article .article,
.public-page:not(.site-refresh).public-article .qna-body {
  overflow-wrap: anywhere;
}
.public-page:not(.site-refresh).public-article .article :where(h2, h3) { scroll-margin-top: 6rem; }

/* Retain review reading rules while giving all public screens the same rhythm. */
.public-page:not(.site-refresh).review-page .review-summary > p,
.public-page:not(.site-refresh).review-page .review-products > p,
.public-page:not(.site-refresh).review-page .review-write > p {
  max-width: 68ch;
  line-height: 1.8;
}
.public-page:not(.site-refresh).review-page .review-entries .review-body {
  max-width: 70ch;
  font-size: 1rem;
  line-height: 1.85;
}
.public-page:not(.site-refresh).review-page .review-products > div > a {
  border-color: var(--public-line);
  border-radius: 1rem;
}
.public-page:not(.site-refresh).public-document .doc :where(h2, h3) { line-height: 1.5; }

@media (max-width: 767px) {
  .public-page:not(.site-refresh) > main {
    padding-block-start: 2rem;
    padding-block-end: 3rem;
  }
  .public-page:not(.site-refresh).public-crumbs > main { padding-block-start: 1.5rem; }
  .public-page:not(.site-refresh) > nav[aria-label="현재 위치"] { padding-block-start: 1rem; }
  .public-page:not(.site-refresh) main h1 { font-size: clamp(2rem, 7.2vw, 2.5rem); }
  .public-page:not(.site-refresh).public-gallery main > section + section,
  .public-page:not(.site-refresh).public-template main > section + section,
  .public-page:not(.site-refresh).public-demo main > section {
    margin-block-start: 2.5rem;
  }
  .public-page:not(.site-refresh).public-demo [data-choose-cards] > article > div {
    padding: 1.25rem;
  }
  .public-page:not(.site-refresh).public-guide main > section { margin-block-start: 3rem; }
  .public-page:not(.site-refresh) > footer { padding-inline: var(--public-gutter); }
  .public-page:not(.site-refresh) > footer nav[aria-label="채널 바로가기"] {
    column-gap: 1.25rem;
    row-gap: .25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .public-page:not(.site-refresh).public-gallery main > section:nth-of-type(2) > ul > li {
    transition: none;
  }
}
