/* UI Vault Blocks — section layouts. Requires lib/uivault.css.
   Every block is wrapped in .blk, a size container, so layouts respond to the
   block's own width (works inside the preview frame and in your page). */
.blk { container-type: inline-size; background: var(--uv-bg); color: var(--uv-text); font-family: var(--uv-font); }
.blk *, .blk *::before, .blk *::after { box-sizing: border-box; }
.b-in { max-width: 1120px; margin: 0 auto; padding: 72px 32px; }
.b-in--sm { padding-top: 20px; padding-bottom: 20px; }
.b-in--tight { padding-top: 40px; padding-bottom: 40px; }
.b-kicker { margin: 0 0 14px; font: 500 12px var(--uv-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--uv-muted); }
.b-kicker b { color: var(--uv-accent); font-weight: 500; }
.b-title { margin: 0; font: 400 clamp(40px, 7cqi, 88px)/.95 var(--uv-serif); letter-spacing: -.025em; }
.b-title em, .b-h2 em { color: var(--uv-muted); }
.b-h2 { margin: 0; font: 400 clamp(32px, 5cqi, 56px)/1 var(--uv-serif); letter-spacing: -.02em; }
.b-h3 { margin: 0 0 6px; font: 600 16px/1.3 var(--uv-font); }
.b-lead { margin: 18px 0 0; max-width: 560px; font-size: 18px; line-height: 1.55; color: var(--uv-muted); }
.b-p { margin: 0; color: var(--uv-muted); font-size: 15px; line-height: 1.55; }
.b-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.b-rule { border: 0; border-top: 1px solid var(--uv-text); margin: 0; }
.b-center { text-align: center; } .b-center .b-lead { margin-left: auto; margin-right: auto; } .b-center .b-actions { justify-content: center; }
.b-mono { font-family: var(--uv-mono); }
.b-num { font: 400 64px/1 var(--uv-serif); letter-spacing: -.02em; }
/* grids collapse by container width */
.b-g2, .b-g3, .b-g4, .b-split, .b-split-r { display: grid; gap: 24px; }
.b-g2 { grid-template-columns: repeat(2, 1fr); }
.b-g3 { grid-template-columns: repeat(3, 1fr); }
.b-g4 { grid-template-columns: repeat(4, 1fr); }
.b-split { grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.b-split-r { grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.b-ruled > * { padding: 20px 0 0; border-top: 1px solid var(--uv-line-2); }
.b-cells { gap: 0; border-top: 1px solid var(--uv-line-2); border-left: 1px solid var(--uv-line-2); }
.b-cells > * { padding: 24px; border-right: 1px solid var(--uv-line-2); border-bottom: 1px solid var(--uv-line-2); }
/* placeholder media: hatched surface with caption */
.b-ph { position: relative; display: grid; place-items: center; min-height: 260px; border-radius: 6px; background: repeating-linear-gradient(-45deg, var(--uv-surface-2) 0 1px, transparent 1px 10px), var(--uv-surface); border: 1px solid var(--uv-line-2); color: var(--uv-dim); font: 500 11px var(--uv-mono); text-transform: uppercase; letter-spacing: .06em; }
.b-ph--ink { background: #1a1917; color: #8f8a82; border-color: #1a1917; }
.b-ph--tall { min-height: 420px; } .b-ph--sq { aspect-ratio: 1; min-height: 0; } .b-ph--wide { aspect-ratio: 16/9; min-height: 0; }
/* nav */
.b-nav { display: flex; align-items: center; gap: 28px; }
.b-nav__links { display: flex; gap: 22px; margin-left: auto; font-size: 14px; color: var(--uv-muted); }
.b-nav__links a { text-decoration: none; color: inherit; } .b-nav__links a:hover { color: var(--uv-text); }
.b-logo { display: inline-flex; align-items: center; gap: 8px; font: 600 16px var(--uv-font); text-decoration: none; color: inherit; }
.b-logo i { width: 18px; height: 18px; border-radius: 3px; background: var(--uv-text); box-shadow: inset -6px -6px 0 var(--uv-accent); }
.b-burger { display: none; }
/* misc */
.b-logos { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px 40px; align-items: center; color: var(--uv-dim); font: 400 26px var(--uv-serif); }
.b-logos span:nth-child(2n) { font: 600 17px var(--uv-font); letter-spacing: .12em; text-transform: uppercase; }
.b-logos span:nth-child(3n) { font: 500 16px var(--uv-mono); }
.b-icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--uv-line-2); border-radius: 4px; margin-bottom: 16px; font: 500 14px var(--uv-mono); color: var(--uv-accent); }
.b-quote { margin: 0; font: 400 clamp(26px, 3.6cqi, 40px)/1.15 var(--uv-serif); letter-spacing: -.01em; }
.b-who { display: flex; align-items: center; gap: 12px; margin-top: 24px; font-size: 14px; }
.b-who small { display: block; color: var(--uv-muted); }
.b-price { padding: 28px; border: 1px solid var(--uv-line-2); border-radius: 6px; background: var(--uv-surface); display: flex; flex-direction: column; gap: 14px; }
.b-price--hot { border-color: var(--uv-text); box-shadow: inset 0 3px 0 var(--uv-accent); }
.b-price ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 14px; color: var(--uv-muted); flex: 1; }
.b-price li::before { content: "— "; color: var(--uv-accent); }
.b-post { display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: inherit; }
.b-post:hover .b-h3 { text-decoration: underline; text-decoration-color: var(--uv-accent); text-underline-offset: 3px; }
.b-meta { font: 500 11px var(--uv-mono); text-transform: uppercase; letter-spacing: .05em; color: var(--uv-dim); }
.b-foot { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; font-size: 14px; }
.b-foot ul { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; color: var(--uv-muted); }
.b-foot a { color: inherit; text-decoration: none; } .b-foot a:hover { color: var(--uv-text); }
.b-dark { --uv-bg: #1a1917; --uv-surface: #222220; --uv-surface-2: #2b2b29; --uv-text: #ecebe8; --uv-muted: #a19d95; --uv-dim: #6f6b64; --uv-line: #ffffff14; --uv-line-2: #ffffff26; --uv-accent: #ff6a26; background: var(--uv-bg); color: var(--uv-text); }
.b-accent { --uv-bg: #ff4f00; --uv-text: #1a1917; --uv-muted: #3a1c0c; --uv-line-2: #1a191740; background: var(--uv-bg); color: var(--uv-text); }
.b-marquee { display: flex; overflow: hidden; white-space: nowrap; font: 400 clamp(48px, 9cqi, 120px)/1 var(--uv-serif); letter-spacing: -.02em; }
.b-marquee > div { display: flex; gap: 48px; padding-right: 48px; animation: uv-marq 30s linear infinite; }
.b-marquee em { color: var(--uv-accent); }
.b-step { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid var(--uv-line-2); }
.b-step b { font: 400 40px/1 var(--uv-serif); color: var(--uv-accent); }
.b-kv { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--uv-line-2); font-size: 14px; }
.b-kv span:last-child { font-family: var(--uv-mono); }
.b-form { display: flex; gap: 8px; max-width: 440px; }
.b-tag { display: inline-block; padding: 2px 8px; border: 1px solid var(--uv-line-2); border-radius: 3px; font: 500 11px var(--uv-mono); text-transform: uppercase; letter-spacing: .04em; color: var(--uv-muted); }
@container (max-width: 860px) {
  .b-g4 { grid-template-columns: repeat(2, 1fr); }
  .b-g3 { grid-template-columns: 1fr 1fr; }
  .b-split, .b-split-r { grid-template-columns: 1fr; gap: 36px; }
  .b-foot { grid-template-columns: 1fr 1fr; }
  .b-nav__links { display: none; }
  .b-burger { display: inline-grid; margin-left: auto; }
}
@container (max-width: 560px) {
  .b-in { padding: 48px 20px; } .b-in--sm { padding: 16px 20px; }
  .b-g2, .b-g3, .b-g4, .b-foot { grid-template-columns: 1fr; }
  .b-nav .uv-btn:not(.b-burger) { display: none; }
  .b-form { flex-direction: column; }
}
