/* Public identity/navigation only. No page layout or hero selectors. */
.public-header, .public-footer, .public-header *, .public-footer * { box-sizing: border-box; }
.public-header, .public-footer { font-family: var(--stz-font-body); }
.public-header a, .public-footer a { color: inherit; text-decoration: none; }
.public-header a:hover, .public-footer a:hover { color: inherit; text-decoration: underline; text-underline-offset: 5px; }
.public-header :focus-visible, .public-footer :focus-visible { outline: var(--stz-focus-ring); outline-offset: 5px; }
.public-header { position: relative; z-index: 5; width: 100%; min-height: 100px; display: flex; justify-content: space-between; align-items: center; gap: var(--stz-space-6); padding-inline: max(var(--stz-space-7), calc((100% - 1240px) / 2)); background: var(--stz-surface-shell); color: var(--stz-on-surface-shell); }
.public-wordmark { display: inline-flex; align-items: center; gap: var(--stz-space-2); white-space: nowrap; font-size: var(--stz-size-h5); font-weight: var(--stz-weight-bold); letter-spacing: var(--stz-tracking-h1); line-height: var(--stz-leading-dense); }
.public-wordmark .rocket-logo { width: var(--stz-logo-h); height: var(--stz-logo-h); flex-shrink: 0; fill: currentColor; }
.public-header #site-nav { display: flex; align-items: center; gap: var(--stz-space-8); font-size: var(--stz-size-small); }
.public-header #site-nav a { padding-block: var(--stz-space-2); }
.public-nav-contact { border-bottom: 1px solid currentColor; }
.public-menu-toggle { display: none; color: inherit; background: transparent; border: 1px solid currentColor; padding: var(--stz-space-2) var(--stz-space-3); min-height: 44px; font: inherit; cursor: pointer; }
.public-menu-toggle[hidden] { display: none !important; }
.public-footer { width: min(1240px, calc(100% - var(--stz-space-12))); margin-inline: auto; padding-block: var(--stz-space-12) var(--stz-space-6); border-top: 1px solid var(--stz-border-hairline); font-size: var(--stz-size-small); color: var(--stz-text); }
.public-footer-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.15fr) minmax(0, .85fr) minmax(0, .8fr); gap: var(--stz-space-7); }
.public-footer-grid > * { min-width: 0; }
.public-footer h2 { margin: 0 0 var(--stz-space-5); font-size: var(--stz-size-small); line-height: 1.4; letter-spacing: normal; font-weight: var(--stz-weight-bold); }
.public-footer p { margin: var(--stz-space-3) 0 0; }
.public-footer-description, .public-footer address { color: var(--stz-text-muted); line-height: 1.65; }
.public-footer address { font-style: normal; margin: 0 0 var(--stz-space-3); }
.public-footer nav a, .public-footer-contact > a { display: block; padding-block: var(--stz-space-2); overflow-wrap: anywhere; }
.public-footer .public-footer-book { display: inline-block; margin-top: var(--stz-space-3); border-bottom: 1px solid currentColor; }
.public-footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--stz-space-5); border-top: 1px solid var(--stz-border-hairline); margin-top: var(--stz-space-10); padding-top: var(--stz-space-5); font-size: var(--stz-size-caption); color: var(--stz-text-muted); }
.public-footer-bottom p { margin: 0; }
.public-footer-bottom nav { display: flex; flex-wrap: wrap; gap: var(--stz-space-5); }
@media (max-width: 1250px) { .public-header #site-nav { gap: var(--stz-space-4); } }
@media (max-width: 1100px) {
  .public-header { min-height: 80px; flex-wrap: wrap; padding-block: var(--stz-space-3); gap: var(--stz-space-3); }
  .public-header.public-menu-ready .public-menu-toggle { display: block; }
  .public-header #site-nav { width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding-bottom: var(--stz-space-3); }
  .public-header.public-menu-ready #site-nav { display: none; }
  .public-header.public-menu-ready #site-nav.is-open { display: flex; }
  .public-header #site-nav a { padding-block: var(--stz-space-3); min-height: 44px; }
  .public-header .public-nav-contact { align-self: flex-start; }
  .public-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--stz-space-8); }
}
@media (max-width: 600px) {
  .public-header { padding-inline: var(--stz-space-4); }
  .public-wordmark { font-size: clamp(var(--stz-size-title), 6vw, var(--stz-size-h6)); }
  .public-footer { width: calc(100% - var(--stz-space-8)); padding-top: var(--stz-space-9); }
  .public-footer-grid { gap: var(--stz-space-7) var(--stz-space-4); }
  .public-footer-identity, .public-footer-contact { grid-column: 1 / -1; }
  .public-footer h2 { margin-bottom: var(--stz-space-3); }
  .public-footer nav a, .public-footer-contact > a { min-height: 44px; }
  .public-footer-bottom { margin-top: var(--stz-space-7); }
  .public-footer-bottom nav { gap: var(--stz-space-2) var(--stz-space-5); }
}
@media print { .public-header, .public-footer { display: none; } }
