*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    font-size: 16px;
    line-height: var(--np-line-height-md);
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html[dir="rtl"] {
    direction: rtl;
}

html[dir="ltr"] {
    direction: ltr;
}

body {
    min-height: 100%;
    margin: 0;
    color: var(--np-color-text);
    background: var(--np-color-background);
    font-family: var(--np-font-primary);
    font-size: var(--np-font-size-md);
    font-weight: var(--np-font-weight-regular);
    line-height: var(--np-line-height-md);
    overflow-x: hidden;
}

body.admin-bar {
    --np-current-admin-bar-height: var(--np-admin-bar-height);
}

body:not(.admin-bar) {
    --np-current-admin-bar-height: 0px;
}

::selection {
    color: var(--np-color-primary-dark);
    background: var(--np-color-accent-mint);
}

:focus {
    outline-color: var(--np-focus-outline-color);
    outline-width: var(--np-focus-outline-width);
    outline-style: solid;
    outline-offset: var(--np-focus-outline-offset);
}

:focus:not(:focus-visible) {
    outline: none;
}

:focus-visible {
    outline-color: var(--np-focus-outline-color);
    outline-width: var(--np-focus-outline-width);
    outline-style: solid;
    outline-offset: var(--np-focus-outline-offset);
}

a {
    color: var(--np-color-primary-teal);
    text-decoration: none;
    transition:
        color var(--np-transition-fast),
        background-color var(--np-transition-fast),
        border-color var(--np-transition-fast),
        box-shadow var(--np-transition-fast);
}

a:hover,
a:focus {
    color: var(--np-color-primary-dark);
}

a:where(:not(.wp-element-button)) {
    text-underline-offset: 0.18em;
}

p {
    margin-block-start: 0;
    margin-block-end: var(--np-spacing-md);
}

p:last-child {
    margin-block-end: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-block-start: 0;
    margin-block-end: var(--np-spacing-md);
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-heading);
    font-weight: var(--np-font-weight-bold);
    line-height: var(--np-line-height-xs);
}

h1 {
    font-size: clamp(2.25rem, 5vw, var(--np-font-size-6xl));
    font-weight: var(--np-font-weight-black);
}

h2 {
    font-size: clamp(1.875rem, 4vw, var(--np-font-size-5xl));
    font-weight: var(--np-font-weight-extrabold);
}

h3 {
    font-size: clamp(1.5rem, 3vw, var(--np-font-size-4xl));
}

h4 {
    font-size: var(--np-font-size-3xl);
}

h5 {
    font-size: var(--np-font-size-2xl);
}

h6 {
    font-size: var(--np-font-size-xl);
}

strong,
b {
    font-weight: var(--np-font-weight-bold);
}

small {
    font-size: var(--np-font-size-sm);
}

mark {
    color: var(--np-color-primary-dark);
    background: var(--np-color-accent-gold);
    padding-inline: 0.18em;
    border-radius: var(--np-radius-xs);
}

code,
kbd,
samp,
pre {
    font-family: var(--np-font-mono);
    font-size: 0.95em;
}

code,
kbd,
samp {
    color: var(--np-color-primary-dark);
    background: var(--np-color-surface-soft);
    border: var(--np-border);
    border-radius: var(--np-radius-xs);
    padding: 0.12em 0.35em;
}

pre {
    max-width: 100%;
    overflow: auto;
    margin-block: var(--np-spacing-lg);
    padding: var(--np-spacing-lg);
    color: var(--np-color-surface);
    background: var(--np-color-primary-dark);
    border-radius: var(--np-radius-lg);
    line-height: var(--np-line-height-sm);
}

pre code {
    color: inherit;
    background: transparent;
    border: 0;
    padding: 0;
}

blockquote {
    margin: var(--np-spacing-xl) 0;
    padding: var(--np-spacing-lg);
    color: var(--np-color-text);
    background: var(--np-color-surface);
    border-inline-start: 4px solid var(--np-color-primary-teal);
    border-radius: var(--np-radius-lg);
    box-shadow: var(--np-shadow-xs);
}

blockquote p {
    margin-block-end: var(--np-spacing-sm);
}

blockquote p:last-child {
    margin-block-end: 0;
}

blockquote cite {
    display: block;
    margin-block-start: var(--np-spacing-sm);
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
    font-style: normal;
}

hr {
    height: 1px;
    margin: var(--np-spacing-2xl) 0;
    background: var(--np-color-border);
    border: 0;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

img {
    border-style: none;
}

figure {
    margin: 0 0 var(--np-spacing-lg);
}

figcaption {
    margin-block-start: var(--np-spacing-sm);
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
    text-align: center;
}

ul,
ol {
    margin-block-start: 0;
    margin-block-end: var(--np-spacing-md);
    padding-inline-start: var(--np-spacing-xl);
}

li {
    margin-block-end: var(--np-spacing-xs);
}

li:last-child {
    margin-block-end: 0;
}

dl {
    margin-block-start: 0;
    margin-block-end: var(--np-spacing-lg);
}

dt {
    color: var(--np-color-primary-dark);
    font-weight: var(--np-font-weight-bold);
}

dd {
    margin-inline-start: var(--np-spacing-lg);
    margin-block-end: var(--np-spacing-md);
}

table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    margin-block: var(--np-spacing-lg);
    background: var(--np-color-surface);
    border: var(--np-border);
    border-radius: var(--np-radius-lg);
    overflow: hidden;
}

th,
td {
    padding: var(--np-spacing-sm) var(--np-spacing-md);
    text-align: start;
    vertical-align: top;
    border-block-end: var(--np-border);
}

th {
    color: var(--np-color-primary-dark);
    background: var(--np-color-surface-soft);
    font-weight: var(--np-font-weight-bold);
}

tr:last-child th,
tr:last-child td {
    border-block-end: 0;
}

caption {
    margin-block-end: var(--np-spacing-sm);
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
    text-align: start;
}

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    color: inherit;
    font: inherit;
}

button,
select {
    text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
    appearance: button;
    cursor: pointer;
}

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

input,
select,
textarea {
    max-width: 100%;
}

textarea {
    resize: vertical;
}

fieldset {
    min-width: 0;
    margin: 0 0 var(--np-spacing-lg);
    padding: var(--np-spacing-lg);
    border: var(--np-border);
    border-radius: var(--np-radius-lg);
}

legend {
    padding-inline: var(--np-spacing-xs);
    color: var(--np-color-primary-dark);
    font-weight: var(--np-font-weight-bold);
}

iframe,
embed,
object {
    max-width: 100%;
}

address {
    margin-block-end: var(--np-spacing-md);
    font-style: normal;
}

abbr[title] {
    text-decoration: underline dotted;
    cursor: help;
}

details {
    display: block;
    margin-block-end: var(--np-spacing-md);
}

summary {
    cursor: pointer;
    color: var(--np-color-primary-dark);
    font-weight: var(--np-font-weight-bold);
}

[hidden] {
    display: none !important;
}

.np-site-wrapper {
    position: relative;
    min-height: 100vh;
    background: var(--np-color-background);
}

.np-site-main {
    position: relative;
    min-height: 40vh;
}

.np-container {
    width: min(100% - calc(var(--np-container-padding) * 2), var(--np-container-width));
    margin-inline: auto;
}

.np-container-full-width,
.np-container-canvas {
    width: 100%;
    max-width: none;
}

.np-container-narrow {
    width: min(100% - calc(var(--np-container-padding) * 2), var(--np-container-narrow));
}

.screen-reader-text,
.np-skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus,
.np-skip-link:focus {
    z-index: var(--np-z-index-modal);
    top: var(--np-spacing-md);
    inset-inline-start: var(--np-spacing-md);
    width: auto;
    height: auto;
    margin: 0;
    padding: var(--np-spacing-sm) var(--np-spacing-md);
    overflow: visible;
    clip-path: none;
    color: var(--np-color-surface);
    background: var(--np-color-primary-dark);
    border-radius: var(--np-radius-md);
    box-shadow: var(--np-shadow-md);
    white-space: normal;
}

.alignleft {
    float: left;
    margin-inline-end: var(--np-spacing-lg);
    margin-block-end: var(--np-spacing-md);
}

.alignright {
    float: right;
    margin-inline-start: var(--np-spacing-lg);
    margin-block-end: var(--np-spacing-md);
}

.aligncenter {
    display: block;
    margin-inline: auto;
}

.alignwide {
    max-width: var(--np-container-lg);
}

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-inline-start: calc(50% - 50vw);
    margin-inline-end: calc(50% - 50vw);
}

.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    margin-block-start: var(--np-spacing-sm);
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
    text-align: center;
}

.gallery {
    display: grid;
    gap: var(--np-spacing-md);
}

.gallery-item {
    margin: 0;
}

.gallery-caption {
    color: var(--np-color-text-muted);
    font-size: var(--np-font-size-sm);
}

.bypostauthor {
    display: block;
}

.sticky {
    display: block;
}

.updated:not(.published) {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width: 782px) {
    body {
        font-size: 0.975rem;
    }

    h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    h2 {
        font-size: clamp(1.75rem, 8vw, 2.5rem);
    }

    h3 {
        font-size: clamp(1.375rem, 6vw, 2rem);
    }

    table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .alignleft,
    .alignright {
        float: none;
        margin-inline: 0;
    }
}