*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); font-size: var(--font-size-base); line-height: var(--line-height-body); -webkit-text-size-adjust: 100%; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: var(--font-weight-bold); line-height: var(--line-height-heading); overflow-wrap: anywhere; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled, input:disabled, [aria-disabled="true"] { cursor: not-allowed; }
img { display: block; max-width: 100%; height: auto; }
svg { display: block; }
ul { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--color-text); outline-offset: 5px; }
[hidden] { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.container { width: min(calc(100% - var(--page-padding-sp) * 2), var(--container-wide)); margin-inline: auto; }
@media (min-width: 768px) { .container { width: min(calc(100% - var(--page-padding-tablet) * 2), var(--container-wide)); } }
@media (min-width: 1024px) { .container { width: min(calc(100% - var(--page-padding-pc) * 2), var(--container-wide)); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0s; scroll-behavior: auto; } }
