/* ============================================================
   Gessura — base chrome & WordPress furniture
   Tokens and primitives live in system.css; this sheet carries
   the page skeleton and long-form prose.
   ============================================================ */

/* -- long-form prose (journal posts, legal, prose blocks) ---- */

.g3-prose { max-width: var(--w-read); }
.g3-prose h2, .g3-prose h3 { margin-top: 1.6em; margin-bottom: .5em; }
.g3-prose h2 { font-size: clamp(26px, 2.4vw, 34px); letter-spacing: -.015em; }
.g3-prose h3 { font-size: 21px; }
.g3-prose p, .g3-prose ul, .g3-prose ol { margin: 0 0 1.1em; color: var(--ink-soft); }
.g3-prose li { margin-bottom: .4em; }
.g3-prose strong { color: var(--ink); font-weight: 700; }
.g3-prose img {
  border: 1px solid var(--line);
  margin-block: 1.6em;
}
.g3-prose blockquote {
  margin: 1.6em 0;
  padding: 4px 0 4px 22px;
  border-left: 2px solid var(--ink);
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.12em;
  color: var(--ink);
}
.g3-prose code {
  font-family: var(--font-mono);
  font-size: .88em;
  background: var(--paper-2);
  padding: 2px 6px;
  border-radius: 4px;
}
.g3-prose pre {
  background: var(--kiln);
  color: var(--paper-on-kiln);
  padding: 20px 24px;
  border-radius: var(--r-card);
  overflow-x: auto;
}
.g3-prose pre code { background: none; padding: 0; }
.g3-prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }

/* -- shared page hero (inner pages) -------------------------- */

.g3-pagehead { padding: clamp(64px, 8vw, 120px) 0 clamp(40px, 5vw, 72px); }
.g3-pagehead .g3-h1 { max-width: 15ch; }
.g3-pagehead .g3-lede, .g3-pagehead .g3-lede-serif { margin-top: 22px; }

/* -- WordPress necessities ----------------------------------- */

.alignwide { width: var(--w-base); margin-inline: auto; }
.alignfull { width: 100vw; margin-inline: calc(50% - 50vw); }
.aligncenter { margin-inline: auto; }
.screen-reader-text { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }

/* admin bar offset */
body.admin-bar .g3-masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar .g3-masthead { top: 46px; } }

/* -- studio page: app mode drops marketing chrome ------------ */

body.ms-app .g3-foot { display: none; }
/* The SPA shell sizes itself to the viewport (100dvh − measured offset);
   forcing a min-height here only adds dead scroll below the app. */
body.ms-app #g3-content { min-height: 0; }

/* -- notices (Woo + forms) ----------------------------------- */

.woocommerce-message, .woocommerce-info, .woocommerce-error li, .g3-notice {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-ctl);
  padding: 14px 18px;
  margin: 0 0 18px;
  list-style: none;
  color: var(--ink);
}
.woocommerce-error { padding: 0; margin: 0 0 18px; }
.woocommerce-error li { border-left-color: var(--danger); }
