/* The child theme owns its shell; do not depend on the Astra page builder. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--abk-color-white);
    color: var(--abk-color-text);
    font-family: var(--abk-font-family);
    font-size: var(--abk-font-body);
    line-height: var(--abk-line-height);
}
button, input, textarea, select { font: inherit; }
img, svg, video { max-width: 100%; height: auto; }
[hidden] { display: none !important; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0 0 var(--abk-space-4); }
h1, h2, h3, h4 {
    color: var(--abk-color-navy);
    font-family: var(--abk-font-family);
    font-weight: 750;
    text-wrap: balance;
}
h1 { font-size: var(--abk-font-h1); line-height: 1.12; letter-spacing: -0.035em; }
h2 { font-size: var(--abk-font-h2); line-height: 1.2; letter-spacing: -0.025em; }
h3 { font-size: var(--abk-font-h3); line-height: 1.35; letter-spacing: -0.01em; }
a { color: var(--abk-color-hover); text-underline-offset: 0.2em; text-decoration-thickness: 0.08em; }
a:hover { color: var(--abk-color-navy); text-decoration-thickness: 0.13em; }
a, button, input, textarea, select, [tabindex] { -webkit-tap-highlight-color: rgb(47 111 237 / 15%); }
:focus-visible { outline: 3px solid var(--abk-color-focus); outline-offset: 4px; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
ul, ol { padding-inline-start: 1.5rem; }
li + li { margin-top: var(--abk-space-2); }
p:last-child, ul:last-child, ol:last-child { margin-bottom: 0; }
.site, .site-main { min-width: 0; }
.site-main { padding-block: var(--abk-space-6) var(--abk-space-8); }
.site-main, .abk-container {
    width: calc(100% - var(--abk-page-gutter) * 2);
    max-width: var(--abk-container-max);
    margin-inline: auto;
}
.site-main > *, .abk-container > *, .section > * { min-width: 0; }
.site-main p, .site-main li, .site-footer p, .site-nav, td, th { overflow-wrap: anywhere; }
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link:focus {
    position: fixed;
    inset: 1rem auto auto 1rem;
    z-index: 10000;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0.75rem 1rem;
    overflow: visible;
    clip: auto;
    white-space: normal;
    background: var(--abk-color-white);
    color: var(--abk-color-navy);
    border-radius: var(--abk-radius-small);
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
