/*
 * Noach's Verbond Cursusportaal 1.2.0
 * Color, typography and layout proportions derived from the user's Gebedscursus 1.3.3.
 * Portal styles are scoped to .nvp-portal. Three narrow compatibility selectors
 * below restore the intended width of known Noach's Verbond page wrappers.
 */
.nvp-portal {
  --nvp-ink: #172433;
  --nvp-ink-soft: #526171;
  --nvp-navy: #173552;
  --nvp-navy-deep: #10283e;
  --nvp-navy-pale: #e8eef3;
  --nvp-gold: #b9852e;
  --nvp-gold-soft: #f2cf83;
  --nvp-paper: #fbfaf7;
  --nvp-parchment: #f2ecdf;
  --nvp-line: #d9dee3;
  --nvp-sidebar-width: 17.5rem;
  --nvp-topbar-height: 5rem;
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: 100vw !important;
  margin-right: -50vw !important;
  margin-left: -50vw !important;
  background: var(--nvp-paper);
  color: var(--nvp-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  text-align: left;
  overflow: clip;
}

/*
 * Twenty Twenty-Five constrains direct post-content children to 645px.
 * The portal and the embedded prayer courses are application surfaces and
 * deliberately escape that content-column limit. The landing page keeps its
 * own intended 1100px reading width. These selectors are limited to known
 * Noach's Verbond wrappers and do not widen ordinary WordPress content.
 */
.wp-block-post-content > .nvg-course-embed,
.entry-content > .nvg-course-embed {
  position: relative;
  left: 50%;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-right: -50vw !important;
  margin-left: -50vw !important;
}
.nvg-course-embed > .nvg-course-frame {
  box-sizing: border-box;
  display: block;
  width: 100% !important;
  max-width: none !important;
  border: 0;
}
.wp-block-post-content > .nv-home,
.entry-content > .nv-home {
  left: 50% !important;
  width: min(1100px, calc(100vw - 2rem)) !important;
  max-width: 1100px !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  transform: translateX(-50%) !important;
}
.nvp-portal *, .nvp-portal *::before, .nvp-portal *::after { box-sizing: border-box; }
.nvp-portal [hidden] { display: none !important; }
.nvp-portal :focus-visible { outline: 3px solid var(--nvp-gold-soft); outline-offset: 3px; }
.nvp-portal h1, .nvp-portal h2, .nvp-portal h3 { margin: 0; color: var(--nvp-ink); font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: -.025em; text-transform: none; }
.nvp-portal h1 { max-width: 21ch; font-size: clamp(2.1rem, 4vw, 3.35rem); line-height: 1.07; }
.nvp-portal h2 { font-size: clamp(1.2rem, 2.1vw, 1.55rem); line-height: 1.22; }
.nvp-portal h3 { font-size: 1.35rem; line-height: 1.3; }
.nvp-portal p { margin: 0; padding: 0; line-height: 1.65; }
.nvp-portal a { text-decoration: none; }
.nvp-portal button { font: inherit; cursor: pointer; }
.nvp-portal img { display: block; max-width: 100%; }
.nvp-skip-link { position: absolute; z-index: 100; top: .5rem; left: .5rem; transform: translateY(-175%); border-radius: .5rem; background: var(--nvp-navy); padding: .6rem .9rem; color: #fff; font-weight: 700; }
.nvp-skip-link:focus { transform: none; }
.nvp-shell { display: grid; grid-template-columns: var(--nvp-sidebar-width) minmax(0, 1fr); grid-template-rows: var(--nvp-topbar-height) minmax(0, 1fr); min-height: 900px; }
.nvp-topbar { position: relative; z-index: 3; grid-column: 1 / -1; display: grid; grid-template-columns: var(--nvp-sidebar-width) minmax(0,1fr); min-height: var(--nvp-topbar-height); border-bottom: 1px solid var(--nvp-line); background: rgba(255,255,255,.96); }
.nvp-brand { display: flex; gap: .8rem; align-items: center; min-width: 0; background: var(--nvp-navy-deep); padding: .8rem 1.35rem; color: #fff !important; }
.nvp-brand:hover, .nvp-brand:focus { color: #fff !important; }
.nvp-brand-mark { display: grid; place-items: center; flex: 0 0 2.65rem; width: 2.65rem; height: 2.65rem; border: 1px solid rgba(242,207,131,.7); border-radius: .7rem; color: var(--nvp-gold-soft); font: 1.7rem/1 Georgia,"Times New Roman",serif; }
.nvp-brand strong, .nvp-brand small { display: block; }
.nvp-brand strong { font-size: .96rem; font-weight: 750; letter-spacing: .01em; }
.nvp-brand small { color: #cdd8e2; font-size: .76rem; }
.nvp-topbar-info { display: flex; justify-content: flex-end; align-items: center; gap: .9rem; padding: .75rem clamp(1rem, 3vw, 2.5rem); color: var(--nvp-ink-soft); font-size: .8rem; }
.nvp-topbar-caption { letter-spacing: .03em; }
.nvp-count { min-width: 8rem; border-bottom: 3px solid #e8ecef; padding: .45rem 0; color: var(--nvp-navy); text-align: right; }
.nvp-count b { color: var(--nvp-gold); font-size: 1rem; }
.nvp-menu-toggle { display: none; }
.nvp-sidebar { position: relative; grid-column: 1; grid-row: 2; min-width: 0; border-right: 1px solid var(--nvp-line); background: #f3f5f6; }
.nvp-sidebar-inner { position: sticky; top: 0; padding: 1.8rem 1rem; }
.nvp-eyebrow { margin: 0 0 .55rem !important; color: var(--nvp-gold); font-size: .76rem; font-weight: 850; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.nvp-language-switch { display: inline-flex; gap: .2rem; margin: 0 0 1.1rem; border: 1px solid #cfd8e0; border-radius: .65rem; background: #fff; padding: .22rem; box-shadow: 0 5px 14px rgba(16,40,62,.05); }
.nvp-language-switch button { min-width: 2.65rem; border: 0; border-radius: .48rem; background: transparent; padding: .38rem .55rem; color: var(--nvp-ink-soft); font-size: .78rem; font-weight: 850; line-height: 1.6; letter-spacing: .05em; }
.nvp-language-switch button[aria-pressed="true"] { background: var(--nvp-navy); color: #fff; }
.nvp-primary-nav { display: grid; gap: .35rem; margin-bottom: 1.5rem; }
.nvp-nav-item { display: flex; align-items: center; gap: .75rem; width: 100%; border: 1px solid transparent; border-radius: .7rem; background: transparent; padding: .72rem; color: #415060 !important; font-size: .87rem; font-weight: 700; line-height: 1.4; }
.nvp-nav-item:hover, .nvp-nav-item:focus-visible { background: #fff; }
.nvp-nav-item.nvp-active { border-color: #cfd8e0; background: #fff; color: var(--nvp-navy) !important; box-shadow: 0 6px 18px rgba(16,40,62,.05); }
.nvp-nav-icon { display: grid; place-items: center; flex: 0 0 2rem; width: 2rem; height: 2rem; border-radius: .5rem; background: var(--nvp-navy-pale); color: var(--nvp-navy); font-size: .95rem; font-weight: 800; }
.nvp-side-feature { display: grid; grid-template-columns: 2.9rem minmax(0,1fr); gap: .8rem; border-radius: .85rem; background: var(--nvp-navy); padding: 1rem; box-shadow: 0 12px 30px rgba(16,40,62,.16); color: #fff; }
.nvp-side-symbol { color: var(--nvp-gold-soft); font: 2rem/1.5 Georgia,serif; }
.nvp-side-feature strong, .nvp-side-feature small { display: block; }
.nvp-side-feature strong { margin-top: .5rem; color: #fff; font-size: .9rem; line-height: 1.3; }
.nvp-side-feature small { margin-top: .35rem; color: #cfdbe5; font-size: .75rem; line-height: 1.5; }
.nvp-status-pill { display: inline-flex; border-radius: 999px; background: rgba(255,255,255,.12); padding: .16rem .5rem; color: var(--nvp-gold-soft); font-size: .67rem; font-weight: 800; }
.nvp-side-note { display: grid; gap: .2rem; margin-top: 1rem; border: 1px dashed #c8d0d7; border-radius: .8rem; padding: .85rem 1rem; color: var(--nvp-ink-soft); font-size: .79rem; }
.nvp-side-note strong { color: var(--nvp-ink); font-size: .84rem; }
.nvp-side-note .nvp-eyebrow { margin-bottom: .1rem !important; font-size: .68rem; }
.nvp-main { grid-column: 2; grid-row: 2; min-width: 0; padding: clamp(1.4rem,4vw,3.7rem) clamp(1rem,4vw,4.5rem) 2.5rem; }
.nvp-main-inner { max-width: 76rem; margin: 0 auto; }
.nvp-route-hero { margin-bottom: 2.1rem; }
.nvp-route-hero .nvp-eyebrow { margin-bottom: .9rem !important; }
.nvp-lead { max-width: 68ch; margin: 1.05rem 0 0 !important; color: var(--nvp-ink-soft); font-size: 1.05rem; line-height: 1.7 !important; }
.nvp-voluntary-note { max-width: 76ch; margin-top: 1.4rem; border: 1px solid #d8c9ad; border-radius: .85rem; background: linear-gradient(140deg,#fffdf8,#f6efe2); padding: 1rem 1.1rem; }
.nvp-voluntary-note strong { color: var(--nvp-navy); font-size: .98rem; }
.nvp-voluntary-note p { margin-top: .35rem; color: #4b5660; font-size: .93rem; }
.nvp-route-summary { display: grid; gap: .12rem; margin-top: 1.15rem; border-left: 3px solid var(--nvp-gold); padding-left: 1rem; color: var(--nvp-ink-soft); font-size: .95rem; }
.nvp-route-summary strong { color: var(--nvp-ink); }
.nvp-section-list { display: grid; gap: 1.35rem; }
.nvp-course-section { overflow: hidden; border: 1px solid var(--nvp-line); border-radius: 1rem; background: #fff; scroll-margin-top: 1rem; }
.nvp-phase-head { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 1rem; align-items: center; background: var(--nvp-navy-deep); padding: 1rem 1.2rem; color: #fff; }
.nvp-phase-index { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid rgba(242,207,131,.55); border-radius: .65rem; color: var(--nvp-gold-soft); font: 1.35rem Georgia,serif; }
.nvp-phase-head h2 { color: #fff; font-size: 1.32rem; }
.nvp-phase-head p { margin: .18rem 0 0; color: #ced9e2; font-size: .84rem; line-height: 1.5; }
.nvp-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .95rem; padding: 1rem; }
.nvp-card-grid > .nvp-course-card:only-child { grid-column: 1 / -1; min-height: 11rem; }
.nvp-course-card { display: flex; flex-direction: column; min-width: 0; min-height: 15.2rem; border: 1px solid #d6dde3; border-radius: .78rem; background: #fffdf9; padding: 1rem 1.05rem 1.05rem; box-shadow: 0 4px 14px rgba(16,40,62,.025); transition: box-shadow .18s ease, border-color .18s ease; }
.nvp-course-card:hover { border-color: #b8c5cf; box-shadow: 0 9px 23px rgba(16,40,62,.08); }
.nvp-course-card-top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.nvp-card-number { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .5rem; background: var(--nvp-navy-pale); color: var(--nvp-navy); font-size: .8rem; font-weight: 900; }
.nvp-card-status { display: inline-block; border-radius: 999px; background: #e9f5ed; padding: .22rem .62rem; color: #236442; font-size: .72rem; font-weight: 800; }
.nvp-card-status.nvp-is-planned { background: #fff4dc; color: #8a5a14; }
.nvp-course-card h3 { font-size: 1.28rem; overflow-wrap: anywhere; }
.nvp-course-card > p { margin-top: .45rem; color: var(--nvp-ink-soft); font-size: .88rem; overflow-wrap: anywhere; }
.nvp-card-footer { margin-top: auto; padding-top: 1.1rem; }
.nvp-card-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.2rem; max-width: 100%; border: 1px solid var(--nvp-navy); border-radius: .62rem; background: var(--nvp-navy); padding: .55rem .8rem; color: #fff !important; font-size: .8rem; font-weight: 800; line-height: 1.4; }
.nvp-card-link:hover { border-color: #294f6c; background: #294f6c; }
.nvp-card-link > span[aria-hidden] { color: var(--nvp-gold-soft); font-size: 1.1rem; }
.nvp-card-link-disabled { border-color: #cbd2d8; background: #eef1f3; color: #677686 !important; cursor: not-allowed; }
.nvp-card-link-disabled:hover { border-color: #cbd2d8; background: #eef1f3; }
.nvp-empty { padding: 1.2rem; color: var(--nvp-ink-soft); }
.nvp-teacher-card { display: grid; grid-template-columns: 8rem minmax(0,1fr); gap: 1.25rem; align-items: center; margin-top: 1.6rem; border: 1px solid var(--nvp-line); border-radius: 1rem; background: #fffdf9; padding: 1rem; box-shadow: 0 8px 24px rgba(16,40,62,.06); }
.nvp-teacher-card img { width: 8rem; aspect-ratio: 3 / 4; border: 1px solid #ded7c9; border-radius: .75rem; object-fit: cover; object-position: center 24%; }
.nvp-teacher-card h2 { font-size: 1.55rem; }
.nvp-teacher-card p:not(.nvp-eyebrow) { max-width: 67ch; margin-top: .5rem; color: var(--nvp-ink-soft); font-size: .9rem; }
.nvp-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; margin-top: 1.8rem; border-top: 1px solid var(--nvp-line); padding-top: 1rem; color: var(--nvp-ink-soft); font-size: .77rem; }
.nvp-overlay { display: none; }
@media (max-width: 1050px) {
  .nvp-shell { grid-template-columns: 15rem minmax(0,1fr); }
  .nvp-topbar { grid-template-columns: 15rem minmax(0,1fr); }
  .nvp-brand { padding: .8rem 1rem; }
  .nvp-sidebar-inner { padding: 1.2rem .75rem; }
  .nvp-card-grid { grid-template-columns: 1fr; }
}
@media (max-width: 740px) {
  .nvp-shell { display: block; min-height: 100vh; }
  .nvp-topbar { position: relative; display: flex; justify-content: space-between; gap: .4rem; min-height: 4.7rem; }
  .nvp-brand { flex: 1 1 auto; min-width: 0; }
  .nvp-brand strong { font-size: .85rem; }
  .nvp-brand-mark { flex-basis: 2.3rem; width: 2.3rem; height: 2.3rem; }
  .nvp-topbar-info { display: none; }
  .nvp-menu-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .4rem; border: 0; background: #fff; padding: .75rem .95rem; color: var(--nvp-navy); font-weight: 800; }
  .nvp-sidebar { position: absolute; z-index: 11; top: 4.7rem; left: 0; width: min(19rem,88vw); max-height: calc(100vh - 4.7rem); overflow-y: auto; transform: translateX(-110%); box-shadow: 12px 12px 28px rgba(16,40,62,.13); transition: transform .2s ease; }
  .nvp-portal.nvp-menu-open .nvp-sidebar { transform: translateX(0); }
  .nvp-portal.nvp-menu-open .nvp-overlay { display: block; position: absolute; z-index: 10; inset: 4.7rem 0 0; border: 0; background: rgba(16,40,62,.25); }
  .nvp-main { padding: 1.5rem 1rem 2rem; }
  .nvp-route-hero h1 { font-size: clamp(2.15rem,8vw,3rem); }
  .nvp-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 580px) {
  .nvp-card-grid { grid-template-columns: 1fr; }
  .nvp-course-card { min-height: 12rem; }
  .nvp-phase-head { grid-template-columns: 2.7rem minmax(0,1fr); gap: .75rem; padding: .95rem; }
  .nvp-phase-index { width: 2.5rem; height: 2.5rem; font-size: 1.18rem; }
  .nvp-phase-head h2 { font-size: 1.2rem; }
  .nvp-voluntary-note { padding: .9rem; }
  .nvp-teacher-card { grid-template-columns: 5rem minmax(0,1fr); gap: .85rem; }
  .nvp-teacher-card img { width: 5rem; }
  .nvp-teacher-card h2 { font-size: 1.24rem; }
  .nvp-teacher-card .nvp-eyebrow { font-size: .6rem; }
  .nvp-teacher-card p:not(.nvp-eyebrow) { font-size: .79rem; }
}
@media (prefers-reduced-motion: reduce) {
  .nvp-portal *, .nvp-portal *::before, .nvp-portal *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
