@charset "utf-8";
/* ==========================================================================
   themes/lampstand — page.css (LAMPSTAND-INTEGRATED-R03, Agent B)
   Static pages: core markup `article.page.page--default > header.page__header
   > h1.page__title` + `div.page__body` (WYSIWYG or page-builder blocks).
   Body class is `page-<slug>` (e.g. page-gibu), so everything is scoped to
   the article, not to a body class. The container / top padding below the
   sub-hero come from base.css (`body:not(.page-home) .lp-content`).
   front.css already supplies figure alignment, embeds, code, task lists and
   the table scroll wrapper (.cms-table-wrap); this file only themes them.
   ========================================================================== */

.theme--lampstand .page {
  max-width: 820px;             /* ~ 45 Korean chars / 70ch: readable measure */
  margin-inline: auto;
}

/* Title: visible when there is no sub-hero (no JS); theme.js turns it into a
   visually hidden h1 when the band shows the same text. */
.theme--lampstand .page__header { margin: 0 0 var(--ls-space-6); }
.theme--lampstand .page__title {
  margin: 0;
  padding-bottom: var(--ls-space-4);
  border-bottom: 1px solid var(--ls-c-line);
  font-size: var(--ls-fs-2xl);
  font-weight: 800;
  letter-spacing: -.025em;
  color: var(--ls-c-primary-ink);
}
.theme--lampstand .page__header:has(> .ls-h1-in-subhero:only-child) { margin: 0; }

/* ---- Body typography ----------------------------------------------------- */
.theme--lampstand .page__body {
  color: var(--ls-c-ink);
  font-size: var(--ls-fs-base);
  line-height: 1.85;
}
.theme--lampstand .page__body > :first-child { margin-top: 0; }
.theme--lampstand .page__body > :last-child { margin-bottom: 0; }

.theme--lampstand .page__body h2 {
  position: relative;
  margin: 2.2em 0 .8em;
  padding-left: var(--ls-space-4);
  font-size: var(--ls-fs-xl);
  line-height: 1.35;
  color: var(--ls-c-primary-ink);
}
.theme--lampstand .page__body h2::before {
  content: "";
  position: absolute; left: 0; top: .2em; bottom: .2em;
  width: 4px; border-radius: 4px;
  background: var(--ls-c-primary);
}
.theme--lampstand .page__body h3 {
  margin: 1.9em 0 .6em;
  font-size: var(--ls-fs-lg);
  color: var(--ls-c-ink);
}
.theme--lampstand .page__body h4,
.theme--lampstand .page__body h5,
.theme--lampstand .page__body h6 {
  margin: 1.6em 0 .5em;
  font-size: var(--ls-fs-base);
  color: var(--ls-c-ink);
}
.theme--lampstand .page__body p { margin: 0 0 1.1em; }
.theme--lampstand .page__body a {
  color: var(--ls-c-primary);
  text-decoration: underline;
  font-weight: 600;
}
.theme--lampstand .page__body a:hover { color: var(--ls-c-primary-ink); text-decoration-thickness: 2px; }

.theme--lampstand .page__body ul:not([data-type="taskList"]),
.theme--lampstand .page__body ol {
  margin: 0 0 1.2em;
  padding-left: 1.5em;
}
.theme--lampstand .page__body li { margin: .3em 0; }
.theme--lampstand .page__body li::marker { color: var(--ls-c-primary); }
.theme--lampstand .page__body li > ul,
.theme--lampstand .page__body li > ol { margin: .3em 0 0; }

.theme--lampstand .page__body blockquote {
  margin: 1.6em 0;
  padding: var(--ls-space-4) var(--ls-space-5);
  border-left: 4px solid var(--ls-c-primary);
  border-radius: 0 var(--ls-radius) var(--ls-radius) 0;
  background: var(--ls-c-primary-soft);
  color: var(--ls-c-primary-ink);
}
.theme--lampstand .page__body blockquote > :last-child { margin-bottom: 0; }

.theme--lampstand .page__body hr {
  height: 0;
  margin: 2.4em 0;
  border: 0;
  border-top: 1px solid var(--ls-c-line);
}

/* Images / media: never wider than the column. */
.theme--lampstand .page__body img,
.theme--lampstand .page__body video,
.theme--lampstand .page__body iframe { max-width: 100%; }
.theme--lampstand .page__body img { height: auto; border-radius: var(--ls-radius-sm); }
.theme--lampstand .page__body figure { margin: 1.6em 0; }
.theme--lampstand .page__body figcaption { color: var(--ls-c-ink-2); font-size: var(--ls-fs-sm); }

/* Tables: scrolling happens inside .cms-table-wrap (front.css), never the page. */
.theme--lampstand .page__body .cms-table-wrap { margin: 1.4em 0; }
.theme--lampstand .page__body table {
  width: 100%;
  margin: 1.4em 0;
  font-size: var(--ls-fs-sm);
  line-height: 1.6;
}
.theme--lampstand .page__body .cms-table-wrap > table { margin: 0; }
.theme--lampstand .page__body th,
.theme--lampstand .page__body td {
  padding: 10px 14px;
  border-color: var(--ls-c-line);
}
.theme--lampstand .page__body th {
  background: var(--ls-c-bg-soft);
  color: var(--ls-c-ink);
  font-weight: 700;
}
.theme--lampstand .page__body caption { color: var(--ls-c-ink-2); }

/* Callouts / notes */
.theme--lampstand .page__body .cms-callout {
  padding: var(--ls-space-4) var(--ls-space-5);
  border-radius: 0 var(--ls-radius) var(--ls-radius) 0;
  background: var(--ls-c-bg-soft);
}
.theme--lampstand .page__body .ls-note {
  margin: 1.6em 0 0;
  padding: var(--ls-space-3) var(--ls-space-4);
  border: 1px solid var(--ls-c-line);
  border-radius: var(--ls-radius);
  background: var(--ls-c-bg-soft);
  color: var(--ls-c-ink-2);
  font-size: var(--ls-fs-sm);
  line-height: 1.7;
}

/* Page-builder blocks inside a page */
.theme--lampstand .page__body .cms-block + .cms-block { margin-top: var(--ls-space-7); }
.theme--lampstand .page__body .cms-block .cms-btn { min-height: 44px; border-radius: 999px; }

@media (max-width: 767.98px) {
  .theme--lampstand .page__body { font-size: 1rem; line-height: 1.8; }
  .theme--lampstand .page__body h2 { margin-top: 1.8em; }
  .theme--lampstand .page__body th,
  .theme--lampstand .page__body td { padding: 8px 10px; }
}

/* ==========================================================================
   TASK-002 subordinate page shell (CSS only; markup, slots and URLs unchanged).
   Breakpoints: mobile < 768px · tablet 768–1023.98px · desktop ≥ 1024px.
   ========================================================================== */

/* Sub-hero band: accent rule beside the title, crumb wraps cleanly. */
.ls-subhero__title {
  position: relative;
  padding-left: var(--ls-space-4);
  overflow-wrap: anywhere;
}
.ls-subhero__title::before {
  content: "";
  position: absolute; left: 0; top: .18em; bottom: .18em;
  width: 4px; border-radius: 4px;
  background: var(--ls-c-accent);
}
.ls-subhero__title:empty { display: none; }
.ls-crumb ol { row-gap: 0; }
.ls-crumb li { min-width: 0; }
.ls-crumb__current { overflow-wrap: anywhere; }

/* Static page article: soft card surface on wider screens. */
.theme--lampstand .page { min-width: 0; }
.theme--lampstand .page__body { overflow-wrap: break-word; }
.theme--lampstand .page__body > p:first-child { font-size: var(--ls-fs-lg); line-height: 1.75; color: var(--ls-c-ink); }
.theme--lampstand .page__body .cms-block { min-width: 0; }

/* Generic cms sections rendered on sub pages (non-home) get card styling. */
body:not(.page-home) .lp-content > .cms-section + .cms-section { margin-top: var(--ls-space-6); }

/* ---- Desktop (≥ 1024px) -------------------------------------------------- */
@media (min-width: 1024px) {
  .theme--lampstand .page {
    padding: var(--ls-space-7) var(--ls-space-7) var(--ls-space-8);
    background: var(--ls-c-bg);
    border: 1px solid var(--ls-c-line);
    border-radius: var(--ls-radius-lg);
    box-shadow: var(--ls-shadow);
  }
}

/* ---- Tablet (768–1023.98px) ---------------------------------------------- */
@media (min-width: 768px) and (max-width: 1023.98px) {
  .theme--lampstand .page { padding: var(--ls-space-6) var(--ls-space-5); }
  .ls-subhero__inner { padding-block: calc(var(--ls-space-6) + 8px); }
}

/* ---- Mobile (< 768px) ---------------------------------------------------- */
@media (max-width: 767.98px) {
  .ls-subhero__inner { gap: var(--ls-space-2); padding-block: var(--ls-space-5); }
  .ls-subhero__title { font-size: clamp(1.5rem, 6.4vw, 1.875rem); }
  .ls-crumb ol { font-size: var(--ls-fs-xs); }
  .theme--lampstand .page__body > p:first-child { font-size: var(--ls-fs-base); }
  .theme--lampstand .page__body blockquote { padding: var(--ls-space-3) var(--ls-space-4); }
}

@media print {
  .theme--lampstand .page { padding: 0; border: 0; box-shadow: none; }
}
