/* Public site layout only. Tokens + components come from /public/assets/brand/brand.css. */
body { margin: 0; }
[hidden] { display: none !important; }
.site-skip { position: absolute; left: var(--k-space-4); top: -4rem; padding: var(--k-space-2) var(--k-space-3); background: var(--k-surface); color: var(--k-text); z-index: 10; }
.site-skip:focus { top: var(--k-space-4); }
.site-top { flex-wrap: wrap; gap: var(--k-space-4); }
.site-home { text-decoration: none; font-size: var(--k-text-xl); }
.site-nav { display: flex; flex-wrap: wrap; gap: var(--k-space-4); align-items: center; }
.site-nav a:not([class]) { color: var(--k-text); }
/* One centred reading column (~70ch) for every text block; card grids, rules, header and footer span the container. */
:root { --site-col: 46rem; }
.site-hero { padding: var(--k-space-24) 0 var(--k-space-16); max-width: var(--site-col); margin-inline: auto; }
.site-hero .k-display { margin: var(--k-space-3) 0 var(--k-space-6); }
.site-hero .k-display { overflow-wrap: break-word; hyphens: auto; }
.site-cta { display: flex; flex-wrap: wrap; gap: var(--k-space-4); align-items: center; margin-top: var(--k-space-8); }
.site-section { padding: var(--k-space-16) 0; border-top: var(--k-border-rule) solid var(--k-rule); }
.site-hero .k-lead { max-width: none; }
.site-section > :not(.site-cards) { box-sizing: border-box; max-width: var(--site-col); margin-inline: auto; }
.site-steps { list-style: none; margin: var(--k-space-8) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--k-space-8); }
.site-steps li { display: grid; gap: var(--k-space-1); align-content: start; }
.site-steps .k-h3, .site-steps p { margin: 0; }
.site-n { font-family: var(--k-font-display); font-style: italic; font-size: var(--k-text-2xl); color: var(--k-accent); }
.site-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--k-space-6); margin: var(--k-space-8) 0 var(--k-space-6); }
.site-form { display: grid; gap: var(--k-space-4); margin-top: var(--k-space-6); }
.site-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--k-space-4); }
.site-form .k-field { margin: 0; }
.site-form button { justify-self: start; }
.site-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.site-footer { display: flex; flex-wrap: wrap; gap: var(--k-space-6); padding: var(--k-space-8) 0 var(--k-space-12); border-top: var(--k-border-hairline) solid var(--k-line); color: var(--k-muted); }
.site-footer a { color: var(--k-muted); }
@media (max-width: 900px) { .site-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .site-cards { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .site-steps, .site-form-row { grid-template-columns: 1fr; } .site-hero { padding-top: var(--k-space-12); } .site-hero .k-display { font-size: clamp(1.875rem, 8.5vw, var(--k-text-5xl)); line-height: 1.15; } }
.site-policy { border-top: 0; }
.site-section.site-policy > * { max-width: 52rem; }
.site-policy h2 { margin: var(--k-space-10) 0 var(--k-space-3); }
.site-policy ul { padding-left: var(--k-space-5); }
.site-policy li { margin-bottom: var(--k-space-2); }
.site-dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--k-space-2) var(--k-space-6); }
.site-dl dt { color: var(--k-muted); }
.site-dl dd { margin: 0; }
.site-table { overflow-x: auto; margin: var(--k-space-4) 0; }
