/* Shared foundation: frontend and editor, no page or component composition. */
*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
}

:where(h1, h2, h3, h4, h5, h6) {
    font-family: inherit;
    color: var(--wp--preset--color--ink);
}

:where(p, h1, h2, h3, h4, h5, h6, ul, ol, figure, pre, blockquote) {
    margin-block: 0;
}

:where(img, video) {
    max-inline-size: 100%;
    block-size: auto;
}

:where(button, input, select, textarea) {
    font: inherit;
}

:where(a) {
    text-underline-offset: 0.2em;
    text-decoration-thickness: 1px;
}

:where(a:hover, a:active) {
    color: var(--wp--preset--color--ink);
}

:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [contenteditable="true"]):focus-visible {
    outline: 2px solid var(--wp--preset--color--reference-blue);
    outline-offset: 4px;
}

::selection {
    color: var(--wp--preset--color--background);
    background: var(--wp--preset--color--reference-blue);
}

:where(code, pre, kbd, samp) {
    font-family: var(--wp--preset--font-family--monospace);
}

:where(pre) {
    overflow-x: auto;
}

.has-hero-font-size {
    font-weight: 600;
    line-height: 0.9;
    letter-spacing: -0.05em;
}

.has-section-heading-font-size {
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.045em;
}

.has-article-body-font-size {
    line-height: 1.65;
}

.has-label-font-size {
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.has-archive-code-font-size {
    font-weight: 700;
    letter-spacing: 0.06em;
}

:where(.wp-element-button, .wp-block-button__link) {
    border-radius: 0;
    box-shadow: none;
    background-image: none;
}

/* Shared frame: 1328px useful width plus the existing fluid section gutters.
 * wa-page-shell is the opt-in frame for future compositions; add gutters once.
 */
.wa-page-shell,
.wa-header,
.wa-footer,
main.has-global-padding,
.wa-front-main .wa-home {
    width: 100%;
    max-width: calc(1328px + 2 * var(--wp--custom--page-gutter));
    margin-inline: auto;
}
