html {
    min-height: 100%;
    background: var(--np-body-background, #f8fafc);
    scroll-padding-top: calc(var(--np-header-height, 88px) + var(--np-admin-offset, 0px) + var(--np-spacing-md, 1rem));
}

body {
    min-width: 320px;
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--np-body-background, #f8fafc);
    color: var(--np-body-color, #334155);
}

body.rtl,
body[dir="rtl"] {
    direction: rtl;
}

body.ltr,
body[dir="ltr"] {
    direction: ltr;
}

body.admin-bar {
    --np-admin-offset: var(--np-admin-bar-height, 32px);
}

body.np-page-locked {
    overflow: hidden;
}

body.np-is-loading {
    cursor: progress;
}

body.np-is-loading * {
    cursor: progress;
}

.site,
#page,
.wp-site-blocks,
.np-site {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--np-site-background, #f8fafc);
    color: var(--np-body-color, #334155);
}

.site-main,
#primary,
.wp-site-main,
.np-main {
    position: relative;
    flex: 1 0 auto;
    width: 100%;
    min-height: var(--np-main-min-height, calc(100vh - var(--np-header-height, 88px)));
}

.site-content,
.content-area,
.np-site-content {
    position: relative;
    width: 100%;
}

.site-header,
.site-footer,
.np-site-header,
.np-site-footer {
    flex: 0 0 auto;
}

.np-page {
    position: relative;
    width: 100%;
}

.np-page-surface {
    background: var(--np-site-surface, #ffffff);
}

.np-page-muted {
    background: var(--np-color-background-soft, #f1f5f9);
}

.np-page-dark {
    background: var(--np-gradient-dark, linear-gradient(135deg, #0f172a 0%, #1e293b 100%));
    color: var(--np-color-text-inverse, #ffffff);
}

.np-page-dark :where(h1, h2, h3, h4, h5, h6) {
    color: var(--np-color-white, #ffffff);
}

.np-page-dark :where(p, li, dd, figcaption) {
    color: rgba(255, 255, 255, 0.78);
}

a {
    color: var(--np-link-text-color, #4f46e5);
    text-decoration: var(--np-link-decoration, none);
}

a:hover,
a:focus {
    color: var(--np-link-text-color-hover, #38bdf8);
    text-decoration: var(--np-link-decoration-hover, none);
}

a,
button,
input,
select,
textarea,
summary {
    transition-duration: var(--np-transition-fast, 160ms);
    transition-timing-function: ease;
}

button,
input,
select,
textarea {
    color: inherit;
}

button {
    background: transparent;
    border: 0;
}

button,
[type="button"],
[type="reset"],
[type="submit"],
[role="button"] {
    user-select: none;
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled),
[role="button"]:not([aria-disabled="true"]) {
    cursor: pointer;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
    max-width: 100%;
}

img,
svg,
video,
canvas {
    height: auto;
}

img {
    object-fit: cover;
}

img[width][height] {
    height: auto;
}

svg {
    flex-shrink: 0;
}

iframe {
    width: 100%;
}

figure {
    max-width: 100%;
}

address {
    margin-block: 0 var(--np-spacing-md, 1rem);
    color: var(--np-color-text, #334155);
    font-style: normal;
    line-height: var(--np-line-height-normal, 1.75);
}

hr,
.np-divider {
    width: 100%;
    height: 1px;
    margin-block: var(--np-spacing-xl, 2rem);
    background: var(--np-color-border-soft, #e2e8f0);
    border: 0;
}

.np-divider.is-strong {
    height: 2px;
    background: var(--np-color-border, #cbd5e1);
}

.np-divider.is-gradient {
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--np-color-primary, #4f46e5) 35%, var(--np-color-sky, #38bdf8) 65%, transparent 100%);
}

.np-surface {
    background: var(--np-color-surface, #ffffff);
    color: var(--np-color-text, #334155);
}

.np-surface-soft {
    background: var(--np-color-surface-soft, #f8fafc);
    color: var(--np-color-text, #334155);
}

.np-surface-muted {
    background: var(--np-color-surface-muted, #f1f5f9);
    color: var(--np-color-text, #334155);
}

.np-surface-raised {
    background: var(--np-color-surface-raised, #ffffff);
    color: var(--np-color-text, #334155);
    box-shadow: var(--np-shadow-sm, 0 8px 24px rgba(15, 23, 42, 0.08));
}

.np-surface-glass {
    background: var(--np-glass-background, rgba(255, 255, 255, 0.76));
    border: var(--np-border, 1px solid #e2e8f0);
    border-color: var(--np-glass-border-color, rgba(203, 213, 225, 0.62));
    box-shadow: var(--np-glass-shadow, 0 8px 24px rgba(15, 23, 42, 0.08));
    backdrop-filter: var(--np-glass-backdrop-filter, blur(16px));
}

.np-gradient-primary {
    background: var(--np-gradient-primary, linear-gradient(135deg, #4f46e5 0%, #38bdf8 100%));
    color: var(--np-color-white, #ffffff);
}

.np-gradient-creative {
    background: var(--np-gradient-creative, linear-gradient(135deg, #38bdf8 0%, #2dd4bf 100%));
    color: var(--np-color-heading, #0f172a);
}

.np-gradient-cta {
    background: var(--np-gradient-cta, linear-gradient(135deg, #a3e635 0%, #2dd4bf 100%));
    color: var(--np-color-heading, #0f172a);
}

.np-gradient-dark {
    background: var(--np-gradient-dark, linear-gradient(135deg, #0f172a 0%, #1e293b 100%));
    color: var(--np-color-white, #ffffff);
}

.np-rounded-xs {
    border-radius: var(--np-radius-xs, 0.25rem);
}

.np-rounded-sm {
    border-radius: var(--np-radius-sm, 0.5rem);
}

.np-rounded-md {
    border-radius: var(--np-radius-md, 0.75rem);
}

.np-rounded-lg {
    border-radius: var(--np-radius-lg, 1rem);
}

.np-rounded-xl {
    border-radius: var(--np-radius-xl, 1.25rem);
}

.np-rounded-2xl {
    border-radius: var(--np-radius-2xl, 1.5rem);
}

.np-rounded-3xl {
    border-radius: var(--np-radius-3xl, 2rem);
}

.np-rounded-pill {
    border-radius: var(--np-radius-pill, 999px);
}

.np-rounded-circle {
    border-radius: var(--np-radius-circle, 50%);
}

.np-shadow-xs {
    box-shadow: var(--np-shadow-xs, 0 1px 3px rgba(15, 23, 42, 0.06));
}

.np-shadow-sm {
    box-shadow: var(--np-shadow-sm, 0 8px 24px rgba(15, 23, 42, 0.08));
}

.np-shadow-md {
    box-shadow: var(--np-shadow-md, 0 14px 38px rgba(15, 23, 42, 0.1));
}

.np-shadow-lg {
    box-shadow: var(--np-shadow-lg, 0 24px 70px rgba(15, 23, 42, 0.14));
}

.np-shadow-xl {
    box-shadow: var(--np-shadow-xl, 0 36px 100px rgba(15, 23, 42, 0.18));
}

.np-border {
    border: var(--np-border, 1px solid #e2e8f0);
}

.np-border-soft {
    border: var(--np-border-width, 1px) solid var(--np-color-border-soft, #e2e8f0);
}

.np-border-strong {
    border: var(--np-border-width, 1px) solid var(--np-color-border, #cbd5e1);
}

.np-overflow-hidden {
    overflow: hidden;
}

.np-overflow-auto {
    overflow: auto;
}

.np-relative {
    position: relative;
}

.np-absolute {
    position: absolute;
}

.np-fixed {
    position: fixed;
}

.np-sticky {
    position: sticky;
}

.np-inset-0 {
    inset: 0;
}

.np-z-base {
    z-index: var(--np-z-index-base, 1);
}

.np-z-content {
    z-index: var(--np-z-index-content, 10);
}

.np-z-dropdown {
    z-index: var(--np-z-index-dropdown, 50);
}

.np-z-sticky {
    z-index: var(--np-z-index-sticky, 100);
}

.np-z-header {
    z-index: var(--np-z-index-header, 200);
}

.np-z-overlay {
    z-index: var(--np-z-index-overlay, 500);
}

.np-z-modal {
    z-index: var(--np-z-index-modal, 1000);
}

.np-d-block {
    display: block;
}

.np-d-inline {
    display: inline;
}

.np-d-inline-block {
    display: inline-block;
}

.np-d-flex {
    display: flex;
}

.np-d-inline-flex {
    display: inline-flex;
}

.np-d-grid {
    display: grid;
}

.np-d-none {
    display: none !important;
}

.np-flex-wrap {
    flex-wrap: wrap;
}

.np-flex-nowrap {
    flex-wrap: nowrap;
}

.np-flex-column {
    flex-direction: column;
}

.np-flex-row {
    flex-direction: row;
}

.np-items-start {
    align-items: flex-start;
}

.np-items-center {
    align-items: center;
}

.np-items-end {
    align-items: flex-end;
}

.np-items-stretch {
    align-items: stretch;
}

.np-justify-start {
    justify-content: flex-start;
}

.np-justify-center {
    justify-content: center;
}

.np-justify-end {
    justify-content: flex-end;
}

.np-justify-between {
    justify-content: space-between;
}

.np-gap-2xs {
    gap: var(--np-spacing-2xs, 0.25rem);
}

.np-gap-xs {
    gap: var(--np-spacing-xs, 0.5rem);
}

.np-gap-sm {
    gap: var(--np-spacing-sm, 0.75rem);
}

.np-gap-md {
    gap: var(--np-spacing-md, 1rem);
}

.np-gap-lg {
    gap: var(--np-spacing-lg, 1.5rem);
}

.np-gap-xl {
    gap: var(--np-spacing-xl, 2rem);
}

.np-w-full {
    width: 100%;
}

.np-h-full {
    height: 100%;
}

.np-min-h-screen {
    min-height: 100vh;
}

.np-max-w-readable {
    max-width: 72ch;
}

.np-max-w-readable-sm {
    max-width: 58ch;
}

.np-max-w-readable-lg {
    max-width: 86ch;
}

.np-m-0 {
    margin: 0;
}

.np-mx-auto {
    margin-inline: auto;
}

.np-my-0 {
    margin-block: 0;
}

.np-mt-0 {
    margin-block-start: 0;
}

.np-mb-0 {
    margin-block-end: 0;
}

.np-mt-xs {
    margin-block-start: var(--np-spacing-xs, 0.5rem);
}

.np-mt-sm {
    margin-block-start: var(--np-spacing-sm, 0.75rem);
}

.np-mt-md {
    margin-block-start: var(--np-spacing-md, 1rem);
}

.np-mt-lg {
    margin-block-start: var(--np-spacing-lg, 1.5rem);
}

.np-mt-xl {
    margin-block-start: var(--np-spacing-xl, 2rem);
}

.np-mb-xs {
    margin-block-end: var(--np-spacing-xs, 0.5rem);
}

.np-mb-sm {
    margin-block-end: var(--np-spacing-sm, 0.75rem);
}

.np-mb-md {
    margin-block-end: var(--np-spacing-md, 1rem);
}

.np-mb-lg {
    margin-block-end: var(--np-spacing-lg, 1.5rem);
}

.np-mb-xl {
    margin-block-end: var(--np-spacing-xl, 2rem);
}

.np-p-0 {
    padding: 0;
}

.np-p-xs {
    padding: var(--np-spacing-xs, 0.5rem);
}

.np-p-sm {
    padding: var(--np-spacing-sm, 0.75rem);
}

.np-p-md {
    padding: var(--np-spacing-md, 1rem);
}

.np-p-lg {
    padding: var(--np-spacing-lg, 1.5rem);
}

.np-p-xl {
    padding: var(--np-spacing-xl, 2rem);
}

.np-p-2xl {
    padding: var(--np-spacing-2xl, 3rem);
}

.np-px-md {
    padding-inline: var(--np-spacing-md, 1rem);
}

.np-px-lg {
    padding-inline: var(--np-spacing-lg, 1.5rem);
}

.np-px-xl {
    padding-inline: var(--np-spacing-xl, 2rem);
}

.np-py-md {
    padding-block: var(--np-spacing-md, 1rem);
}

.np-py-lg {
    padding-block: var(--np-spacing-lg, 1.5rem);
}

.np-py-xl {
    padding-block: var(--np-spacing-xl, 2rem);
}

.np-py-2xl {
    padding-block: var(--np-spacing-2xl, 3rem);
}

.np-object-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.np-object-contain {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.np-media-frame {
    position: relative;
    overflow: hidden;
    background: var(--np-color-surface-muted, #f1f5f9);
    border-radius: var(--np-radius-2xl, 1.5rem);
}

.np-media-frame img,
.np-media-frame video,
.np-media-frame canvas {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.np-aspect-square {
    aspect-ratio: 1 / 1;
}

.np-aspect-video {
    aspect-ratio: 16 / 9;
}

.np-aspect-wide {
    aspect-ratio: 21 / 9;
}

.np-aspect-card {
    aspect-ratio: 4 / 3;
}

.np-ratio {
    position: relative;
    width: 100%;
}

.np-ratio::before {
    display: block;
    padding-block-start: var(--np-ratio, 56.25%);
    content: "";
}

.np-ratio > * {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.np-ratio-1x1 {
    --np-ratio: 100%;
}

.np-ratio-4x3 {
    --np-ratio: 75%;
}

.np-ratio-16x9 {
    --np-ratio: 56.25%;
}

.np-ratio-21x9 {
    --np-ratio: 42.857%;
}

.np-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    line-height: 1;
}

.np-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.np-icon-xs {
    width: 0.875rem;
    height: 0.875rem;
}

.np-icon-sm {
    width: 1rem;
    height: 1rem;
}

.np-icon-md {
    width: 1.25rem;
    height: 1.25rem;
}

.np-icon-lg {
    width: 1.5rem;
    height: 1.5rem;
}

.np-icon-xl {
    width: 2rem;
    height: 2rem;
}

.np-list-clean {
    margin: 0;
    padding: 0;
    list-style: none;
}

.np-list-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--np-spacing-sm, 0.75rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.np-list-check {
    display: grid;
    gap: var(--np-spacing-sm, 0.75rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.np-list-check li {
    position: relative;
    padding-inline-start: 1.75rem;
}

.np-list-check li::before {
    position: absolute;
    inset-block-start: 0.25em;
    inset-inline-start: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    background: var(--np-color-teal-soft, #ccfbf1);
    border-radius: var(--np-radius-circle, 50%);
    color: var(--np-color-teal-active, #0f766e);
    font-size: 0.75rem;
    font-weight: var(--np-font-weight-black, 900);
    line-height: 1;
    content: "✓";
}

.np-separator-dot {
    display: inline-flex;
    align-items: center;
    gap: var(--np-spacing-xs, 0.5rem);
}

.np-separator-dot::before {
    width: 0.375rem;
    height: 0.375rem;
    background: currentColor;
    border-radius: var(--np-radius-circle, 50%);
    opacity: 0.45;
    content: "";
}

.np-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.np-line-clamp-2,
.np-line-clamp-3,
.np-line-clamp-4 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
}

.np-line-clamp-2 {
    -webkit-line-clamp: 2;
}

.np-line-clamp-3 {
    -webkit-line-clamp: 3;
}

.np-line-clamp-4 {
    -webkit-line-clamp: 4;
}

.np-visually-clear {
    opacity: 1;
    visibility: visible;
}

.np-hidden {
    display: none !important;
}

.np-visible {
    display: block !important;
}

.np-fade-in {
    animation: np-base-fade-in var(--np-transition-md, 260ms ease) both;
}

.np-slide-up {
    animation: np-base-slide-up var(--np-transition-md, 260ms ease) both;
}

.np-scale-in {
    animation: np-base-scale-in var(--np-transition-md, 260ms ease) both;
}

.np-hover-lift {
    transition: transform var(--np-transition-md, 260ms ease), box-shadow var(--np-transition-md, 260ms ease), border-color var(--np-transition-md, 260ms ease);
}

.np-hover-lift:hover,
.np-hover-lift:focus-within {
    transform: translateY(-4px);
}

.np-hover-scale {
    transition: transform var(--np-transition-md, 260ms ease);
}

.np-hover-scale:hover,
.np-hover-scale:focus-within {
    transform: scale(1.025);
}

.np-state-active {
    color: var(--np-color-primary, #4f46e5);
}

.np-state-success {
    color: var(--np-color-success, #16a34a);
}

.np-state-danger {
    color: var(--np-color-danger, #dc2626);
}

.np-state-warning {
    color: var(--np-color-warning, #f59e0b);
}

.np-state-info {
    color: var(--np-color-info, #2563eb);
}

.np-bg-primary-soft {
    background: var(--np-color-primary-soft, #eef2ff);
}

.np-bg-sky-soft {
    background: var(--np-color-sky-soft, #e0f2fe);
}

.np-bg-teal-soft {
    background: var(--np-color-teal-soft, #ccfbf1);
}

.np-bg-lime-soft {
    background: var(--np-color-lime-soft, #ecfccb);
}

.np-bg-success-soft {
    background: var(--np-color-success-soft, #dcfce7);
}

.np-bg-danger-soft {
    background: var(--np-color-danger-soft, #fee2e2);
}

.np-bg-warning-soft {
    background: var(--np-color-warning-soft, #fef3c7);
}

.np-bg-info-soft {
    background: var(--np-color-info-soft, #dbeafe);
}

.np-has-backdrop {
    backdrop-filter: var(--np-backdrop-filter, blur(12px));
}

.np-clickable {
    cursor: pointer;
}

.np-not-allowed {
    cursor: not-allowed;
}

.np-no-select {
    user-select: none;
}

.np-select-text {
    user-select: text;
}

.np-dir-rtl {
    direction: rtl;
}

.np-dir-ltr {
    direction: ltr;
}

.np-ltr-inline {
    direction: ltr;
    unicode-bidi: embed;
}

.np-rtl-inline {
    direction: rtl;
    unicode-bidi: embed;
}

.np-print-only {
    display: none !important;
}

@keyframes np-base-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes np-base-slide-up {
    from {
        opacity: 0;
        transform: translateY(1rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes np-base-scale-in {
    from {
        opacity: 0;
        transform: scale(0.96);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@media (max-width: 1024px) {
    .np-d-lg-none {
        display: none !important;
    }

    .np-d-lg-block {
        display: block !important;
    }

    .np-d-lg-flex {
        display: flex !important;
    }

    .np-d-lg-grid {
        display: grid !important;
    }
}

@media (max-width: 782px) {
    body {
        min-width: 320px;
    }

    .np-d-md-none {
        display: none !important;
    }

    .np-d-md-block {
        display: block !important;
    }

    .np-d-md-flex {
        display: flex !important;
    }

    .np-d-md-grid {
        display: grid !important;
    }

    .np-md-flex-column {
        flex-direction: column;
    }

    .np-md-items-stretch {
        align-items: stretch;
    }

    .np-md-w-full {
        width: 100%;
    }

    .np-media-frame {
        border-radius: var(--np-radius-xl, 1.25rem);
    }
}

@media (max-width: 480px) {
    .np-d-sm-none {
        display: none !important;
    }

    .np-d-sm-block {
        display: block !important;
    }

    .np-d-sm-flex {
        display: flex !important;
    }

    .np-d-sm-grid {
        display: grid !important;
    }

    .np-sm-w-full {
        width: 100%;
    }

    .np-list-inline {
        gap: var(--np-spacing-xs, 0.5rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .np-fade-in,
    .np-slide-up,
    .np-scale-in {
        animation: none !important;
    }

    .np-hover-lift:hover,
    .np-hover-lift:focus-within,
    .np-hover-scale:hover,
    .np-hover-scale:focus-within {
        transform: none;
    }
}

@media print {
    html,
    body {
        background: #ffffff !important;
        color: #000000 !important;
    }

    body {
        min-width: 0;
    }

    a {
        color: #000000 !important;
        text-decoration: underline !important;
    }

    img,
    svg {
        break-inside: avoid;
    }

    .site-header,
    .site-footer,
    .np-site-header,
    .np-site-footer,
    .np-mobile-header,
    .np-offcanvas,
    .np-modal,
    .np-search-panel,
    .np-backdrop,
    .np-toast-region,
    .skip-link,
    .np-skip-link,
    .np-print-hidden {
        display: none !important;
    }

    .np-print-only {
        display: block !important;
    }

    .site,
    #page,
    .wp-site-blocks,
    .np-site,
    .site-main,
    #primary,
    .wp-site-main,
    .np-main {
        min-height: 0 !important;
        background: #ffffff !important;
        box-shadow: none !important;
    }
}