.np-page-area,
.np-full-width-area,
.np-blank-area,
.np-canvas-area,
.np-landing-area,
.np-404-area {
    position: relative;
    width: 100%;
}

.np-page-main,
.np-full-width-main,
.np-404-main {
    min-width: 0;
}

.np-page-entry {
    display: grid;
    gap: var(--np-spacing-xl);
    width: 100%;
}

.np-page-entry-header {
    display: grid;
    gap: var(--np-spacing-sm);
    margin-block-end: var(--np-spacing-xl);
}

.np-page-title {
    margin: 0;
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-display);
    font-size: clamp(2.25rem, 5vw, var(--np-font-size-6xl));
    font-weight: var(--np-font-weight-black);
    line-height: var(--np-line-height-xs);
    letter-spacing: -0.03em;
}

.np-page-featured-image {
    position: relative;
    overflow: hidden;
    margin-block-end: var(--np-spacing-2xl);
    background: var(--np-color-surface-soft);
    border-radius: var(--np-radius-2xl);
    box-shadow: var(--np-shadow-sm);
}

.np-page-thumbnail {
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
}

.np-page-content,
.np-full-width-main .np-entry-content,
.np-blank-content,
.np-canvas-content,
.np-landing-content {
    width: 100%;
    color: var(--np-color-text);
    font-size: var(--np-font-size-lg);
    line-height: var(--np-line-height-lg);
}

.np-page-content > *,
.np-full-width-main .np-entry-content > *,
.np-blank-content > *,
.np-canvas-content > *,
.np-landing-content > * {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
}

.np-page-content > .alignwide,
.np-full-width-main .np-entry-content > .alignwide,
.np-blank-content > .alignwide,
.np-canvas-content > .alignwide,
.np-landing-content > .alignwide {
    max-width: var(--np-container-lg);
}

.np-page-content > .alignfull,
.np-full-width-main .np-entry-content > .alignfull,
.np-blank-content > .alignfull,
.np-canvas-content > .alignfull,
.np-landing-content > .alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-inline-start: calc(50% - 50vw);
    margin-inline-end: calc(50% - 50vw);
}

.np-page-content > * + *,
.np-full-width-main .np-entry-content > * + *,
.np-blank-content > * + *,
.np-canvas-content > * + *,
.np-landing-content > * + * {
    margin-block-start: var(--np-spacing-lg);
}

.np-page-content p,
.np-full-width-main .np-entry-content p,
.np-blank-content p,
.np-canvas-content p,
.np-landing-content p {
    margin-block-end: var(--np-spacing-lg);
}

.np-page-content h2,
.np-full-width-main .np-entry-content h2,
.np-blank-content h2,
.np-canvas-content h2,
.np-landing-content h2 {
    margin-block-start: var(--np-spacing-3xl);
    margin-block-end: var(--np-spacing-md);
    font-size: clamp(1.75rem, 4vw, var(--np-font-size-4xl));
}

.np-page-content h3,
.np-full-width-main .np-entry-content h3,
.np-blank-content h3,
.np-canvas-content h3,
.np-landing-content h3 {
    margin-block-start: var(--np-spacing-2xl);
    margin-block-end: var(--np-spacing-md);
    font-size: clamp(1.4rem, 3vw, var(--np-font-size-3xl));
}

.np-page-content h4,
.np-page-content h5,
.np-page-content h6,
.np-full-width-main .np-entry-content h4,
.np-full-width-main .np-entry-content h5,
.np-full-width-main .np-entry-content h6,
.np-blank-content h4,
.np-blank-content h5,
.np-blank-content h6,
.np-canvas-content h4,
.np-canvas-content h5,
.np-canvas-content h6,
.np-landing-content h4,
.np-landing-content h5,
.np-landing-content h6 {
    margin-block-start: var(--np-spacing-xl);
}

.np-page-content ul,
.np-page-content ol,
.np-full-width-main .np-entry-content ul,
.np-full-width-main .np-entry-content ol,
.np-blank-content ul,
.np-blank-content ol,
.np-canvas-content ul,
.np-canvas-content ol,
.np-landing-content ul,
.np-landing-content ol {
    display: grid;
    gap: var(--np-spacing-sm);
    margin-block-end: var(--np-spacing-lg);
}

.np-page-content li,
.np-full-width-main .np-entry-content li,
.np-blank-content li,
.np-canvas-content li,
.np-landing-content li {
    margin: 0;
}

.np-page-content blockquote,
.np-full-width-main .np-entry-content blockquote,
.np-blank-content blockquote,
.np-canvas-content blockquote,
.np-landing-content blockquote {
    max-width: var(--np-container-narrow);
    margin-block: var(--np-spacing-2xl);
}

.np-page-content figure,
.np-full-width-main .np-entry-content figure,
.np-blank-content figure,
.np-canvas-content figure,
.np-landing-content figure {
    margin-block: var(--np-spacing-2xl);
}

.np-page-content img,
.np-full-width-main .np-entry-content img,
.np-blank-content img,
.np-canvas-content img,
.np-landing-content img {
    border-radius: var(--np-radius-lg);
}

.np-page-content .wp-block-image img,
.np-full-width-main .np-entry-content .wp-block-image img,
.np-blank-content .wp-block-image img,
.np-canvas-content .wp-block-image img,
.np-landing-content .wp-block-image img {
    box-shadow: var(--np-shadow-xs);
}

.np-page-content .wp-block-image.alignfull img,
.np-full-width-main .np-entry-content .wp-block-image.alignfull img,
.np-blank-content .wp-block-image.alignfull img,
.np-canvas-content .wp-block-image.alignfull img,
.np-landing-content .wp-block-image.alignfull img {
    border-radius: 0;
    box-shadow: none;
}

.np-page-content .wp-block-cover,
.np-full-width-main .np-entry-content .wp-block-cover,
.np-blank-content .wp-block-cover,
.np-canvas-content .wp-block-cover,
.np-landing-content .wp-block-cover {
    overflow: hidden;
    border-radius: var(--np-radius-2xl);
}

.np-page-content .wp-block-cover.alignfull,
.np-full-width-main .np-entry-content .wp-block-cover.alignfull,
.np-blank-content .wp-block-cover.alignfull,
.np-canvas-content .wp-block-cover.alignfull,
.np-landing-content .wp-block-cover.alignfull {
    border-radius: 0;
}

.np-page-content .wp-block-group,
.np-full-width-main .np-entry-content .wp-block-group,
.np-blank-content .wp-block-group,
.np-canvas-content .wp-block-group,
.np-landing-content .wp-block-group {
    position: relative;
}

.np-page-content .wp-block-columns,
.np-full-width-main .np-entry-content .wp-block-columns,
.np-blank-content .wp-block-columns,
.np-canvas-content .wp-block-columns,
.np-landing-content .wp-block-columns {
    gap: var(--np-spacing-xl);
}

.np-page-content .wp-block-column,
.np-full-width-main .np-entry-content .wp-block-column,
.np-blank-content .wp-block-column,
.np-canvas-content .wp-block-column,
.np-landing-content .wp-block-column {
    min-width: 0;
}

.np-page-content .wp-block-media-text,
.np-full-width-main .np-entry-content .wp-block-media-text,
.np-blank-content .wp-block-media-text,
.np-canvas-content .wp-block-media-text,
.np-landing-content .wp-block-media-text {
    gap: var(--np-spacing-xl);
}

.np-page-content .wp-block-media-text__media img,
.np-full-width-main .np-entry-content .wp-block-media-text__media img,
.np-blank-content .wp-block-media-text__media img,
.np-canvas-content .wp-block-media-text__media img,
.np-landing-content .wp-block-media-text__media img {
    width: 100%;
}

.np-page-content .wp-block-table,
.np-full-width-main .np-entry-content .wp-block-table,
.np-blank-content .wp-block-table,
.np-canvas-content .wp-block-table,
.np-landing-content .wp-block-table {
    overflow-x: auto;
}

.np-page-content .wp-block-table table,
.np-full-width-main .np-entry-content .wp-block-table table,
.np-blank-content .wp-block-table table,
.np-canvas-content .wp-block-table table,
.np-landing-content .wp-block-table table {
    margin-block: 0;
}

.np-page-content .wp-block-separator,
.np-full-width-main .np-entry-content .wp-block-separator,
.np-blank-content .wp-block-separator,
.np-canvas-content .wp-block-separator,
.np-landing-content .wp-block-separator {
    max-width: var(--np-container-narrow);
    margin-block: var(--np-spacing-2xl);
    border: 0;
    border-block-start: var(--np-border);
}

.np-page-content .wp-block-separator.is-style-wide,
.np-full-width-main .np-entry-content .wp-block-separator.is-style-wide,
.np-blank-content .wp-block-separator.is-style-wide,
.np-canvas-content .wp-block-separator.is-style-wide,
.np-landing-content .wp-block-separator.is-style-wide {
    max-width: var(--np-container-lg);
}

.np-page-content .wp-block-pullquote,
.np-full-width-main .np-entry-content .wp-block-pullquote,
.np-blank-content .wp-block-pullquote,
.np-canvas-content .wp-block-pullquote,
.np-landing-content .wp-block-pullquote {
    padding: var(--np-spacing-2xl);
    color: var(--np-color-primary-dark);
    background: var(--np-color-surface);
    border-block: 4px solid var(--np-color-accent-mint);
    border-radius: var(--np-radius-2xl);
}

.np-page-content .wp-block-pullquote blockquote,
.np-full-width-main .np-entry-content .wp-block-pullquote blockquote,
.np-blank-content .wp-block-pullquote blockquote,
.np-canvas-content .wp-block-pullquote blockquote,
.np-landing-content .wp-block-pullquote blockquote {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.np-page-content .wp-block-embed iframe,
.np-full-width-main .np-entry-content .wp-block-embed iframe,
.np-blank-content .wp-block-embed iframe,
.np-canvas-content .wp-block-embed iframe,
.np-landing-content .wp-block-embed iframe {
    width: 100%;
    border-radius: var(--np-radius-xl);
}

.np-page-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--np-spacing-xs);
    align-items: center;
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-xl);
}

.np-page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding-inline: var(--np-spacing-sm);
    color: var(--np-color-primary-dark);
    background: var(--np-color-surface);
    border: var(--np-border);
    border-radius: var(--np-radius-md);
    font-size: var(--np-font-size-sm);
    font-weight: var(--np-font-weight-medium);
}

.np-page-link:hover,
.np-page-link:focus {
    color: var(--np-color-surface);
    background: var(--np-color-primary-teal);
    border-color: var(--np-color-primary-teal);
}

.np-page-comments {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-3xl);
}

.np-full-width-area .np-content-layout,
.np-full-width-area .np-page-layout {
    grid-template-columns: minmax(0, 1fr);
}

.np-full-width-area .np-sidebar-area {
    display: none;
}

.np-full-width-main {
    width: 100%;
}

.np-full-width-main .np-page-entry {
    max-width: none;
}

.np-blank-area {
    min-height: calc(100vh - var(--np-header-height));
    padding-block: 0;
}

.np-blank-content {
    padding-block: var(--np-section-padding-y);
}

.np-blank-area .np-container {
    width: min(100% - calc(var(--np-container-padding) * 2), var(--np-container-width));
}

.np-canvas-area {
    min-height: 100vh;
    padding: 0;
    background: var(--np-color-background);
}

.np-canvas-area .np-container,
.np-canvas-area .np-canvas-container {
    width: 100%;
    max-width: none;
    padding-inline: 0;
}

.np-canvas-content {
    min-height: 100vh;
}

.np-canvas-content > * {
    max-width: none;
}

.np-layout-canvas .np-site-main,
.np-layout-blank .np-site-main {
    min-height: 100vh;
}

.np-landing-area {
    overflow: hidden;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--np-color-accent-mint) 18%, transparent), transparent 34%),
        radial-gradient(circle at bottom left, color-mix(in srgb, var(--np-color-accent-gold) 24%, transparent), transparent 36%),
        var(--np-color-background);
}

.np-landing-container {
    position: relative;
    z-index: var(--np-z-index-base);
}

.np-landing-content {
    width: 100%;
}

.np-landing-content > * {
    max-width: var(--np-container-width);
}

.np-landing-content > .alignfull {
    max-width: 100vw;
}

.np-landing-title {
    margin-block-end: var(--np-spacing-xl);
    color: var(--np-color-primary-dark);
    font-family: var(--np-font-display);
    font-size: clamp(2.5rem, 6vw, var(--np-font-size-6xl));
    font-weight: var(--np-font-weight-black);
    line-height: var(--np-line-height-xs);
}

.np-landing-comments {
    max-width: var(--np-container-narrow);
    margin-inline: auto;
    margin-block-start: var(--np-spacing-3xl);
}

.np-404-area {
    display: flex;
    align-items: center;
    min-height: min(720px, calc(100vh - var(--np-header-height)));
}

.np-404-layout {
    width: 100%;
}

.np-content-404 {
    position: relative;
    overflow: hidden;
}

.np-content-404::before {
    content: "404";
    position: absolute;
    z-index: -1;
    inset-block-start: -0.42em;
    inset-inline-start: 50%;
    color: color-mix(in srgb, var(--np-color-primary-teal) 7%, transparent);
    font-family: var(--np-font-display);
    font-size: clamp(8rem, 24vw, 18rem);
    font-weight: var(--np-font-weight-black);
    line-height: 1;
    transform: translateX(-50%);
    pointer-events: none;
}

html[dir="rtl"] .np-content-404::before {
    transform: translateX(50%);
}

.np-content-404-title {
    font-size: clamp(2rem, 5vw, var(--np-font-size-5xl));
}

.np-content-404-description {
    max-width: 520px;
    margin-inline: auto;
}

.np-content-404-search {
    width: min(100%, 560px);
}

.np-content-404-actions {
    margin-block-start: var(--np-spacing-md);
}

.np-page-template-blank,
.np-page-template-canvas,
.np-page-template-landing,
.np-page-template-full-width {
    position: relative;
}

.page-template-blank .np-site-header,
.page-template-canvas .np-site-header,
.page-template-blank .np-site-footer,
.page-template-canvas .np-site-footer {
    display: none;
}

.page-template-landing .np-site-main {
    overflow: hidden;
}

.np-page-section {
    position: relative;
    padding-block: var(--np-section-padding-y);
}

.np-page-section-soft {
    background: var(--np-color-surface-soft);
}

.np-page-section-surface {
    background: var(--np-color-surface);
}

.np-page-section-dark {
    color: var(--np-color-surface);
    background: var(--np-color-primary-dark);
}

.np-page-section-dark h1,
.np-page-section-dark h2,
.np-page-section-dark h3,
.np-page-section-dark h4,
.np-page-section-dark h5,
.np-page-section-dark h6 {
    color: var(--np-color-surface);
}

.np-page-section-dark p {
    color: rgba(255, 255, 255, 0.78);
}

.np-page-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--np-spacing-xl);
}

.np-page-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.np-page-grid-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.np-page-stack {
    display: grid;
    gap: var(--np-spacing-xl);
}

.np-page-stack-sm {
    gap: var(--np-spacing-md);
}

.np-page-stack-lg {
    gap: var(--np-spacing-2xl);
}

@media (max-width: 1180px) {
    .np-page-grid,
    .np-page-grid-four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .np-page-title {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .np-page-thumbnail {
        aspect-ratio: 16 / 10;
    }

    .np-page-content,
    .np-full-width-main .np-entry-content,
    .np-blank-content,
    .np-canvas-content,
    .np-landing-content {
        font-size: var(--np-font-size-md);
        line-height: var(--np-line-height-md);
    }

    .np-page-content h2,
    .np-full-width-main .np-entry-content h2,
    .np-blank-content h2,
    .np-canvas-content h2,
    .np-landing-content h2 {
        margin-block-start: var(--np-spacing-2xl);
    }

    .np-blank-content {
        padding-block: var(--np-spacing-2xl);
    }

    .np-landing-title {
        font-size: clamp(2rem, 11vw, 3.25rem);
    }

    .np-404-area {
        min-height: auto;
    }

    .np-content-404::before {
        font-size: clamp(7rem, 34vw, 12rem);
    }

    .np-page-grid,
    .np-page-grid-two,
    .np-page-grid-four {
        grid-template-columns: minmax(0, 1fr);
    }
}