/* Shared site shell. Reusable sections live in src/styles/blaze/kit.css. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body {
  margin: 0;
  background: var(--blaze-background);
  color: var(--blaze-text);
  font: 400 var(--blaze-body)/1.4 var(--blaze-font);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
h1, h2, h3 { font-weight: 300; text-wrap: balance; }
h1 { font-size: var(--blaze-h1); line-height: 1; letter-spacing: -0.05em; }
h2 { font-size: var(--blaze-h2); line-height: 1.02; letter-spacing: -0.04em; }
h3 { font-size: var(--blaze-h3); line-height: 1.1; letter-spacing: -0.045em; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
svg { display: block; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible,
[tabindex]:not([tabindex='-1']):focus-visible { outline: 3px solid var(--blaze-focus); outline-offset: 5px; box-shadow: var(--blaze-focus-shadow); }
.blaze-container { width: 100%; max-width: var(--blaze-container); padding-inline: var(--blaze-gutter); margin-inline: auto; }
.blaze-skip { position: fixed; inset: -100px auto auto 20px; z-index: 100; padding: 16px; background: var(--blaze-ink); color: var(--blaze-white); }
.blaze-skip:focus { top: 12px; }
.blaze-header { min-height: 68px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--blaze-border); background: var(--blaze-background); position: relative; z-index: 20; }
.blaze-header--overlay { position: absolute; inset: 0 0 auto; color: var(--blaze-white); border-color: #ffffff14; background: #1010100c; }
.blaze-logo { width: 86px; height: auto; }
.blaze-nav, .blaze-header-actions { display: flex; align-items: center; gap: 24px; }
.blaze-nav { font: 500 14px/1.4 var(--blaze-font-ui); }
.blaze-nav > a:hover { text-decoration: underline; text-underline-offset: 4px; }
.blaze-menu { display: none; }
.blaze-footer { background: var(--blaze-ink); color: var(--blaze-gray-light); padding-block: 32px; font-size: 13px; }
.blaze-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.blaze-footer nav { display: flex; flex-wrap: wrap; gap: 24px; }
.blaze-footer a:hover { color: var(--blaze-white); text-decoration: underline; }
.blaze-footer .blaze-logo { width: 112px; }
.blaze-footer-meta { margin-top: 24px; display: flex; justify-content: space-between; gap: 20px; }
.blaze-footer-meta a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  h1 { line-height: 1.02; }
  .blaze-header { padding-inline: 20px; gap: 16px; }
  .blaze-nav { display: none; }
  .blaze-header-actions { gap: 16px; }
  .blaze-menu { display: block; }
  .blaze-menu summary { cursor: pointer; list-style: none; font: 500 14px/1.4 var(--blaze-font-ui); min-height: 44px; display: flex; align-items: center; gap: 8px; }
  .blaze-menu summary::-webkit-details-marker { display: none; }
  .blaze-menu summary::after { content: '+'; font-size: 22px; }
  .blaze-menu[open] summary::after { content: '−'; }
  .blaze-menu nav { position: absolute; top: 100%; left: 0; right: 0; padding: 16px 24px; background: var(--blaze-ink); color: var(--blaze-white); border-block: 1px solid #ffffff1f; display: grid; gap: 4px; box-shadow: 0 12px 24px #0002; }
  .blaze-menu nav a { min-height: 44px; display: flex; align-items: center; }
  .blaze-footer-inner, .blaze-footer-meta { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media (max-width: 360px) {
  .blaze-header { padding-inline: 16px; gap: 12px; }
  .blaze-header .blaze-logo { width: 68px; }
  .blaze-header-actions { gap: 12px; }
  .blaze-header .blaze-button--small { padding-inline: 12px; font-size: 13px; }
}
