* { box-sizing: border-box; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font: 400 16px/1.6 var(--font-body); }
h1, h2, h3, p, figure, blockquote { margin: 0; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; }
h2 { font-size: 34px; line-height: 1.25; }
p { text-wrap: pretty; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; cursor: pointer; }
button:not(.button) { background: none; border: 0; padding: 0; }
button:disabled { cursor: not-allowed; opacity: .6; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
.home-hero :focus-visible, .newsletter :focus-visible { outline-color: var(--color-white); }
input { min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 14px 16px; background: var(--color-bg); color: var(--color-text); font-size: 14px; }
input::placeholder { color: #756d61; opacity: 1; }
.visually-hidden, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; inset: 12px auto auto 12px; z-index: 10; padding: 12px 20px; background: var(--color-bg); }
.section-shell { width: min(100%, 1440px); margin-inline: auto; padding-inline: 96px; }
.mobile-copy { display: none; }
