* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--theme-text); background: var(--theme-bg); font-family: var(--theme-font-body); font-size: 16px; line-height: 1.75; }
body, button, input, select, textarea { font-family: var(--theme-font-body); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: color var(--theme-transition), opacity var(--theme-transition); }
a:hover { color: var(--theme-primary); }
h1,h2,h3,h4,h5,h6 { margin: 0 0 .65em; color: var(--theme-heading); font-family: var(--theme-font-heading); line-height: 1.25; }
p { margin: 0 0 1em; }
ul,ol { padding-inline-start: 1.2rem; }
button,input,select,textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(calc(100% - 40px), var(--theme-container)); margin-inline: auto; }
.narrow-content { width: min(calc(100% - 40px), var(--theme-content)); margin-inline: auto; }
.site-main { min-height: 55vh; }
.section-space { padding-block: var(--theme-space-16); }
.screen-reader-text { position: absolute!important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link:focus { clip: auto!important; width: auto; height: auto; z-index: 9999; padding: 12px 16px; background: #fff; color: #000; }
