/* Public-site v2 components. Load after tokens.css and only from the V2 layout. */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--njp-bg); color: var(--njp-ink); font: var(--njp-fw-regular) var(--njp-text-base)/var(--njp-leading-body) var(--njp-font-sans); }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--njp-saffron); outline-offset: 3px; }
.njp-shell { width: min(var(--njp-shell-max), calc(100% - 2 * var(--njp-shell-gutter))); margin-inline: auto; }
.njp-skip-link { position: fixed; z-index: calc(var(--njp-z-drawer) + 1); top: var(--njp-space-3); left: var(--njp-space-3); transform: translateY(-180%); padding: var(--njp-space-3) var(--njp-space-4); background: var(--njp-ink); color: var(--njp-ondark); }
.njp-skip-link:focus { transform: translateY(0); }
.njp-display { font-family: var(--njp-font-display); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); letter-spacing: var(--njp-tracking-tight); text-wrap: balance; }
.njp-eyebrow { margin: 0 0 var(--njp-space-3); color: var(--njp-saffron); font: var(--njp-fw-semibold) var(--njp-text-xs)/1 var(--njp-font-sans); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }
.njp-muted { color: var(--njp-muted); }
.njp-section { padding-block: var(--njp-section-y); }
.njp-section--wash { background: var(--njp-wash); }
.njp-section--dark { background: var(--njp-ink); color: var(--njp-ondark); }
.njp-section__heading { display: flex; align-items: end; justify-content: space-between; gap: var(--njp-space-5); margin-bottom: var(--njp-space-7); border-top: 1px solid currentColor; padding-top: var(--njp-space-4); }
.njp-section__title { margin: 0; font-size: var(--njp-text-2xl); }

.njp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; border: 1px solid var(--njp-line-dark); border-radius: var(--njp-radius-pill); padding: 0 22px; background: transparent; color: var(--njp-ink); font: var(--njp-fw-medium) var(--njp-text-sm)/1 var(--njp-font-sans); text-decoration: none; transition: background var(--njp-dur-fast) var(--njp-ease), border-color var(--njp-dur-fast) var(--njp-ease), color var(--njp-dur-fast) var(--njp-ease); }
.njp-btn:hover { background: var(--njp-ink); color: var(--njp-bg); }
.njp-btn--solid { border-color: var(--njp-ink); background: var(--njp-ink); color: var(--njp-bg); }
.njp-btn--accent { border-color: var(--njp-saffron); background: var(--njp-saffron); color: var(--njp-on-accent); }
.njp-btn--accent:hover { border-color: var(--njp-saffron-deep); background: var(--njp-saffron-deep); color: var(--njp-on-accent); }
.njp-btn--inverse { border-color: var(--njp-ondark-line); color: var(--njp-ondark); }
.njp-btn--inverse:hover { background: var(--njp-ondark); color: var(--njp-ink); }
.njp-btn:disabled, .njp-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; pointer-events: none; }
.njp-link { border-bottom: 1px solid currentColor; padding-bottom: 2px; font: var(--njp-fw-medium) var(--njp-text-sm)/1.2 var(--njp-font-sans); text-decoration: none; }

.njp-site-header { position: relative; z-index: var(--njp-z-nav); border-bottom: 1px solid var(--njp-line); background: var(--njp-bg); }
.njp-header__bar { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: var(--njp-space-5); }
.njp-brand { display: inline-flex; align-items: center; gap: var(--njp-space-3); color: var(--njp-ink); font: var(--njp-fw-medium) var(--njp-text-sm)/1.1 var(--njp-font-sans); letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.njp-brand__mark { width: 34px; height: 34px; color: var(--njp-saffron); }
.njp-nav { display: flex; align-items: center; gap: var(--njp-space-5); }
.njp-nav__list { display: flex; align-items: center; gap: var(--njp-space-5); margin: 0; padding: 0; list-style: none; }
.njp-nav__item { position: relative; }
.njp-nav__link, .njp-nav__toggle { border: 0; padding: var(--njp-space-2) 0; background: transparent; color: var(--njp-ink-soft); font: var(--njp-fw-medium) var(--njp-text-sm)/1.2 var(--njp-font-sans); text-decoration: none; }
.njp-nav__toggle { display: inline-flex; align-items: center; gap: 6px; }
.njp-nav__toggle::after { width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; content: ""; transform: rotate(45deg) translateY(-2px); }
.njp-nav__link:hover, .njp-nav__toggle:hover, .njp-nav__link[aria-current="page"] { color: var(--njp-saffron-deep); }
.njp-nav__menu { position: absolute; top: calc(100% + var(--njp-space-3)); left: calc(var(--njp-space-4) * -1); display: grid; min-width: 220px; margin: 0; border: 1px solid var(--njp-line); padding: var(--njp-space-2); background: var(--njp-surface); box-shadow: var(--njp-shadow-panel); list-style: none; }
.njp-nav__menu[hidden] { display: none; }
.njp-nav__menu a { display: block; padding: var(--njp-space-3) var(--njp-space-4); color: var(--njp-ink); font-size: var(--njp-text-sm); text-decoration: none; }
.njp-nav__menu a:hover, .njp-nav__menu a:focus-visible { background: var(--njp-wash); }
.njp-nav__donate { white-space: nowrap; }
.njp-menu-button { display: none; width: 44px; height: 44px; border: 1px solid var(--njp-line-dark); background: transparent; color: var(--njp-ink); }
.njp-menu-button__line, .njp-menu-button::before, .njp-menu-button::after { display: block; width: 18px; height: 1px; margin: auto; background: currentColor; content: ""; transition: transform var(--njp-dur-fast) var(--njp-ease), opacity var(--njp-dur-fast) var(--njp-ease); }
.njp-menu-button::before { transform: translateY(-5px); }.njp-menu-button::after { transform: translateY(4px); }
.njp-menu-button[aria-expanded="true"] .njp-menu-button__line { opacity: 0; }.njp-menu-button[aria-expanded="true"]::before { transform: translateY(1px) rotate(45deg); }.njp-menu-button[aria-expanded="true"]::after { transform: translateY(-1px) rotate(-45deg); }
.njp-nav-scrim { position: fixed; z-index: var(--njp-z-scrim); inset: 0; border: 0; background: var(--njp-scrim); }.njp-nav-scrim[hidden] { display: none; }
.njp-mobile-drawer { position: fixed; z-index: var(--njp-z-drawer); top: 0; right: 0; width: min(92vw, 420px); height: 100dvh; padding: var(--njp-space-7) var(--njp-space-5); overflow-y: auto; background: var(--njp-surface); box-shadow: var(--njp-shadow-panel); transform: translateX(100%); transition: transform var(--njp-dur-base) var(--njp-ease); }.njp-mobile-drawer.is-open { transform: translateX(0); }
.njp-mobile-drawer__close { position: absolute; top: var(--njp-space-4); right: var(--njp-space-4); width: 44px; height: 44px; border: 0; background: transparent; font-size: 1.75rem; }.njp-mobile-drawer__list { margin: var(--njp-space-6) 0; padding: 0; list-style: none; }.njp-mobile-drawer__list a { display: block; border-bottom: 1px solid var(--njp-line); padding: var(--njp-space-4) 0; font: var(--njp-fw-medium) var(--njp-text-lg)/1.2 var(--njp-font-sans); text-decoration: none; }

.njp-hero { display: grid; min-height: min(720px, 80vh); align-items: end; background: var(--njp-ink); color: var(--njp-ondark); }.njp-hero__content { max-width: 780px; padding-block: clamp(88px, 14vw, 180px) var(--njp-section-y); }.njp-hero .njp-eyebrow { color: var(--njp-gold); }.njp-hero__title { margin: 0; font-size: var(--njp-text-hero); }.njp-hero__lede { max-width: 55ch; margin: var(--njp-space-5) 0 var(--njp-space-6); color: var(--njp-ondark-muted); font-size: var(--njp-text-md); }
.njp-grid { display: grid; gap: var(--njp-space-5); }.njp-grid--3 { grid-template-columns: repeat(3, 1fr); }.njp-grid--2 { grid-template-columns: repeat(2, 1fr); }
.njp-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--njp-line); background: var(--njp-surface); }.njp-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--njp-wash); }.njp-card__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-card__body { display: grid; gap: var(--njp-space-3); padding: var(--njp-space-5); }.njp-card__title { margin: 0; font-size: var(--njp-text-lg); }.njp-card__meta { margin: 0; color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-darshan { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); background: var(--njp-ink); color: var(--njp-ondark); }.njp-darshan__media { min-height: 360px; }.njp-darshan__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-darshan__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 6vw, 80px); }.njp-darshan__content .njp-eyebrow { color: var(--njp-gold); }.njp-darshan__title { margin: 0; font-size: var(--njp-text-2xl); }
.njp-campaign { padding: var(--njp-space-7); border-top: 1px solid var(--njp-line-dark); border-bottom: 1px solid var(--njp-line-dark); }.njp-progress { height: 6px; overflow: hidden; background: var(--njp-line); }.njp-progress__bar { width: var(--njp-progress, 0%); height: 100%; background: var(--njp-saffron); }
.njp-form { display: grid; gap: var(--njp-space-5); }.njp-field { display: grid; gap: var(--njp-space-2); }.njp-field label { font: var(--njp-fw-medium) var(--njp-text-sm)/1.3 var(--njp-font-sans); }.njp-field input, .njp-field select, .njp-field textarea { width: 100%; min-height: 44px; border: 1px solid var(--njp-line); border-radius: var(--njp-radius-sm); padding: var(--njp-space-3); background: var(--njp-surface); color: var(--njp-ink); }.njp-field textarea { min-height: 132px; resize: vertical; }.njp-field input:focus, .njp-field select:focus, .njp-field textarea:focus { border-color: var(--njp-saffron); outline: 2px solid transparent; }.njp-field--error input, .njp-field--error select, .njp-field--error textarea { border-color: var(--njp-danger); }.njp-field__error { margin: 0; color: var(--njp-danger); font-size: var(--njp-text-sm); }
.njp-prose { max-width: 68ch; color: var(--njp-ink); font-size: var(--njp-text-md); }.njp-prose h1, .njp-prose h2, .njp-prose h3, .njp-prose h4 { margin: 1.6em 0 .5em; font-family: var(--njp-font-display); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-snug); letter-spacing: var(--njp-tracking-tight); }.njp-prose h1 { font-size: var(--njp-text-2xl); }.njp-prose h2 { font-size: var(--njp-text-xl); }.njp-prose h3 { font-size: var(--njp-text-lg); }.njp-prose p, .njp-prose ul, .njp-prose ol { margin: 0 0 1em; }.njp-prose a { color: var(--njp-saffron-deep); text-decoration-thickness: 1px; text-underline-offset: 2px; }.njp-prose blockquote { margin: 1.4em 0; border-left: 2px solid var(--njp-gold); padding-left: var(--njp-space-5); font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-style: italic; }.njp-prose img { filter: var(--njp-media-grade); }
.njp-site-footer { border-top: 1px solid var(--njp-ondark-line); padding-block: var(--njp-space-8) var(--njp-space-5); background: var(--njp-ink); color: var(--njp-ondark); }.njp-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: var(--njp-space-6); }.njp-footer__title { margin: 0 0 var(--njp-space-3); font-size: var(--njp-text-lg); }.njp-footer__links { margin: 0; padding: 0; list-style: none; }.njp-footer__links li + li { margin-top: var(--njp-space-2); }.njp-footer a { color: var(--njp-ondark-muted); text-decoration: none; }.njp-footer a:hover { color: var(--njp-ondark); text-decoration: underline; }.njp-footer__legal { margin-top: var(--njp-space-7); border-top: 1px solid var(--njp-ondark-line); padding-top: var(--njp-space-4); color: var(--njp-ondark-muted); font-size: var(--njp-text-xs); }
/* Layout and homepage naming contract used by the V2 Razor partials. */
.njp-header { position: relative; z-index: var(--njp-z-nav); border-bottom: 1px solid var(--njp-line); background: var(--njp-bg); }.njp-header > .njp-shell { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: var(--njp-space-5); }.njp-utility { border-bottom: 1px solid var(--njp-line); padding-block: var(--njp-space-2); color: var(--njp-muted); font-size: var(--njp-text-xs); }.njp-nav__dropdown { position: relative; }.njp-nav__drawer { position: fixed; z-index: var(--njp-z-drawer); top: 0; right: 0; width: min(92vw, 420px); height: 100dvh; padding: var(--njp-space-7) var(--njp-space-5); overflow-y: auto; background: var(--njp-surface); box-shadow: var(--njp-shadow-panel); transform: translateX(100%); transition: transform var(--njp-dur-base) var(--njp-ease); }.njp-nav__drawer.is-open { transform: translateX(0); }.njp-footer { border-top: 1px solid var(--njp-ondark-line); padding-block: var(--njp-space-8) var(--njp-space-5); background: var(--njp-ink); color: var(--njp-ondark); }
.njp-infoline { border-block: 1px solid var(--njp-line); padding-block: var(--njp-space-4); color: var(--njp-ink-soft); font-size: var(--njp-text-sm); }.njp-offerings, .njp-events, .njp-stores { display: grid; gap: var(--njp-space-5); }.njp-offering-row, .njp-event-row { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; gap: var(--njp-space-5); align-items: center; border-top: 1px solid var(--njp-line); padding: var(--njp-space-5) 0; }.njp-noticeboard { border-left: 2px solid var(--njp-saffron); padding: var(--njp-space-5); background: var(--njp-wash); }.njp-wisdom { max-width: 880px; margin-inline: auto; text-align: center; }.njp-wisdom blockquote { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); line-height: var(--njp-leading-snug); }.njp-store-card { border: 1px solid var(--njp-line); background: var(--njp-surface); }.njp-visit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-7); }.njp-donate { border-block: 1px solid var(--njp-line-dark); padding-block: var(--njp-section-y); text-align: center; }
body.njp-drawer-open { overflow: hidden; }
@media (max-width: 860px) { .njp-nav__list, .njp-nav__donate { display: none; }.njp-menu-button { display: grid; place-content: center; }.njp-grid--3 { grid-template-columns: repeat(2, 1fr); }.njp-darshan { grid-template-columns: 1fr; }.njp-darshan__media { min-height: auto; aspect-ratio: 4 / 3; }.njp-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { :root { --njp-shell-gutter: 16px; }.njp-section__heading { display: grid; align-items: start; }.njp-grid--3, .njp-grid--2 { grid-template-columns: 1fr; }.njp-hero { min-height: 620px; }.njp-footer__grid { grid-template-columns: 1fr; }.njp-campaign { padding: var(--njp-space-5); } }
@media (max-width: 600px) { .njp-offering-row, .njp-event-row, .njp-visit { grid-template-columns: 1fr; gap: var(--njp-space-3); }.njp-offering-row, .njp-event-row { padding-block: var(--njp-space-4); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } }

/* Release 1 shell and homepage compositions. */
.njp-section__title, .njp-darshan__title, .njp-footer__title, .njp-donate h2 { font-family: var(--njp-font-display); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); letter-spacing: var(--njp-tracking-tight); text-wrap: balance; }
.njp-utility__inner, .njp-utility__links, .njp-actions, .njp-hero__actions { display: flex; align-items: center; gap: var(--njp-space-4); }
.njp-utility__inner, .njp-utility__links { flex-wrap: wrap; }
.njp-utility__inner { justify-content: space-between; }
.njp-utility__links a { display: inline-flex; align-items: center; gap: var(--njp-space-2); color: inherit; text-decoration: none; }
.njp-utility__links a:hover { color: var(--njp-ink); }
.njp-icon { display: inline-grid; width: 18px; flex: 0 0 18px; place-items: center; }
.njp-icon svg { width: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75; }
.njp-cart-count { display: inline-grid; min-width: 18px; height: 18px; place-items: center; border-radius: var(--njp-radius-pill); background: var(--njp-danger); color: var(--njp-on-accent); font-size: 10px; }
.njp-brand__mark { border-radius: 50%; object-fit: cover; }
.njp-brand strong, .njp-brand small { display: block; }
.njp-brand small { margin-top: 4px; color: var(--njp-muted); font-size: 10px; letter-spacing: .08em; }
.njp-nav__menu { z-index: 2; width: min(360px, 88vw); }
.njp-nav__menu strong, .njp-nav__menu small { display: block; }
.njp-nav__menu strong { font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-weight: var(--njp-fw-regular); }
.njp-nav__menu small { margin-top: var(--njp-space-1); color: var(--njp-muted); line-height: 1.35; }
.njp-mobile-submenu { margin: 0; padding: 0 0 var(--njp-space-3) var(--njp-space-4); list-style: none; }
.njp-mobile-submenu[hidden] { display: none; }
.njp-mobile-drawer .njp-nav__toggle { width: 100%; justify-content: space-between; border-bottom: 1px solid var(--njp-line); padding: var(--njp-space-4) 0; color: var(--njp-ink); font-size: var(--njp-text-lg); }
.njp-footer__links { display: grid; align-content: start; gap: var(--njp-space-2); }

.njp-hero { position: relative; isolation: isolate; min-height: min(720px, 78vh); overflow: hidden; }
.njp-hero > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 32%; filter: var(--njp-media-grade); }
.njp-hero__shade { position: absolute; z-index: -1; inset: 0; background: var(--njp-hero-shade); }
.njp-hero__content { align-self: end; width: 100%; max-width: var(--njp-shell-max); padding-block: var(--njp-space-9) clamp(36px, 5vw, 64px); }
.njp-hero__title { max-width: 15ch; font-family: var(--njp-font-display); font-weight: var(--njp-fw-regular); line-height: 1.02; letter-spacing: var(--njp-tracking-tight); text-wrap: balance; }
.njp-hero__title em { color: var(--njp-gold); font-weight: inherit; }
.njp-hero__row { display: flex; align-items: end; justify-content: space-between; gap: var(--njp-space-6); margin-top: var(--njp-space-5); }
.njp-hero__lede { margin: 0; }
.njp-infoline__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.njp-infoline__grid > div { display: grid; gap: var(--njp-space-1); border-right: 1px solid var(--njp-line); padding-inline: var(--njp-space-5); }
.njp-infoline__grid > div:first-child { padding-left: 0; }
.njp-infoline__grid > div:last-child { border-right: 0; padding-right: 0; }
.njp-infoline span { color: var(--njp-muted); font-size: var(--njp-text-xs); letter-spacing: .08em; text-transform: uppercase; }
.njp-infoline a { text-decoration: none; }
.njp-actions { flex-wrap: wrap; margin-top: var(--njp-space-5); }
.njp-empty-state { border: 1px solid var(--njp-line); padding: var(--njp-space-6); }
.njp-empty-state p { max-width: 55ch; }
.njp-offering-row, .njp-event-row { color: inherit; text-decoration: none; }
.njp-offering-row { grid-template-columns: 64px minmax(0, 1fr) minmax(160px, auto) 24px; }
.njp-offering-row__index { color: var(--njp-saffron); font-size: var(--njp-text-xs); letter-spacing: .12em; }
.njp-offering-row__content, .njp-event-row > span, .njp-event-row time { display: grid; gap: var(--njp-space-1); }
.njp-offering-row__content strong, .njp-event-row strong { font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-offering-row small, .njp-event-row small, .njp-event-row span, .njp-event-row time { color: var(--njp-muted); }
.njp-offering-row:hover strong, .njp-event-row:hover strong { color: var(--njp-saffron-deep); }
.njp-offering-row__meta { font-size: var(--njp-text-xs); }
.njp-card__media { aspect-ratio: 4 / 5; }
.njp-card__title a { text-decoration: none; }
.njp-wisdom { max-width: none; padding-block: var(--njp-section-y); background: var(--njp-ink); color: var(--njp-ondark); }
.njp-wisdom .njp-eyebrow { color: var(--njp-gold); }
.njp-wisdom blockquote { max-width: 22ch; margin-inline: auto; }
.njp-wisdom cite { display: block; margin-top: var(--njp-space-5); color: var(--njp-ondark-muted); font-style: normal; }
.njp-store-card { display: flex; min-height: 320px; flex-direction: column; color: inherit; text-decoration: none; }
.njp-store-card__media { min-height: 210px; flex: 1; overflow: hidden; background: var(--njp-wash); }
.njp-store-card__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }
.njp-store-card__body { display: grid; gap: var(--njp-space-2); padding: var(--njp-space-5); }
.njp-store-card__body strong { font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-store-card__body small { color: var(--njp-muted); }
.njp-visit__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-8); }
.njp-visit__address { font-family: var(--njp-font-display); font-size: var(--njp-text-lg); }
.njp-times { border-top: 1px solid var(--njp-line-dark); }
.njp-times > div { display: flex; justify-content: space-between; gap: var(--njp-space-4); border-bottom: 1px solid var(--njp-line); padding-block: var(--njp-space-4); }
.njp-times > small { display: block; margin-top: var(--njp-space-4); color: var(--njp-muted); }
.njp-donate { background: var(--njp-ink); color: var(--njp-ondark); text-align: left; }
.njp-donate .njp-eyebrow { color: var(--njp-gold); }
.njp-donate h2 { max-width: 20ch; margin: 0; font-size: var(--njp-text-2xl); }
.njp-donate__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--njp-space-7); }

@media (max-width: 860px) {
  .njp-utility__note { display: none; }
  .njp-hero__row, .njp-donate__inner { align-items: flex-start; flex-direction: column; }
  .njp-infoline__grid { grid-template-columns: 1fr; }
  .njp-infoline__grid > div { border-right: 0; border-bottom: 1px solid var(--njp-line); padding: var(--njp-space-3) 0; }
  .njp-infoline__grid > div:last-child { border-bottom: 0; }
  .njp-visit__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .njp-utility__inner { align-items: flex-start; }
  .njp-utility__links { gap: var(--njp-space-3); }
  .njp-utility__links:first-child a:first-child { display: none; }
  .njp-brand small { display: none; }
  .njp-offering-row { grid-template-areas: "index content arrow" ". meta arrow"; grid-template-columns: 36px minmax(0, 1fr) 20px; }
  .njp-offering-row__index { grid-area: index; }
  .njp-offering-row__content { grid-area: content; }
  .njp-offering-row__meta { grid-area: meta; }
  .njp-offering-row__arrow { grid-area: arrow; }
  .njp-event-row { grid-template-columns: minmax(0, 1fr) 20px; }
  .njp-event-row time { grid-column: 1 / -1; }
}

/* Shared content and CMS page templates. */
.njp-page-header { padding-block: clamp(56px, 9vw, 104px); background: var(--njp-wash); }
.njp-page-header--image { position: relative; isolation: isolate; overflow: hidden; background: var(--njp-ink); color: var(--njp-ondark); }
.njp-page-header--image > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }
.njp-page-header__shade { position: absolute; z-index: -1; inset: 0; background: var(--njp-page-shade); }
.njp-page-header__content { max-width: min(var(--njp-shell-max), 100%); }
.njp-page-header--image .njp-eyebrow { color: var(--njp-gold); }
.njp-page-header__title { max-width: 18ch; margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-hero); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); letter-spacing: var(--njp-tracking-tight); text-wrap: balance; }
.njp-page-header__lede, .njp-section__lede { max-width: 62ch; margin: var(--njp-space-5) 0 0; color: var(--njp-ink-soft); font-size: var(--njp-text-md); }
.njp-page-header--image .njp-page-header__lede { color: var(--njp-ondark-muted); }
.njp-page-header .njp-actions { margin-top: var(--njp-space-6); }
.njp-breadcrumbs { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); margin-bottom: var(--njp-space-6); color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-breadcrumbs a { color: inherit; text-decoration: none; }.njp-breadcrumbs a:hover { color: var(--njp-saffron-deep); text-decoration: underline; }
.njp-page-header--image .njp-breadcrumbs { color: var(--njp-ondark-muted); }.njp-page-header--image .njp-breadcrumbs a:hover { color: var(--njp-ondark); }
.njp-content-card { padding: var(--njp-space-6); }.njp-content-card > :first-child { margin-top: 0; }.njp-content-card > :last-child { margin-bottom: 0; }
.njp-content-card__title, .njp-page-content__title { margin: 0 0 var(--njp-space-4); font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); }
.njp-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-8); align-items: start; }
.njp-contact-list { display: grid; gap: var(--njp-space-4); margin: var(--njp-space-6) 0 0; }.njp-contact-list div { border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-3); }.njp-contact-list dt { margin-bottom: var(--njp-space-1); color: var(--njp-muted); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-semibold); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-contact-list dd { margin: 0; }.njp-contact-list a { color: var(--njp-saffron-deep); }
.njp-form-panel { border: 1px solid var(--njp-line); padding: var(--njp-space-6); background: var(--njp-surface); }.njp-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }.njp-status { border-left: 3px solid var(--njp-success); padding: var(--njp-space-5); background: var(--njp-surface); }.njp-status h2 { margin-top: 0; font-family: var(--njp-font-display); font-weight: var(--njp-fw-regular); }.njp-status--error { border-color: var(--njp-danger); color: var(--njp-danger); }.njp-status--success { color: var(--njp-ink); }
.njp-page-content { max-width: 76ch; margin-inline: auto; }.njp-page-content--wide, .njp-page-content--landing { max-width: none; }.njp-page-content__header { margin-bottom: var(--njp-space-7); border-bottom: 1px solid var(--njp-line); padding-bottom: var(--njp-space-5); }.njp-page-content__meta { margin: 0; color: var(--njp-muted); font-size: var(--njp-text-sm); }.njp-preview-notice { padding-block: var(--njp-space-3); background: var(--njp-gold); color: var(--njp-ink); font-size: var(--njp-text-sm); }
.njp-page-list-card { display: grid; gap: var(--njp-space-3); min-height: 100%; padding: var(--njp-space-5); color: var(--njp-ink); text-decoration: none; }.njp-page-list-card:hover { background: var(--njp-wash); }.njp-page-list-card__meta { color: var(--njp-muted); font-size: var(--njp-text-xs); }.njp-page-list-card__title { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
@media (max-width: 700px) { .njp-two-column { grid-template-columns: 1fr; gap: var(--njp-space-6); }.njp-form-panel, .njp-content-card { padding: var(--njp-space-5); } }

/* Posts, events, filters and volunteer participation. */
.njp-section--muted { background: var(--njp-wash); }.njp-section-heading { margin-bottom: var(--njp-space-6); }.njp-section-heading h2, .njp-display-heading { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); }.njp-content-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: var(--njp-space-7); align-items: start; }.njp-sidebar { display: grid; gap: var(--njp-space-5); }.njp-panel { border: 1px solid var(--njp-line); padding: var(--njp-space-5); background: var(--njp-surface); }.njp-panel > :first-child { margin-top: 0; }.njp-panel h2 { font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-stack { display: grid; gap: var(--njp-space-3); }.njp-btn--secondary { border-color: var(--njp-ink-soft); color: var(--njp-ink); }.njp-btn--secondary:hover { border-color: var(--njp-ink); }
.njp-filter-bar { display: grid; gap: var(--njp-space-4); }.njp-filter-bar--spaced { margin-bottom: var(--njp-space-7); }.njp-filter-bar__header, .njp-filter-bar__actions { display: flex; align-items: center; justify-content: space-between; gap: var(--njp-space-4); }.njp-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--njp-space-4); }.njp-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-3); }.njp-label { font: var(--njp-fw-medium) var(--njp-text-sm)/1.3 var(--njp-font-sans); }.njp-input, .njp-select { width: 100%; min-height: 44px; border: 1px solid var(--njp-line); border-radius: var(--njp-radius-sm); padding: var(--njp-space-3); background: var(--njp-surface); color: var(--njp-ink); }.njp-input:focus, .njp-select:focus { border-color: var(--njp-saffron); outline: 2px solid transparent; }
.njp-chip-row { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }.njp-chip { display: inline-flex; min-height: 36px; align-items: center; border: 1px solid var(--njp-line); border-radius: var(--njp-radius-pill); padding: 0 var(--njp-space-3); background: var(--njp-surface); color: var(--njp-ink-soft); font: var(--njp-fw-medium) var(--njp-text-xs)/1 var(--njp-font-sans); text-decoration: none; }.njp-chip:hover, .njp-chip.is-active { border-color: var(--njp-saffron); background: var(--njp-saffron); color: var(--njp-on-accent); }
.njp-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--njp-space-5); }.njp-post-card { display: flex; min-width: 0; flex-direction: column; }.njp-post-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--njp-wash); }.njp-post-card__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); transition: transform var(--njp-dur-base) var(--njp-ease); }.njp-post-card:hover .njp-post-card__media img { transform: scale(1.025); }.njp-post-card__body { display: grid; flex: 1; gap: var(--njp-space-3); padding: var(--njp-space-5); }.njp-post-card__body h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-snug); }.njp-post-card__body h2 a { text-decoration: none; }.njp-post-card__body p { margin: 0; color: var(--njp-ink-soft); }.njp-post-card__meta, .njp-content-meta { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); color: var(--njp-muted); font-size: var(--njp-text-xs); }.njp-text-link { color: var(--njp-saffron-deep); font: var(--njp-fw-medium) var(--njp-text-sm)/1.3 var(--njp-font-sans); text-decoration: underline; text-underline-offset: 3px; }.njp-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--njp-space-4); margin-top: var(--njp-space-7); }
.njp-timeline { display: grid; gap: var(--njp-space-7); }.njp-date-group { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: var(--njp-space-5); }.njp-date-heading { margin: 0; border-top: 2px solid var(--njp-line-dark); padding-top: var(--njp-space-3); font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-date-heading__weekday { display: block; margin-top: var(--njp-space-1); color: var(--njp-muted); font-family: var(--njp-font-sans); font-size: var(--njp-text-xs); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-event-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: var(--njp-space-5); align-items: center; padding: var(--njp-space-5); }.njp-event-row__date, .njp-event-row__meta { display: grid; gap: var(--njp-space-1); }.njp-event-row__date { color: var(--njp-saffron-deep); font-weight: var(--njp-fw-semibold); }.njp-event-row__meta { color: var(--njp-muted); font-size: var(--njp-text-sm); }.njp-event-row__actions { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }
.njp-event-agenda { display: grid; gap: var(--njp-space-7); }.njp-agenda-day { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: var(--njp-space-6); border-top: 1px solid var(--njp-line-dark); padding-top: var(--njp-space-5); }.njp-agenda-day__date h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); }.njp-agenda-day__date p { margin: var(--njp-space-2) 0 0; color: var(--njp-muted); font-size: var(--njp-text-xs); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-agenda-day__items { display: grid; gap: var(--njp-space-2); }.njp-agenda-item { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: var(--njp-space-5); align-items: center; min-width: 0; border-left: 3px solid var(--njp-saffron); padding: var(--njp-space-4) 0 var(--njp-space-4) var(--njp-space-4); }.njp-agenda-item + .njp-agenda-item { border-top: 1px solid var(--njp-line); }.njp-agenda-item--observance { border-left-color: var(--njp-line-dark); padding-right: var(--njp-space-4); background: var(--njp-wash); }.njp-agenda-item__time time { display: grid; gap: var(--njp-space-1); color: var(--njp-muted); font-size: var(--njp-text-xs); }.njp-agenda-item__time strong { color: var(--njp-ink-soft); font-family: var(--njp-font-sans); font-size: var(--njp-text-sm); font-weight: var(--njp-fw-medium); }.njp-agenda-item__content { min-width: 0; }.njp-agenda-item__kind { margin: 0 0 var(--njp-space-2); color: var(--njp-saffron-deep); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-medium); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-agenda-item--observance .njp-agenda-item__kind { color: var(--njp-ink-soft); }.njp-agenda-item__content h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-snug); }.njp-agenda-item__content h3 a { color: inherit; text-decoration: none; }.njp-agenda-item__content h3 a:hover { color: var(--njp-saffron-deep); }.njp-agenda-item__sanskrit { margin: var(--njp-space-1) 0 0; color: var(--njp-ink-soft); font-family: var(--njp-font-display); font-style: italic; }.njp-agenda-item__meta { display: flex; flex-wrap: wrap; gap: var(--njp-space-1) var(--njp-space-4); margin: var(--njp-space-2) 0 0; padding: 0; color: var(--njp-muted); font-size: var(--njp-text-xs); list-style: none; }.njp-agenda-item__meta li { position: relative; }.njp-agenda-item__meta li + li::before { position: absolute; left: calc(-1 * var(--njp-space-2) - 2px); content: "\00B7"; }.njp-agenda-item__note { margin: var(--njp-space-2) 0 0; color: var(--njp-saffron-deep); font-family: var(--njp-font-display); font-style: italic; }.njp-agenda-item__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--njp-space-3); padding-right: var(--njp-space-4); }.njp-agenda-item__actions .njp-text-link { white-space: nowrap; }
.njp-event-detail { overflow: hidden; }.njp-event-detail__media { aspect-ratio: 16 / 7; background: var(--njp-wash); }.njp-event-detail__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-event-detail__body { padding: var(--njp-space-6); }.njp-event-detail__body .njp-prose { margin-top: var(--njp-space-5); }.njp-event-volunteers, .njp-event-related { border-top: 1px solid var(--njp-line); padding: var(--njp-space-6); }.njp-event-volunteers__progress { margin: 0 0 var(--njp-space-2); color: var(--njp-muted); font-size: var(--njp-text-sm); }.njp-progress { height: 8px; overflow: hidden; background: var(--njp-line); }.njp-progress__value { display: block; width: var(--njp-progress-value, 0%); height: 100%; background: var(--njp-saffron); }.njp-progress__value--medium { background: var(--njp-gold); }.njp-progress__value--high { background: var(--njp-success); }.njp-task-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-4); margin-top: var(--njp-space-5); }.njp-task-card, .njp-related-link, .njp-note { border: 1px solid var(--njp-line); padding: var(--njp-space-5); background: var(--njp-surface); }.njp-task-card > div:first-child { display: flex; align-items: start; justify-content: space-between; gap: var(--njp-space-3); }.njp-task-card h3, .njp-related-link h3, .njp-note h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-weight: var(--njp-fw-regular); }.njp-task-card__status { color: var(--njp-muted); font-weight: var(--njp-fw-medium); }.njp-related-link + .njp-related-link { border-top: 0; }.njp-detail-list { display: grid; gap: var(--njp-space-4); margin: 0; }.njp-detail-list div { border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-3); }.njp-detail-list dt { color: var(--njp-muted); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-semibold); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-detail-list dd { margin: var(--njp-space-1) 0 0; }
.njp-page-header h1 { max-width: 18ch; margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-hero); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-tight); letter-spacing: var(--njp-tracking-tight); text-wrap: balance; }.njp-page-header h1 + p { max-width: 62ch; color: var(--njp-ink-soft); font-size: var(--njp-text-md); }.njp-page-header__actions { display: flex; flex-wrap: wrap; gap: var(--njp-space-3); margin-top: var(--njp-space-6); }.njp-progress__value--low { width: 33%; }.njp-progress__value--medium { width: 66%; }.njp-progress__value--high { width: 100%; }.njp-directions-panel { overflow-wrap: anywhere; }.njp-promotion-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.njp-promotion-card { overflow: hidden; }.njp-promotion-card > img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: var(--njp-media-grade); }.njp-promotion-card__body { display: grid; gap: var(--njp-space-3); padding: var(--njp-space-5); }.njp-promotion-card__body h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-prose figure { margin: var(--njp-space-6) 0; }.njp-prose figcaption { margin-top: var(--njp-space-2); color: var(--njp-muted); font-size: var(--njp-text-sm); }.njp-prose table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; font-size: var(--njp-text-sm); }.njp-prose th, .njp-prose td { min-width: 120px; border-bottom: 1px solid var(--njp-line); padding: var(--njp-space-3); text-align: left; }.njp-prose th { font-weight: var(--njp-fw-semibold); }.njp-prose pre { overflow-x: auto; padding: var(--njp-space-4); background: var(--njp-wash); }.njp-prose code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .9em; }.njp-prose hr { border: 0; border-top: 1px solid var(--njp-line); margin: var(--njp-space-7) 0; }.njp-prose iframe, .njp-prose video { width: 100%; max-width: 100%; aspect-ratio: 16 / 9; height: auto; }

/* Release 3: devotional, gallery, darshan and noticeboard surfaces. */
.njp-media-placeholder { display: grid; width: 100%; min-height: 160px; place-items: center; background: var(--njp-wash); color: var(--njp-muted); font: var(--njp-fw-medium) var(--njp-text-sm)/1.3 var(--njp-font-sans); letter-spacing: var(--njp-tracking-caps); text-transform: uppercase; }.njp-content-footer { margin-top: var(--njp-space-7); border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-4); }
.njp-deity-card, .njp-gallery-card, .njp-darshan-card { overflow: hidden; }.njp-deity-card__media, .njp-gallery-card__media, .njp-darshan-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--njp-wash); }.njp-deity-card__media img, .njp-gallery-card__media img, .njp-darshan-card__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-deity-card__body, .njp-gallery-card__body, .njp-darshan-card__body { display: grid; flex: 1; gap: var(--njp-space-3); padding: var(--njp-space-5); }.njp-deity-card__body h2, .njp-gallery-card__body h2, .njp-gallery-card__body h3, .njp-darshan-card__body h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-deity-card__body h2 a, .njp-gallery-card__body h2 a, .njp-gallery-card__body h3 a, .njp-darshan-card__body h2 a { text-decoration: none; }.njp-deity-card__body p, .njp-gallery-card__body p, .njp-darshan-card__body p { margin: 0; }
.njp-deity-darshan { background: var(--njp-ink); color: var(--njp-ondark); }.njp-deity-darshan__inner { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1fr); gap: var(--njp-space-8); align-items: center; }.njp-deity-darshan__media { aspect-ratio: 4 / 3; overflow: hidden; }.njp-deity-darshan__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-deity-darshan h2 { font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); font-weight: var(--njp-fw-regular); }.njp-deity-darshan h2 a { color: inherit; text-decoration: none; }.njp-deity-darshan time { color: var(--njp-ondark-muted); }
.njp-promotion-card > a { display: block; }.njp-promotion-card > a > img, .njp-promotion-card > img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: var(--njp-media-grade); }.njp-promotion-card__body h2, .njp-promotion-card__body h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-promotion-card__body h2 a { text-decoration: none; }.njp-promotion-detail { display: grid; grid-template-columns: minmax(260px, 420px) minmax(0, 1fr); gap: var(--njp-space-7); align-items: start; }.njp-promotion-detail__poster { margin: 0; border: 1px solid var(--njp-line); background: var(--njp-surface); }.njp-promotion-detail__poster img { width: 100%; aspect-ratio: 4 / 5; object-fit: contain; }
.njp-gallery-intro { margin-bottom: var(--njp-space-7); }.njp-media-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--njp-space-5); }.njp-media-card { overflow: hidden; }.njp-media-card__media { display: grid; min-height: 220px; overflow: hidden; place-items: center; background: var(--njp-wash); color: var(--njp-ink); text-decoration: none; }.njp-media-card__media img, video.njp-media-card__media { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: var(--njp-media-grade); }.njp-media-card__body { display: grid; gap: var(--njp-space-3); padding: var(--njp-space-4); }.njp-media-card__body p { margin: 0; }.njp-gallery-widget { margin-block: var(--njp-space-7); }.njp-gallery-rail { display: grid; grid-auto-columns: minmax(260px, 32%); grid-auto-flow: column; gap: var(--njp-space-5); overflow-x: auto; padding-bottom: var(--njp-space-3); scroll-snap-type: x proximity; }.njp-gallery-rail > * { scroll-snap-align: start; }
.njp-view-toggle { display: flex; gap: var(--njp-space-2); margin-bottom: var(--njp-space-6); }.njp-result-count { color: var(--njp-muted); font-size: var(--njp-text-sm); }.njp-darshan-feature { display: grid; grid-template-columns: minmax(300px, 1.15fr) minmax(0, .85fr); }.njp-darshan-feature__media { min-height: 380px; }.njp-darshan-feature__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }.njp-darshan-feature__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 5vw, 64px); }.njp-darshan-feature__body h2 { margin: var(--njp-space-3) 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); font-weight: var(--njp-fw-regular); }.njp-darshan-feature__body h2 a { text-decoration: none; }.njp-darshan-card__body time, .njp-darshan-feature__body time { color: var(--njp-muted); font-size: var(--njp-text-xs); }.njp-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--njp-space-4); margin-bottom: var(--njp-space-5); }.njp-calendar-toolbar h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-calendar-toolbar nav { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }.njp-darshan-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--njp-line); background: var(--njp-line); }.njp-darshan-calendar__weekday, .njp-darshan-calendar__day { min-height: 54px; padding: var(--njp-space-2); background: var(--njp-surface); }.njp-darshan-calendar__weekday { min-height: auto; color: var(--njp-muted); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-semibold); text-align: center; }.njp-darshan-calendar__day { position: relative; color: var(--njp-muted); text-decoration: none; }.njp-darshan-calendar__day.has-darshan { color: var(--njp-ink); font-weight: var(--njp-fw-semibold); }.njp-darshan-calendar__day.is-today { box-shadow: inset 0 0 0 2px var(--njp-saffron); }.njp-darshan-calendar__day img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; }.njp-darshan-calendar__day span { position: relative; z-index: 1; }.njp-darshan-detail { overflow: hidden; }.njp-darshan-detail__figure { margin: 0; background: var(--njp-ink); }.njp-darshan-detail__figure img { width: 100%; max-height: 820px; object-fit: contain; }.njp-darshan-detail__body { padding: var(--njp-space-7); }.njp-share { margin-top: var(--njp-space-7); border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-5); }.njp-share h2 { font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }.njp-adjacent-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-5); margin-top: var(--njp-space-7); border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-5); }.njp-adjacent-nav > div:last-child { text-align: right; }.njp-adjacent-nav a { display: grid; gap: var(--njp-space-1); text-decoration: none; }.njp-adjacent-nav span { color: var(--njp-muted); font-size: var(--njp-text-xs); }
@media (max-width: 860px) { .njp-content-layout, .njp-date-group { grid-template-columns: 1fr; }.njp-card-grid, .njp-promotion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-date-heading { max-width: 160px; }.njp-event-row { grid-template-columns: 74px minmax(0, 1fr); }.njp-event-row__actions { grid-column: 2; } }
@media (max-width: 860px) { .njp-agenda-day { grid-template-columns: 1fr; gap: var(--njp-space-3); }.njp-agenda-day__date { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--njp-space-3); }.njp-agenda-day__date p { margin-top: 0; }.njp-agenda-item { grid-template-columns: 96px minmax(0, 1fr); }.njp-agenda-item__actions { grid-column: 2; justify-content: flex-start; padding-right: 0; } }
@media (max-width: 860px) { .njp-deity-darshan__inner, .njp-promotion-detail, .njp-darshan-feature { grid-template-columns: 1fr; }.njp-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-gallery-rail { grid-auto-columns: minmax(260px, 62%); }.njp-darshan-feature__media { min-height: 320px; } }
@media (max-width: 480px) { .njp-panel, .njp-event-detail__body, .njp-event-volunteers, .njp-event-related { padding: var(--njp-space-4); }.njp-filter-grid, .njp-field-grid, .njp-card-grid, .njp-promotion-grid, .njp-task-grid { grid-template-columns: 1fr; }.njp-filter-bar__header, .njp-filter-bar__actions, .njp-pagination { align-items: stretch; flex-direction: column; }.njp-filter-bar__actions .njp-btn, .njp-pagination .njp-btn { width: 100%; }.njp-event-row { grid-template-columns: 1fr; gap: var(--njp-space-3); }.njp-event-row__actions { grid-column: auto; }.njp-event-row__actions .njp-btn { flex: 1; }.njp-chip-row { gap: var(--njp-space-1); }.njp-chip { min-height: 44px; }.njp-page-header__title, .njp-page-header h1 { font-size: var(--njp-text-2xl); } }
@media (max-width: 480px) { .njp-agenda-day { padding-top: var(--njp-space-4); }.njp-agenda-item { grid-template-columns: 1fr; gap: var(--njp-space-2); padding: var(--njp-space-4); }.njp-agenda-item__time time { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }.njp-agenda-item__actions { grid-column: auto; }.njp-agenda-item__meta { display: grid; gap: var(--njp-space-1); }.njp-agenda-item__meta li + li::before { display: none; } }

/* Release 4: public donations, offerings and payment hand-off. */
.njp-hidden { display: none !important; }
.njp-list { display: grid; gap: var(--njp-space-2); margin: 0; padding-left: var(--njp-space-5); }
.njp-choice-list { display: grid; gap: var(--njp-space-3); }
.njp-choice { display: flex; align-items: flex-start; gap: var(--njp-space-3); color: var(--njp-ink-soft); }
.njp-choice input { flex: 0 0 auto; margin-top: .3em; accent-color: var(--njp-saffron); }
.njp-offering-card { min-height: 100%; padding: var(--njp-space-5); color: inherit; text-decoration: none; }
.njp-offering-card__title { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-offering-card__mode { color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-offering-flow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: var(--njp-space-7); align-items: start; }
.njp-offering-calendar { gap: var(--njp-space-5); }
.njp-offering-calendar__toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--njp-space-4); }
.njp-offering-calendar__month { margin: 0; }
.njp-offering-calendar__nav { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }
.njp-offering-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--njp-line); background: var(--njp-line); }
.njp-offering-calendar__weekday, .njp-offering-calendar__blank, .njp-offering-calendar__day { min-width: 0; min-height: 52px; border: 0; padding: var(--njp-space-2); background: var(--njp-surface); color: var(--njp-ink); text-align: left; }
.njp-offering-calendar__weekday { min-height: auto; color: var(--njp-muted); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-semibold); text-align: center; }
.njp-offering-calendar__day { display: grid; align-content: space-between; cursor: pointer; }
.njp-offering-calendar__day:hover, .njp-offering-calendar__day.is-selected { background: var(--njp-saffron); color: var(--njp-on-accent); }
.njp-offering-calendar__day.is-today { box-shadow: inset 0 0 0 2px var(--njp-saffron); }
.njp-offering-calendar__day.is-past { color: var(--njp-faint); cursor: not-allowed; }
.njp-offering-calendar__date { font-weight: var(--njp-fw-semibold); }
.njp-offering-calendar__count { font-size: var(--njp-text-xs); }
.njp-offering-selected-list { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); min-height: 36px; }
.njp-offering-selected-chip { display: inline-flex; align-items: center; gap: var(--njp-space-2); }
.njp-offering-payment-option { display: flex; gap: var(--njp-space-3); border: 1px solid var(--njp-line); padding: var(--njp-space-4); background: var(--njp-surface); }
.njp-offering-payment-option > span { display: grid; gap: var(--njp-space-1); }
.njp-offering-summary { position: sticky; top: var(--njp-space-5); display: grid; gap: var(--njp-space-4); }
.njp-offering-summary__total { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); }
.njp-offering-result, .njp-payment-result, .njp-payment-redirect { width: min(100%, 680px); margin-inline: auto; padding: var(--njp-space-7); }
.njp-offering-result > :first-child, .njp-payment-result > :first-child, .njp-payment-redirect > :first-child { margin-top: 0; }
.njp-payment-redirect form, .njp-payment-result form { margin-top: var(--njp-space-6); }
@media (max-width: 860px) { .njp-offering-flow { grid-template-columns: 1fr; }.njp-offering-summary { position: static; }.njp-offering-calendar__toolbar { flex-direction: column; } }
@media (max-width: 560px) { .njp-offering-calendar__weekday, .njp-offering-calendar__blank, .njp-offering-calendar__day { min-height: 44px; padding: var(--njp-space-1); font-size: var(--njp-text-xs); }.njp-offering-calendar__count { display: none; }.njp-offering-result, .njp-payment-result, .njp-payment-redirect { padding: var(--njp-space-5); } }
@media (max-width: 560px) { .njp-media-grid { grid-template-columns: 1fr; }.njp-gallery-rail { grid-auto-columns: 88%; }.njp-calendar-toolbar { align-items: stretch; flex-direction: column; }.njp-calendar-toolbar nav .njp-btn { flex: 1; }.njp-darshan-calendar__weekday, .njp-darshan-calendar__day { min-height: 44px; padding: var(--njp-space-1); }.njp-darshan-calendar__weekday { font-size: .65rem; }.njp-darshan-detail__body { padding: var(--njp-space-4); }.njp-adjacent-nav { grid-template-columns: 1fr; }.njp-adjacent-nav > div:last-child { text-align: left; } }

/* Release 5: venue showcase and venue detail surfaces. */
.njp-venue-hero { min-height: min(680px, 78vh); display: grid; align-items: end; }
.njp-venue-hero > img { object-position: center; }
.njp-venue-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--njp-space-5); }
.njp-venue-card { overflow: hidden; }
.njp-venue-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--njp-wash); }
.njp-venue-card__media img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); transition: transform var(--njp-dur-base) var(--njp-ease); }
.njp-venue-card:hover .njp-venue-card__media img { transform: scale(1.025); }
.njp-venue-card__body { display: flex; flex: 1; flex-direction: column; gap: var(--njp-space-4); padding: var(--njp-space-5); }
.njp-venue-card__body h3, .njp-venue-package h3, .njp-venue-addon h3, .njp-venue-steps h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); line-height: var(--njp-leading-snug); }
.njp-venue-card__body h3 a { text-decoration: none; }
.njp-venue-card__body p, .njp-venue-package p, .njp-venue-addon p { margin: 0; }
.njp-venue-card__actions { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); margin-top: auto; }
.njp-venue-card__actions .njp-btn { flex: 1; }
.njp-venue-facts, .njp-venue-summary { display: grid; gap: var(--njp-space-2); margin: 0; }
.njp-venue-facts div, .njp-venue-summary div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--njp-space-3); border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-2); }
.njp-venue-facts dt, .njp-venue-summary dt { color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-venue-facts dd, .njp-venue-summary dd { margin: 0; font-weight: var(--njp-fw-medium); text-align: right; }
.njp-venue-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--njp-space-5); margin: 0; padding: 0; list-style: none; counter-reset: venue-step; }
.njp-venue-steps li { border-top: 1px solid var(--njp-line-dark); padding-top: var(--njp-space-4); }
.njp-venue-steps li > span { display: grid; width: 40px; height: 40px; margin-bottom: var(--njp-space-4); place-items: center; border-radius: var(--njp-radius-pill); background: var(--njp-ink); color: var(--njp-ondark); font-weight: var(--njp-fw-semibold); }
.njp-venue-steps p { color: var(--njp-ink-soft); }
.njp-venue-testimonial { margin: 0; overflow: hidden; }
.njp-venue-testimonial > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: var(--njp-media-grade); }
.njp-venue-testimonial blockquote { margin: 0; padding: var(--njp-space-5); font-family: var(--njp-font-display); font-size: var(--njp-text-lg); }
.njp-venue-testimonial figcaption { display: grid; gap: var(--njp-space-1); border-top: 1px solid var(--njp-line); padding: var(--njp-space-4) var(--njp-space-5); color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-venue-testimonial figcaption strong { color: var(--njp-ink); }
.njp-venue-cta { text-align: center; }
.njp-venue-cta .njp-eyebrow { color: var(--njp-gold); }
.njp-venue-cta h2 { margin: 0; font-size: var(--njp-text-2xl); }
.njp-venue-cta p { max-width: 56ch; margin: var(--njp-space-4) auto 0; color: var(--njp-ondark-muted); }
.njp-venue-cta .njp-actions { justify-content: center; }
.njp-venue-detail-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--njp-space-7); align-items: end; }
.njp-venue-detail-header h1 { margin-top: var(--njp-space-5); }
.njp-venue-detail-header__actions { display: grid; gap: var(--njp-space-3); }
.njp-venue-availability-status { border-color: var(--njp-success); color: var(--njp-success); }
.njp-venue-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--njp-space-6); }
.njp-venue-summary div { display: grid; justify-content: start; }
.njp-venue-summary dd { text-align: left; }
.njp-venue-gallery { display: grid; gap: var(--njp-space-4); }
.njp-venue-gallery__stage { position: relative; min-height: min(620px, 68vw); overflow: hidden; background: var(--njp-ink); }
.njp-venue-gallery__image { position: absolute; inset: 0; display: none; width: 100%; height: 100%; object-fit: contain; filter: var(--njp-media-grade); }
.njp-venue-gallery__image.is-active { display: block; }
.njp-venue-gallery__controls { position: absolute; right: var(--njp-space-4); bottom: var(--njp-space-4); left: var(--njp-space-4); display: flex; align-items: center; justify-content: center; gap: var(--njp-space-3); }
.njp-venue-gallery__count { min-width: 64px; margin: 0; color: var(--njp-ondark); text-align: center; }
.njp-venue-gallery__thumbnails { display: grid; grid-auto-columns: minmax(96px, 12%); grid-auto-flow: column; gap: var(--njp-space-3); overflow-x: auto; padding-bottom: var(--njp-space-2); }
.njp-venue-gallery__thumbnail { aspect-ratio: 4 / 3; min-width: 0; overflow: hidden; border: 1px solid var(--njp-line); padding: 0; background: var(--njp-surface); }
.njp-venue-gallery__thumbnail.is-active { border-color: var(--njp-saffron); box-shadow: inset 0 0 0 1px var(--njp-saffron); }
.njp-venue-gallery__thumbnail img { width: 100%; height: 100%; object-fit: cover; filter: var(--njp-media-grade); }
.njp-venue-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: var(--njp-space-7); align-items: start; }
.njp-venue-detail-layout__main { display: grid; gap: var(--njp-space-5); }
.njp-venue-detail-layout .njp-panel h3 { margin: 0 0 var(--njp-space-4); font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-venue-feature-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-6); }
.njp-venue-feature-columns h4, .njp-venue-package h4 { margin: 0 0 var(--njp-space-3); }
.njp-venue-list { display: grid; gap: var(--njp-space-2); margin: 0; padding-left: var(--njp-space-5); }
.njp-venue-list li::marker { color: var(--njp-saffron); }
.njp-venue-quick-info { position: sticky; top: var(--njp-space-5); }
.njp-venue-quick-info .njp-stack { margin-top: var(--njp-space-6); }
.njp-venue-package { display: flex; gap: var(--njp-space-4); padding: var(--njp-space-5); }
.njp-venue-package > .njp-btn { margin-top: auto; }
.njp-venue-addon-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--njp-space-4); }
.njp-venue-addon { gap: var(--njp-space-3); padding: var(--njp-space-5); }
.njp-venue-addon__price { margin-top: auto !important; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); }
.njp-venue-addon__price span { color: var(--njp-muted); font-family: var(--njp-font-sans); font-size: var(--njp-text-sm); }
.njp-venue-detail-footer { padding-block: var(--njp-space-6); }
@media (max-width: 860px) { .njp-venue-grid, .njp-venue-addon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-venue-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-venue-detail-header, .njp-venue-detail-layout { grid-template-columns: 1fr; }.njp-venue-detail-header__actions { display: flex; flex-wrap: wrap; }.njp-venue-quick-info { position: static; } }
@media (max-width: 560px) { .njp-venue-hero { min-height: 620px; }.njp-venue-grid, .njp-venue-addon-grid, .njp-venue-steps, .njp-venue-summary, .njp-venue-feature-columns { grid-template-columns: 1fr; }.njp-venue-card__actions, .njp-venue-detail-header__actions, .njp-venue-gallery__controls { align-items: stretch; flex-direction: column; }.njp-venue-card__actions .njp-btn, .njp-venue-detail-header__actions .njp-btn { width: 100%; }.njp-venue-gallery__stage { min-height: 440px; }.njp-venue-gallery__controls { right: var(--njp-space-3); bottom: var(--njp-space-3); left: var(--njp-space-3); }.njp-venue-gallery__controls .njp-btn { min-height: 40px; }.njp-venue-gallery__thumbnails { grid-auto-columns: 30%; }.njp-venue-facts div { display: grid; justify-content: start; }.njp-venue-facts dd { text-align: left; } }

/* Release 5: dependency-free venue availability calendar. */
.njp-venue-availability-layout { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: var(--njp-space-7); align-items: start; }
.njp-venue-availability-filters { position: sticky; top: var(--njp-space-5); }
.njp-venue-availability-filters h2 { margin-bottom: var(--njp-space-5); }
.njp-venue-availability-filters .njp-muted { margin: var(--njp-space-5) 0 0; }
.njp-field__hint { margin: 0; color: var(--njp-muted); font-size: var(--njp-text-xs); }
.njp-venue-availability-content { min-width: 0; }
.njp-venue-availability-content > .njp-status { display: grid; gap: var(--njp-space-1); }
.njp-venue-availability-results { display: grid; gap: var(--njp-space-7); }
.njp-venue-availability-results__heading { display: flex; align-items: end; justify-content: space-between; gap: var(--njp-space-4); margin-bottom: var(--njp-space-5); }
.njp-venue-availability-results__heading h3, .njp-venue-availability-results .njp-panel > h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-venue-availability-results__heading p { margin: var(--njp-space-2) 0 0; color: var(--njp-muted); }
.njp-venue-calendar__legend { display: flex; flex: 0 0 auto; align-items: center; gap: var(--njp-space-2); font-size: var(--njp-text-sm); }
.njp-venue-calendar__legend span { width: 12px; height: 12px; border: 1px solid var(--njp-danger); background: var(--njp-wash); }
.njp-venue-calendar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-4); }
.njp-venue-calendar__month { min-width: 0; overflow: hidden; }
.njp-venue-calendar__month h4 { margin: 0 0 var(--njp-space-4); font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-weight: var(--njp-fw-regular); }
.njp-venue-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--njp-line); background: var(--njp-line); }
.njp-venue-calendar__weekday, .njp-venue-calendar__blank, .njp-venue-calendar__day { min-width: 0; min-height: 44px; border: 0; border-radius: 0; padding: var(--njp-space-2); background: var(--njp-surface); color: var(--njp-ink); font: inherit; text-align: center; }
.njp-venue-calendar__weekday { min-height: auto; color: var(--njp-muted); font-size: var(--njp-text-xs); font-weight: var(--njp-fw-semibold); }
button.njp-venue-calendar__day { cursor: pointer; }
button.njp-venue-calendar__day:hover, button.njp-venue-calendar__day:focus-visible, .njp-venue-calendar__day.is-selected { position: relative; z-index: 1; background: var(--njp-saffron); color: var(--njp-on-accent); outline: 2px solid var(--njp-saffron-deep); outline-offset: -2px; }
.njp-venue-calendar__day.has-conflict { box-shadow: inset 0 -4px 0 var(--njp-danger); }
.njp-venue-calendar__day.is-unavailable { color: var(--njp-muted); text-decoration: line-through; }
.njp-venue-calendar__day.is-outside-range { background: var(--njp-wash); color: var(--njp-faint); }
.njp-venue-conflict-list { display: grid; gap: var(--njp-space-4); margin: var(--njp-space-5) 0 0; padding: 0; list-style: none; }
.njp-venue-conflict-list__item { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(180px, 1fr) minmax(110px, auto); gap: var(--njp-space-3) var(--njp-space-5); align-items: center; border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-4); }
.njp-venue-conflict-list__item h4, .njp-venue-conflict-list__item p { margin: 0; }
.njp-venue-conflict-list__item h4 { font-family: var(--njp-font-display); font-size: var(--njp-text-lg); font-weight: var(--njp-fw-regular); }
.njp-venue-conflict-list__item .njp-muted { grid-column: 1 / 3; }
.njp-venue-conflict-list__item .njp-link { grid-column: 3; grid-row: 1 / 3; justify-self: end; }
@media (max-width: 1040px) { .njp-venue-calendar { grid-template-columns: 1fr; } }
@media (max-width: 860px) { .njp-venue-availability-layout { grid-template-columns: 1fr; }.njp-venue-availability-filters { position: static; }.njp-venue-availability-filters .njp-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-venue-availability-filters .njp-form .njp-field:first-child, .njp-venue-availability-filters .njp-form .njp-field__error { grid-column: 1 / -1; } }
@media (max-width: 560px) { .njp-venue-availability-filters .njp-form { grid-template-columns: 1fr; }.njp-venue-availability-filters .njp-form .njp-field:first-child, .njp-venue-availability-filters .njp-form .njp-field__error { grid-column: auto; }.njp-venue-availability-results__heading { align-items: stretch; flex-direction: column; }.njp-venue-calendar__weekday, .njp-venue-calendar__blank, .njp-venue-calendar__day { min-height: 40px; padding: var(--njp-space-1); font-size: var(--njp-text-xs); }.njp-venue-conflict-list__item { grid-template-columns: 1fr; }.njp-venue-conflict-list__item .njp-muted, .njp-venue-conflict-list__item .njp-link { grid-column: auto; grid-row: auto; justify-self: start; } }

/* Release 5: authenticated venue booking, status and dashboard surfaces. */
.njp-venue-form-shell { width: min(100%, 980px); }
.njp-venue-lead-summary { margin-bottom: var(--njp-space-6); }
.njp-form-section { display: grid; gap: var(--njp-space-5); border-bottom: 1px solid var(--njp-line); padding-bottom: var(--njp-space-6); }
.njp-form-section__heading h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-addon-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-4); }
.njp-addon-card { display: grid; align-content: start; gap: var(--njp-space-3); border: 1px solid var(--njp-line); padding: var(--njp-space-5); background: var(--njp-surface); }
.njp-addon-card.is-selected { border-color: var(--njp-saffron); background: var(--njp-wash); }
.njp-addon-card p { margin: 0; color: var(--njp-ink-soft); }
.njp-addon-card__quantity { max-width: 140px; }
.njp-pricing-summary { display: grid; gap: var(--njp-space-4); border-left: 3px solid var(--njp-gold); padding: var(--njp-space-5); background: var(--njp-wash); }
.njp-pricing-summary[hidden] { display: none; }
.njp-pricing-summary h2, .njp-next-steps h2, .njp-venue-help h2, .njp-booking-workflow h2, .njp-status--warning h2 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-summary-list { display: grid; gap: var(--njp-space-2); margin: 0; }
.njp-summary-list div, .njp-pricing-summary__total { display: flex; justify-content: space-between; gap: var(--njp-space-4); margin: 0; border-top: 1px solid var(--njp-line); padding-top: var(--njp-space-2); }
.njp-summary-list dd { margin: 0; font-weight: var(--njp-fw-semibold); }
.njp-pricing-summary__total { font-size: var(--njp-text-lg); }
.njp-form-actions { display: grid; justify-items: start; gap: var(--njp-space-2); }
.njp-form-actions p { margin: 0; }
.njp-status--warning { border-color: var(--njp-saffron); color: var(--njp-ink); }

.njp-venue-status, .njp-booking-dashboard { display: grid; gap: var(--njp-space-6); }
.njp-booking-workflow { display: grid; gap: var(--njp-space-5); }
.njp-booking-workflow progress { width: 100%; height: 8px; border: 0; background: var(--njp-line); color: var(--njp-success); }
.njp-booking-workflow progress::-webkit-progress-bar { background: var(--njp-line); }
.njp-booking-workflow progress::-webkit-progress-value { background: var(--njp-success); }
.njp-booking-workflow progress::-moz-progress-bar { background: var(--njp-success); }
.njp-workflow-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--njp-space-3); margin: 0; padding: 0; list-style: none; }
.njp-workflow-steps li { display: grid; gap: var(--njp-space-2); color: var(--njp-muted); }
.njp-workflow-steps li > span { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--njp-line); border-radius: var(--njp-radius-pill); background: var(--njp-surface); }
.njp-workflow-steps .is-complete, .njp-workflow-steps .is-current { color: var(--njp-ink); }
.njp-workflow-steps .is-complete > span { border-color: var(--njp-success); background: var(--njp-success); color: var(--njp-ondark); }
.njp-workflow-steps .is-current > span { border-color: var(--njp-saffron); background: var(--njp-saffron); color: var(--njp-on-accent); }
.njp-status-chip { display: inline-flex; min-height: 36px; align-items: center; border: 1px solid currentColor; border-radius: var(--njp-radius-pill); padding: 0 var(--njp-space-3); font-size: var(--njp-text-sm); font-weight: var(--njp-fw-semibold); }
.njp-status-chip--success { color: var(--njp-success); }
.njp-status-chip--danger { color: var(--njp-danger); }
.njp-status-chip--accent { color: var(--njp-saffron-deep); }
.njp-status-chip--muted { color: var(--njp-muted); }
.njp-venue-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--njp-space-5); }
.njp-venue-detail-grid .njp-panel h2, .njp-venue-help h2 { margin-top: 0; }
.njp-venue-status__actions { margin-top: 0; }
.njp-next-steps p:last-child, .njp-venue-help p:last-child { margin-bottom: 0; }
.njp-venue-help p { margin-block: var(--njp-space-2); }

.njp-dialog { width: min(calc(100% - 2 * var(--njp-shell-gutter)), 620px); max-height: calc(100dvh - 2 * var(--njp-shell-gutter)); overflow-y: auto; border: 1px solid var(--njp-line-dark); padding: var(--njp-space-7); background: var(--njp-surface); color: var(--njp-ink); box-shadow: var(--njp-shadow-panel); }
.njp-dialog::backdrop { background: var(--njp-scrim); }
.njp-dialog__dismiss { position: absolute; top: var(--njp-space-3); right: var(--njp-space-3); }
.njp-dialog__close { display: grid; width: 44px; height: 44px; place-items: center; border: 0; background: transparent; color: var(--njp-ink); font-size: var(--njp-text-xl); }

.njp-booking-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--njp-space-4); margin: 0; }
.njp-booking-stats div { display: flex; flex-direction: column-reverse; gap: var(--njp-space-2); border-top: 2px solid var(--njp-line-dark); padding: var(--njp-space-4); background: var(--njp-surface); }
.njp-booking-stats dt { color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-booking-stats dd { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-2xl); }
.njp-booking-tabs { display: grid; gap: var(--njp-space-5); }
.njp-booking-tabs__list { display: flex; flex-wrap: wrap; gap: var(--njp-space-2); }
.njp-booking-list { display: grid; gap: var(--njp-space-5); }
.njp-booking-card { display: grid; gap: var(--njp-space-4); border: 1px solid var(--njp-line); padding: var(--njp-space-5); background: var(--njp-surface); }
.njp-booking-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--njp-space-4); }
.njp-booking-card h3 { margin: 0; font-family: var(--njp-font-display); font-size: var(--njp-text-xl); font-weight: var(--njp-fw-regular); }
.njp-booking-card header p, .njp-booking-card__countdown, .njp-booking-card__notes { margin: 0; }
.njp-booking-card header p, .njp-booking-card__countdown { color: var(--njp-muted); font-size: var(--njp-text-sm); }
.njp-booking-card .njp-detail-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.njp-booking-card__notes { border-left: 2px solid var(--njp-gold); padding-left: var(--njp-space-4); color: var(--njp-ink-soft); }

@media (max-width: 860px) { .njp-booking-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }.njp-booking-card .njp-detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .njp-addon-grid, .njp-venue-detail-grid, .njp-booking-stats, .njp-booking-card .njp-detail-list { grid-template-columns: 1fr; }.njp-addon-card, .njp-dialog { padding: var(--njp-space-4); }.njp-booking-card > header, .njp-pricing-summary__total, .njp-summary-list div { align-items: flex-start; flex-direction: column; }.njp-booking-tabs__list { display: grid; }.njp-booking-tabs__list .njp-chip, .njp-form-actions .njp-btn { width: 100%; }.njp-workflow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media print { .njp-venue-status__actions, .njp-dialog { display: none; }.njp-venue-status { gap: var(--njp-space-4); }.njp-venue-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
