:root {
    --nd-color-bg: #ffffff;
    --nd-color-surface: #f7f8fc;
    --nd-color-text: #10183a;
    --nd-color-muted: #667085;
    --nd-color-border: #e6e8ef;
    --nd-color-primary: #4b4fe8;
    --nd-color-accent: #8b5cf6;
    --nd-radius-sm: 8px;
    --nd-radius-md: 14px;
    --nd-radius-lg: 22px;
    --nd-shadow: 0 12px 32px rgba(16, 24, 58, .08);
    --nd-content-width: 760px;
    --nd-wide-width: 1200px;
    --nd-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --nd-space-1: .5rem;
    --nd-space-2: 1rem;
    --nd-space-3: 1.5rem;
    --nd-space-4: 2rem;
    --nd-space-5: 3rem;
}

/* NovaDream's general content design is deliberately scoped so plugin-owned surfaces can opt out. */
.nd-theme-surface,
.nd-theme-surface * ,
.nd-theme-surface *::before,
.nd-theme-surface *::after { box-sizing: border-box; }

.nd-theme-surface { margin: 0; background: var(--nd-color-bg); color: var(--nd-color-text); font-family: var(--nd-font-family); line-height: 1.6; }
.nd-theme-surface a { color: var(--nd-color-primary); text-decoration-thickness: .08em; text-underline-offset: .18em; }
.nd-theme-surface img { max-width: 100%; height: auto; }
.nd-theme-surface button,
.nd-theme-surface input,
.nd-theme-surface select,
.nd-theme-surface textarea { font: inherit; }
.nd-theme-surface :focus-visible { outline: 3px solid var(--nd-color-accent); outline-offset: 3px; }

/* Theme shell selectors remain namespaced and safe for hybrid/plugin-controlled pages. */
.nd-container { width: min(calc(100% - 2rem), var(--nd-wide-width)); margin-inline: auto; }
.nd-main { min-height: 60vh; padding-block: clamp(2rem, 5vw, 5rem); }
.nd-site-header { border-bottom: 1px solid var(--nd-color-border); background: rgba(255,255,255,.96); color: var(--nd-color-text); font-family: var(--nd-font-family); }
.nd-site-header__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nd-site-title { color: var(--nd-color-text); font-size: 1.25rem; font-weight: 700; text-decoration: none; }
.nd-menu { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; align-items: center; }
.nd-menu a { color: var(--nd-color-text); text-decoration: none; }
.nd-menu-toggle { display: none; min-height: 44px; padding: .65rem 1rem; border: 1px solid var(--nd-color-border); border-radius: var(--nd-radius-sm); background: #fff; color: var(--nd-color-text); font: inherit; }
.nd-menu-toggle:focus-visible,
.nd-site-header a:focus-visible,
.nd-site-footer a:focus-visible { outline: 3px solid var(--nd-color-accent); outline-offset: 3px; }
.nd-card { margin-bottom: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--nd-color-border); border-radius: var(--nd-radius-lg); background: #fff; box-shadow: var(--nd-shadow); }
.nd-entry__header h1,
.nd-entry__header h2,
.nd-page-header h1 { line-height: 1.15; }
.nd-entry__media { margin-block: 1.25rem; overflow: hidden; border-radius: var(--nd-radius-md); }
.nd-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .75rem 1.1rem; border-radius: var(--nd-radius-sm); background: var(--nd-color-primary); color: #fff; text-decoration: none; }
.nd-site-footer { margin-top: 3rem; border-top: 1px solid var(--nd-color-border); background: var(--nd-color-surface); color: var(--nd-color-text); font-family: var(--nd-font-family); }
.nd-site-footer__inner { padding-block: 2.5rem; }
.nd-footer-menu { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; padding: 0; }
.nd-copyright { color: var(--nd-color-muted); font-size: .925rem; }
.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; }
.screen-reader-text:focus { position: fixed; z-index: 99999; top: 1rem; left: 1rem; width: auto; height: auto; padding: .75rem 1rem; clip: auto; background: #fff; color: #000; }

@media (max-width: 782px) {
    .nd-menu-toggle { display: inline-flex; }
    .nd-primary-nav { display: none; position: absolute; z-index: 50; top: 76px; left: 0; right: 0; padding: 1rem; background: #fff; border-bottom: 1px solid var(--nd-color-border); }
    .nd-primary-nav.is-open { display: block; }
    .nd-menu { flex-direction: column; align-items: stretch; }
    .nd-menu a { display: block; min-height: 44px; padding: .7rem; }
}

@media (prefers-reduced-motion: reduce) {
    .nd-theme-surface { scroll-behavior: auto; }
    .nd-theme-surface *,
    .nd-theme-surface *::before,
    .nd-theme-surface *::after,
    .nd-site-header *,
    .nd-site-footer * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* NovaDream v1.00.03 layout engine. Layout classes are isolated from plugin-owned application markup. */
.nd-shell { margin-inline: auto; }
.nd-shell--contained { width: min(calc(100% - 2rem), var(--nd-content-width)); }
.nd-shell--wide { width: min(calc(100% - 2rem), var(--nd-wide-width)); }
.nd-shell--full { width: 100%; padding-inline: clamp(1rem, 3vw, 3rem); }
.nd-shell--canvas { width: 100%; padding: 0; }
.nd-shell--app { width: 100%; max-width: none; padding-inline: clamp(.75rem, 2vw, 1.5rem); }
.nd-layout-canvas .nd-main { min-height: 100vh; padding-block: 0; }
.nd-layout-app .nd-main { min-height: 70vh; padding-block: 1rem 5rem; }

@media (max-width: 782px) {
    .nd-shell--contained,
    .nd-shell--wide { width: min(calc(100% - 1.25rem), var(--nd-wide-width)); }
    .nd-shell--full { padding-inline: .75rem; }
    .nd-shell--app { padding-inline: .625rem; }
}

/* NovaDream v1.00.04 header system. */
.nd-site-header { position: relative; z-index: 40; }
.nd-site-header--sticky { position: sticky; top: 0; }
.admin-bar .nd-site-header--sticky { top: 32px; }
.nd-site-header--transparent { background: rgba(255,255,255,.82); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.nd-branding { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.nd-branding .custom-logo-link { display: inline-flex; align-items: center; }
.nd-branding .custom-logo { width: auto; max-height: 54px; }
.nd-site-tagline { margin: .2rem 0 0; color: var(--nd-color-muted); font-size: .82rem; line-height: 1.2; }
.nd-header-actions { display: flex; align-items: center; gap: .75rem; }
.nd-header-action { color: var(--nd-color-text); text-decoration: none; white-space: nowrap; }
.nd-header-cta { white-space: nowrap; }
.nd-site-header--centered-logo .nd-site-header__inner { flex-wrap: wrap; justify-content: center; padding-block: .8rem; }
.nd-site-header--centered-logo .nd-branding { width: 100%; align-items: center; text-align: center; }
.nd-site-header--centered-logo .nd-primary-nav { order: 3; width: 100%; }
.nd-site-header--centered-logo .nd-menu { justify-content: center; }
.nd-site-header--centered-logo .nd-header-actions { position: absolute; right: max(1rem, calc((100vw - var(--nd-wide-width))/2)); top: 1rem; }
.nd-site-header--split .nd-branding { flex: 0 0 auto; }
.nd-site-header--split .nd-primary-nav { flex: 1 1 auto; }
.nd-site-header--split .nd-menu { justify-content: center; }

@media (max-width: 782px) {
    .admin-bar .nd-site-header--sticky { top: 46px; }
    .nd-site-header__inner { position: relative; min-height: 68px; }
    .nd-branding .custom-logo { max-height: 46px; }
    .nd-header-actions { margin-left: auto; }
    .nd-header-actions .nd-header-action { display: none; }
    .nd-header-actions .nd-header-cta { min-height: 40px; padding: .6rem .8rem; font-size: .9rem; }
    .nd-site-header--centered-logo .nd-site-header__inner { justify-content: space-between; flex-wrap: nowrap; }
    .nd-site-header--centered-logo .nd-branding { width: auto; align-items: flex-start; text-align: left; }
    .nd-site-header--centered-logo .nd-header-actions { position: static; }
    .nd-site-header--centered-logo .nd-primary-nav { width: auto; }
}

/* NovaDream Footer System */
.nd-site-footer {
    margin-top: clamp(3rem, 7vw, 6rem);
    border-top: 1px solid var(--nd-color-border);
    background: var(--nd-color-surface);
    color: var(--nd-color-text);
}
.nd-site-footer__inner { padding-block: clamp(2.5rem, 5vw, 4.5rem) 1.5rem; }
.nd-footer-main { display: grid; gap: clamp(2rem, 4vw, 4rem); }
.nd-footer-main--one-column { grid-template-columns: minmax(0, 1fr); }
.nd-footer-main--two-column { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.nd-footer-main--three-column { grid-template-columns: minmax(180px, .75fr) minmax(0, 1.5fr) minmax(180px, .75fr); }
.nd-footer-main--four-column { grid-template-columns: minmax(180px, .8fr) minmax(0, 1.6fr); }
.nd-footer-branding { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.nd-footer-branding .custom-logo { width: auto; max-height: 64px; }
.nd-footer-site-title { color: var(--nd-color-text); font-size: 1.25rem; font-weight: 700; text-decoration: none; }
.nd-footer-tagline { margin: 0; color: var(--nd-color-muted); max-width: 32rem; }
.nd-footer-widgets { display: grid; gap: 1.5rem; }
.nd-footer-widgets--one-column { grid-template-columns: 1fr; }
.nd-footer-widgets--two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nd-footer-widgets--three-column { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nd-footer-widgets--four-column { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nd-footer-widget-area > :first-child { margin-top: 0; }
.nd-footer-widget-area > :last-child { margin-bottom: 0; }
.nd-widget__title { font-size: 1rem; margin-bottom: .85rem; }
.nd-footer-navigation { align-self: start; }
.nd-footer-menu,
.nd-footer-legal-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.nd-footer-menu { flex-direction: column; align-items: flex-start; }
.nd-footer-menu a,
.nd-footer-legal-menu a { color: var(--nd-color-text); text-decoration: none; }
.nd-footer-menu a:hover,
.nd-footer-legal-menu a:hover { text-decoration: underline; text-underline-offset: .2em; }
.nd-footer-legal-navigation { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--nd-color-border); }
.nd-footer-bottom { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--nd-color-border); display: flex; justify-content: space-between; gap: 1rem 2rem; color: var(--nd-color-muted); font-size: .925rem; }
.nd-footer-bottom p { margin: 0; }
.nd-site-footer--one-column .nd-footer-main { text-align: center; }
.nd-site-footer--one-column .nd-footer-branding { align-items: center; }
.nd-site-footer--one-column .nd-footer-menu { flex-direction: row; justify-content: center; align-items: center; }

@media (max-width: 960px) {
    .nd-footer-main--three-column,
    .nd-footer-main--four-column { grid-template-columns: 1fr; }
    .nd-footer-widgets--four-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .nd-footer-main--two-column { grid-template-columns: 1fr; }
    .nd-footer-widgets--two-column,
    .nd-footer-widgets--three-column,
    .nd-footer-widgets--four-column { grid-template-columns: 1fr; }
    .nd-footer-bottom { flex-direction: column; }
    .nd-footer-legal-menu { flex-direction: column; }
}

/* NovaDream v1.00.06 Navigation Studio. */
.nd-bottom-nav { display: none; }
.nd-registered-menu-item a { font-weight: 600; }
@media (max-width: 782px) {
    .nd-menu-open { overflow: hidden; }
    .nd-primary-nav.is-open { max-height: calc(100vh - 68px); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 18px 45px rgba(16,24,58,.12); }
    .nd-bottom-nav { position: fixed; z-index: 80; left: 50%; bottom: max(.65rem, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(calc(100% - 1rem), 560px); padding: .4rem; border: 1px solid var(--nd-color-border); border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 14px 40px rgba(16,24,58,.16); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
    .nd-bottom-nav:has(.nd-bottom-menu) { display: block; }
    .nd-bottom-menu { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); align-items: stretch; gap: .25rem; list-style: none; padding: 0; margin: 0; }
    .nd-bottom-menu li { min-width: 0; }
    .nd-bottom-menu a { display: flex; min-height: 48px; align-items: center; justify-content: center; padding: .45rem .5rem; border-radius: 12px; color: var(--nd-color-text); font-size: .78rem; font-weight: 650; line-height: 1.1; text-align: center; text-decoration: none; }
    .nd-bottom-menu .current-menu-item > a,
    .nd-bottom-menu .current_page_item > a { background: var(--nd-color-surface); color: var(--nd-color-primary); }
    body:has(.nd-bottom-nav .nd-bottom-menu) { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
}

/* NovaDream v1.00.08 Studio native page-builder primitives. */
.nd-studio-section {
    position: relative;
    padding-block: var(--nd-section-pad-desktop, 72px);
}
.nd-studio-section__inner {
    margin-inline: auto;
    width: min(calc(100% - 2rem), var(--nd-content-width));
}
.nd-studio-section--wide .nd-studio-section__inner {
    width: min(calc(100% - 2rem), var(--nd-wide-width));
}
.nd-studio-section--full .nd-studio-section__inner {
    width: 100%;
    max-width: none;
}
.nd-studio-surface--soft { background: var(--nd-color-surface); }
.nd-studio-surface--dark { background: var(--nd-color-text); color: var(--nd-color-background); }
.nd-studio-surface--dark :where(h1,h2,h3,h4,h5,h6,a) { color: inherit; }
.nd-studio-grid {
    display: grid;
    grid-template-columns: repeat(var(--nd-grid-desktop, 3), minmax(0, 1fr));
    gap: var(--nd-grid-gap, 24px);
}
.nd-studio-grid > * { min-width: 0; }
.nd-hide-desktop { display: none !important; }
@media (max-width: 1024px) {
    .nd-studio-section { padding-block: var(--nd-section-pad-tablet, 56px); }
    .nd-studio-grid { grid-template-columns: repeat(var(--nd-grid-tablet, 2), minmax(0, 1fr)); }
    .nd-hide-desktop { display: initial !important; }
    .nd-hide-tablet { display: none !important; }
}
@media (max-width: 640px) {
    .nd-studio-section { padding-block: var(--nd-section-pad-mobile, 36px); }
    .nd-studio-grid { grid-template-columns: repeat(var(--nd-grid-mobile, 1), minmax(0, 1fr)); }
    .nd-hide-tablet { display: initial !important; }
    .nd-hide-mobile { display: none !important; }
}

/* NovaDream v1.00.09 Studio core component library. */
.nd-studio-hero,
.nd-studio-cta {
    padding: clamp(2rem, 6vw, 5rem);
    border: 1px solid var(--nd-color-border);
    border-radius: var(--nd-radius-lg);
    background: var(--nd-color-surface);
}
.nd-studio-hero { max-width: 980px; }
.nd-studio-eyebrow { margin: 0 0 .75rem; color: var(--nd-color-primary); font-size: .78rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.nd-studio-title { margin: 0; font-size: clamp(2rem, 5vw, 4.75rem); line-height: 1.02; letter-spacing: -.035em; }
.nd-studio-copy { max-width: 52rem; margin: 1rem 0 0; color: var(--nd-color-muted); font-size: clamp(1rem, 1.6vw, 1.22rem); line-height: 1.65; }
.nd-studio-action { display: inline-flex; margin-top: 1.5rem; }
.nd-studio-split-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr); gap: clamp(2rem,5vw,5rem); align-items: center; }
.nd-studio-split-hero__media img,
.nd-studio-media img { display: block; width: 100%; height: auto; border-radius: var(--nd-radius-lg); }
.nd-studio-media { margin: 0; }
.nd-studio-media figcaption { margin-top: .65rem; color: var(--nd-color-muted); font-size: .9rem; }
.nd-studio-media__placeholder { display: grid; min-height: 240px; place-items: center; border: 1px dashed var(--nd-color-border); border-radius: var(--nd-radius-lg); color: var(--nd-color-muted); background: var(--nd-color-surface); }
.nd-studio-content { max-width: 760px; }
.nd-studio-content > :first-child { margin-top: 0; }
.nd-studio-card { height: 100%; padding: clamp(1.25rem,2.5vw,2rem); border: 1px solid var(--nd-color-border); border-radius: var(--nd-radius-lg); background: var(--nd-color-surface); box-shadow: 0 10px 30px rgba(16,24,58,.06); }
.nd-studio-card h3 { margin-top: 0; }
.nd-studio-card p { color: var(--nd-color-muted); }
.nd-studio-card a { font-weight: 700; text-underline-offset: .2em; }
.nd-studio-icon-card__icon { display: grid; width: 2.75rem; height: 2.75rem; margin-bottom: 1rem; place-items: center; border-radius: var(--nd-radius-md); background: var(--nd-color-primary); color: #fff; font-size: 1.2rem; }
.nd-studio-stat { display: flex; flex-direction: column; gap: .35rem; padding: 1.5rem; border-left: 4px solid var(--nd-color-primary); }
.nd-studio-stat__value { font-size: clamp(2rem,5vw,4rem); line-height: 1; letter-spacing: -.04em; }
.nd-studio-stat__label { color: var(--nd-color-muted); font-weight: 650; }
.nd-studio-cta { text-align: center; }
.nd-studio-cta .nd-studio-copy { margin-inline: auto; }
.nd-studio-faq { padding: 1rem 0; border-bottom: 1px solid var(--nd-color-border); }
.nd-studio-faq summary { cursor: pointer; font-weight: 750; }
.nd-studio-faq p { color: var(--nd-color-muted); }
.nd-studio-testimonial { margin: 0; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid var(--nd-color-border); border-radius: var(--nd-radius-lg); background: var(--nd-color-surface); }
.nd-studio-testimonial__quote { margin-top: 0; font-size: clamp(1.15rem,2vw,1.55rem); line-height: 1.55; }
.nd-studio-testimonial footer { display: flex; flex-wrap: wrap; gap: .35rem .75rem; color: var(--nd-color-muted); }
.nd-studio-testimonial footer strong { color: var(--nd-color-text); }
.nd-studio-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.nd-studio-gallery .wp-block-image { margin: 0; }
.nd-studio-gallery img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; border-radius: var(--nd-radius-md); }
.nd-studio-logo-cloud { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(1.5rem,4vw,3.5rem); }
.nd-studio-logo-cloud .wp-block-image { margin: 0; }
.nd-studio-logo-cloud img { width: auto; max-width: 180px; max-height: 72px; object-fit: contain; }
@media (max-width: 782px) {
    .nd-studio-split-hero { grid-template-columns: 1fr; }
    .nd-studio-split-hero__media { order: -1; }
    .nd-studio-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
    .nd-studio-gallery { grid-template-columns: 1fr; }
    .nd-studio-gallery img { min-height: 180px; }
}

/* NovaDream v1.00.10 advanced Studio layout controls. */
.nd-studio-section {
    display: flex;
    min-height: var(--nd-section-min-height, auto);
    align-items: var(--nd-section-align, start);
}
.nd-studio-section__inner {
    padding-inline: var(--nd-section-inline-desktop, 16px);
}
.nd-studio-grid {
    column-gap: var(--nd-grid-gap, 24px);
    row-gap: var(--nd-grid-row-gap, 24px);
    align-items: var(--nd-grid-align, stretch);
    justify-items: var(--nd-grid-justify, stretch);
}
.nd-studio-grid--dense { grid-auto-flow: dense; }
.nd-studio-flex {
    display: flex;
    flex-direction: var(--nd-flex-direction-desktop, row);
    flex-wrap: var(--nd-flex-wrap, wrap);
    gap: var(--nd-flex-gap-desktop, 24px);
    align-items: var(--nd-flex-align, stretch);
    justify-content: var(--nd-flex-justify, flex-start);
}
.nd-studio-flex > * { min-width: 0; }
@media (max-width: 1024px) {
    .nd-studio-section__inner { padding-inline: var(--nd-section-inline-tablet, 16px); }
    .nd-studio-flex { flex-direction: var(--nd-flex-direction-tablet, row); gap: var(--nd-flex-gap-tablet, 20px); }
}
@media (max-width: 640px) {
    .nd-studio-section__inner { padding-inline: var(--nd-section-inline-mobile, 12px); }
    .nd-studio-flex { flex-direction: var(--nd-flex-direction-mobile, column); gap: var(--nd-flex-gap-mobile, 16px); }
    .nd-studio-flex--reverse-mobile { flex-direction: column-reverse; }
}

/* Linked Global Sections — v1.00.11. */
.nd-global-section {
    display: block;
}

/* NovaDream Studio dynamic content */
.nd-dynamic-grid {
    display: grid;
    grid-template-columns: repeat(var(--nd-dynamic-columns, 3), minmax(0, 1fr));
    gap: 24px;
}
.nd-dynamic-card {
    overflow: hidden;
    background: var(--nd-color-surface, #fff);
    border: 1px solid var(--nd-color-border, #e5e7eb);
    border-radius: var(--nd-radius-lg, 18px);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .06);
}
.nd-dynamic-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.nd-dynamic-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd-dynamic-card__body { padding: 22px; }
.nd-dynamic-card__meta { margin-bottom: 8px; color: var(--nd-color-muted, #64748b); font-size: .82rem; }
.nd-dynamic-card__title { margin: 0; font-size: clamp(1.05rem, 2vw, 1.35rem); }
.nd-dynamic-card__title a { color: inherit; text-decoration: none; }
.nd-dynamic-card__excerpt { margin: 10px 0 0; color: var(--nd-color-muted, #64748b); }
.nd-dynamic-empty { padding: 28px; border: 1px dashed var(--nd-color-border, #d1d5db); border-radius: var(--nd-radius-md, 12px); text-align: center; }
@media (max-width: 900px) { .nd-dynamic-grid { grid-template-columns: repeat(min(2, var(--nd-dynamic-columns, 2)), minmax(0, 1fr)); } }
@media (max-width: 640px) { .nd-dynamic-grid { grid-template-columns: 1fr; } }

/* NovaDream v1.00.14 Dynamic Cards and Loops. */
.nd-dynamic-loop {
    display: grid;
    grid-template-columns: repeat(var(--nd-loop-desktop, 3), minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.5rem);
    align-items: stretch;
}
.nd-loop-card {
    min-width: 0;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--nd-color-border);
    border-radius: var(--nd-radius-lg);
    background: var(--nd-color-surface);
    box-shadow: 0 10px 30px rgba(16,24,58,.06);
    display: flex;
    flex-direction: column;
}
.nd-loop-card__media { display: block; aspect-ratio: 16/10; overflow: hidden; background: color-mix(in srgb, var(--nd-color-surface) 85%, var(--nd-color-border)); }
.nd-loop-card--member .nd-loop-card__media { aspect-ratio: 1/1; }
.nd-loop-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.nd-loop-card__media:hover img { transform: scale(1.025); }
.nd-loop-card__body { display: flex; flex: 1; flex-direction: column; padding: clamp(1rem, 2vw, 1.5rem); }
.nd-loop-card__badge { align-self: flex-start; margin-bottom: .75rem; padding: .3rem .6rem; border-radius: 999px; background: var(--nd-color-primary); color: #fff; font-size: .75rem; font-weight: 700; }
.nd-loop-card__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: .65rem; color: var(--nd-color-muted); font-size: .82rem; }
.nd-loop-card__title { margin: 0; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.2; }
.nd-loop-card__title a { color: inherit; text-decoration: none; }
.nd-loop-card__excerpt { margin: .75rem 0 0; color: var(--nd-color-muted); line-height: 1.6; }
.nd-loop-card__action { margin-top: auto; padding-top: 1.1rem; font-weight: 700; text-decoration: none; }
.nd-loop-empty { padding: 1.25rem; border: 1px dashed var(--nd-color-border); border-radius: var(--nd-radius-md); color: var(--nd-color-muted); background: var(--nd-color-surface); }
@media (max-width: 1024px) {
    .nd-dynamic-loop { grid-template-columns: repeat(var(--nd-loop-tablet, 2), minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .nd-dynamic-loop { grid-template-columns: repeat(var(--nd-loop-mobile, 1), minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .nd-loop-card__media img { transition: none; }
}

/* NovaDream Studio runtime templates */
.nd-studio-template {
    width: 100%;
}

.nd-studio-template > :first-child {
    margin-top: 0;
}

.nd-studio-template > :last-child {
    margin-bottom: 0;
}
