/* Naning 20 — design system.
   Breakpoints: desktop >1140px, tablet 901–1140px, mobile <=900px. */

:root {
  --nn-navy: #14213D;
  --nn-navy-deep: #0B1526;
  --nn-navy-panel: #0E1B31;
  --nn-navy-tint: #101F38;
  --nn-gold: #C9A227;
  --nn-gold-light: #E7CE7C;
  --nn-gold-pale: #F0DFA6;
  --nn-gold-dark: #8A6E14;
  --nn-cream: #F3E9CE;
  --nn-cream-bright: #FBF6E9;
  --nn-parchment: #FBF8F1;
  --nn-text-muted: #5A647C;
  --nn-slate: #B4BFD2;
  --nn-slate-soft: #A9B4C8;
  --nn-nav-ink: #D6DCE8;
  --nn-leaf: linear-gradient(150deg, #E7CE7C 0%, #B98F1C 38%, #F0DFA6 62%, #A87F14 100%);
  --nn-rule: linear-gradient(90deg, rgba(201,162,39,0) 0%, #C9A227 22%, #F0DFA6 50%, #C9A227 78%, rgba(201,162,39,0) 100%);
  --nn-mono: 'JetBrains Mono', ui-monospace, monospace;
  --nn-display: 'Cormorant Garamond', Georgia, serif;
}

html, body { overflow-x: hidden; }
body { background: var(--nn-parchment); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
::selection { background: var(--nn-gold); color: var(--nn-navy-deep); }
.nn-hide { display: none !important; }

/* Remove WordPress block-gap seams between full-site template parts and
   top-level page sections. Component spacing is handled by the Naning classes. */
.wp-site-blocks > *,
.wp-site-blocks > * + *,
.wp-block-post-content > *,
.wp-block-post-content > * + *,
main.wp-block-group,
main.wp-block-group > * {
  margin-block-start: 0 !important;
  margin-block-end: 0;
}

/* WordPress constrains page content by default. These top-level design bands
   need to span the viewport while their inner wrappers keep the 1140px rhythm. */
.wp-block-post-content > .nn-hero,
.wp-block-post-content > .nn-section,
.wp-block-post-content > .nn-section--plain,
.wp-block-post-content > .nn-section--parchment,
.wp-block-post-content > .nn-section--navy,
.wp-block-post-content > .nn-section--deep,
.wp-block-post-content > .nn-quote,
.wp-block-post-content > .nn-mast,
.wp-block-post-content > .nn-titlehero,
.wp-block-post-content > .nn-cover,
.wp-block-post-content > .nn-news,
.wp-block-post-content > .nn-galband,
.wp-block-post-content > .nn-creed {
  width: 100vw;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

.wp-block-post-content > .nn-hero + .nn-section,
.wp-block-post-content > .nn-section + .nn-section,
.wp-block-post-content > .nn-section + .nn-quote,
.wp-block-post-content > .nn-quote + .nn-section,
.wp-block-post-content > .nn-mast + .nn-section,
.wp-block-post-content > .nn-titlehero + .nn-section,
.wp-block-post-content > .nn-cover + .nn-section,
.wp-block-post-content > .nn-news + .nn-galband,
.wp-block-post-content > .nn-galband + .nn-news,
.wp-block-post-content > .nn-galband + .nn-section {
  margin-top: 0 !important;
}

/* ---------- shared type ---------- */
.nn-label,
.nn-label a {
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--nn-gold);
  margin: 0;
}
.nn-label--wide { letter-spacing: 0.34em; }
.nn-label--dark { color: var(--nn-gold-dark); letter-spacing: 0.32em; }

/* eyebrow: short gold rule + mono label */
.nn-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--nn-gold);
  margin: 0 0 34px;
}
.nn-eyebrow::before {
  content: "";
  flex: 0 0 54px;
  height: 1px;
  background: var(--nn-gold);
}
.nn-eyebrow.is-centered { justify-content: center; }
.nn-eyebrow.is-centered::after {
  content: "";
  flex: 0 0 54px;
  height: 1px;
  background: var(--nn-gold);
}

/* rule — diamond — rule */
.nn-divider {
  border: 0;
  height: 9px;
  margin: 0 0 64px;
  background: none;
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
}
.nn-divider::before,
.nn-divider::after {
  content: "";
  flex: 1;
  height: 1px;
}
.nn-divider::before { background: linear-gradient(90deg, rgba(201,162,39,0) 0%, rgba(201,162,39,0.75) 100%); }
.nn-divider::after { background: linear-gradient(90deg, rgba(201,162,39,0.75) 0%, rgba(201,162,39,0) 100%); }
.nn-diamond {
  display: block;
  width: 9px;
  height: 9px;
  background: var(--nn-leaf);
  transform: rotate(45deg);
  flex: 0 0 9px;
}

/* gold gradient-edged pill link */
.nn-link-gold {
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--nn-gold-light);
}
.nn-link-ink {
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--nn-navy);
  border-bottom: 1px solid var(--nn-gold);
  padding-bottom: 6px;
  display: inline-block;
}
.nn-link-ink:hover { color: var(--nn-gold-dark); }

/* Buttons: solid gold (primary) and outlined (ghost) */
.wp-block-button.nn-btn-gold .wp-block-button__link {
  background: linear-gradient(180deg, #E7CE7C, #C9A227);
  color: var(--nn-navy-deep);
  border: 2px solid transparent;
  background-clip: padding-box;
  box-shadow: 0 0 0 2px rgba(201,162,39,0.9);
  font-family: var(--nn-mono);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 17px 34px;
  border-radius: 0;
}
.wp-block-button.nn-btn-gold .wp-block-button__link:hover { background: linear-gradient(180deg, #F0DFA6, #D8B23A); }

.wp-block-button.nn-btn-ghost .wp-block-button__link {
  background: transparent;
  color: var(--nn-gold-light);
  border: 1px solid var(--nn-gold);
  border-radius: 0;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  padding: 16px 34px;
}
.wp-block-button.nn-btn-ghost .wp-block-button__link:hover { background: rgba(201,162,39,0.14); color: var(--nn-gold-pale); }

.wp-block-button.nn-btn-ghost-ink .wp-block-button__link {
  background: var(--nn-parchment);
  color: var(--nn-navy);
  border: 1px solid var(--nn-gold);
  border-radius: 0;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 14px 22px;
}
.wp-block-button.nn-btn-ghost-ink .wp-block-button__link:hover { background: var(--nn-gold); color: var(--nn-navy-deep); }

/* ---------- header ---------- */
.nn-header {
  background: rgba(14,27,49,0.94);
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 50;
}
.nn-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--nn-rule);
}
.nn-header__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 40px;
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.nn-crests { display: flex; align-items: center; gap: 20px; }
.nn-crests .wp-block-image { margin: 0; }
.nn-crests img { display: block; height: 58px; width: auto; }
.nn-crests .nn-crest--naning img { height: 56px; }
.nn-crests::after { content: none; }
.nn-crest-rule {
  width: 1px;
  height: 40px;
  background: linear-gradient(180deg, rgba(201,162,39,0), #C9A227, rgba(201,162,39,0));
  flex: 0 0 1px;
}

.nn-nav .wp-block-navigation__container,
.nn-nav ul.wp-block-navigation__container { gap: 30px; }
.nn-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
  display: flex;
  align-items: center;
}
.nn-nav a,
.nn-nav a:where(:not(.wp-element-button)),
.nn-nav .wp-block-navigation-item__content,
.nn-nav .wp-block-navigation-item__label {
  color: var(--nn-nav-ink);
  font-size: 14px;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.nn-nav a:hover,
.nn-nav a:where(:not(.wp-element-button)):hover,
.nn-nav .current-menu-item a,
.nn-nav .current-menu-item .wp-block-navigation-item__label { color: var(--nn-gold-light); }
.nn-nav .wp-block-navigation__responsive-container-open,
.nn-nav .wp-block-navigation__responsive-container-close { color: var(--nn-gold-light); }
.nn-nav .wp-block-navigation__responsive-container-open {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(201,162,39,0.5);
  display: none;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.nn-nav .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--nn-navy-deep);
  padding: 28px 24px;
}
.nn-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.nn-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: flex-start;
  gap: 20px;
}
.nn-nav .wp-block-navigation__responsive-container.is-menu-open a,
.nn-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label {
  color: var(--nn-cream);
  font-size: 18px;
}

/* ---------- hero ---------- */
.nn-hero {
  background: var(--nn-navy-deep);
  position: relative;
  overflow: hidden;
}
.nn-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(1100px 620px at 74% 34%, rgba(201,162,39,0.16), transparent 65%);
  pointer-events: none;
}
.nn-hero__inner {
  max-width: 1140px;
  margin: 0 auto 56px;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 48px;
  position: relative;
}
.nn-hero__text {
  padding: 96px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nn-hero__text > * { margin-top: 0; }
h1.nn-h1 {
  font-family: var(--nn-display);
  font-weight: 400;
  font-size: 72px;
  line-height: 1.04;
  letter-spacing: -0.01em;
  color: var(--nn-cream-bright);
  margin: 0 0 10px;
  text-wrap: balance;
}
p.nn-h1sub {
  font-family: var(--nn-display);
  font-size: 40px;
  line-height: 1.1;
  color: var(--nn-gold);
  margin: 0 0 28px;
}
p.nn-lead {
  font-size: 17px;
  line-height: 1.7;
  color: var(--nn-slate-soft);
  margin: 0 0 44px;
}

/* gold-framed portrait with corner diamonds + caption plate */
.nn-frame {
  position: relative;
  padding: 56px 0 0;
}
.nn-frame::before {
  content: "";
  position: absolute;
  inset: 40px 0 -16px 0;
  border: 1px solid rgba(201,162,39,0.3);
  pointer-events: none;
}
.nn-frame__plate {
  position: relative;
  margin: 0 22px;
  padding: 12px;
  background: var(--nn-leaf);
  min-height: 600px;
  box-sizing: border-box;
}
.nn-frame__plate::before,
.nn-frame__plate::after {
  content: "";
  position: absolute;
  top: -25px;
  width: 18px;
  height: 18px;
  background: linear-gradient(150deg, #F0DFA6, #A87F14);
  transform: rotate(45deg);
}
.nn-frame__plate::before { left: -31px; }
.nn-frame__plate::after { right: -31px; }
.nn-frame__media {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 576px;
  overflow: hidden;
  background: var(--nn-navy-tint);
  border: 1px solid rgba(11,21,38,0.4);
}
.nn-frame__media.wp-block-image { margin: 0; }
.nn-frame__media img {
  width: 100%;
  height: 100%;
  min-height: 576px;
  object-fit: cover;
  object-position: 50% 20%;
  display: block;
}
.nn-frame__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11,21,38,0.32) 0%, rgba(11,21,38,0) 36%, rgba(11,21,38,0.6) 100%);
  pointer-events: none;
}
.nn-frame__caption {
  position: absolute;
  left: 50%;
  bottom: -26px;
  transform: translateX(-50%);
  background: var(--nn-navy-deep);
  border: 1px solid rgba(201,162,39,0.55);
  padding: 14px 30px;
  white-space: nowrap;
  z-index: 2;
  box-shadow: 0 20px 40px -18px rgba(0,0,0,0.8);
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--nn-gold-light);
  margin: 0;
}

/* ---------- section shells ---------- */
.nn-section { padding: 104px 40px; }
.nn-section__inner { max-width: 1140px; margin: 0 auto; }
.nn-section--parchment { background: linear-gradient(180deg, #F6F1E4 0%, #FBF8F1 62%); padding-bottom: 128px; }
.nn-section--plain { background: var(--nn-parchment); padding: 100px 40px; }
.nn-section--navy { background: var(--nn-navy-panel); color: var(--nn-cream); position: relative; overflow: hidden; }
.nn-section--navy::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(760px 360px at 50% 0%, rgba(201,162,39,0.16), transparent 70%);
  pointer-events: none;
}
.nn-section--navy .nn-section__inner { position: relative; max-width: 980px; }
.nn-section--deep { background: var(--nn-navy-deep); color: var(--nn-cream); }
.nn-section--deep h1, .nn-section--deep h2, .nn-section--deep h3, .nn-section--deep h4 { color: var(--nn-cream-bright); }
.nn-section--navy h1, .nn-section--navy h2, .nn-section--navy h3, .nn-section--navy h4 { color: var(--nn-cream-bright); }

/* ---------- three heritage cards ---------- */
.nn-cards.wp-block-columns { gap: 44px; align-items: flex-start; }
.nn-cards .wp-block-column:nth-child(2) { margin-top: 44px; }
.nn-cards .wp-block-column:nth-child(3) { margin-top: 88px; }
.nn-card__frame {
  position: relative;
  padding: 12px;
  background: var(--nn-leaf);
}
.nn-card__media {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: #E9E3D6;
  border: 1px solid rgba(11,21,38,0.35);
  margin: 0;
}
.nn-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nn-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11,21,38,0.1) 0%, rgba(11,21,38,0) 40%, rgba(11,21,38,0.72) 100%);
}
.nn-card__cap {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  padding: 0 20px 22px;
  text-align: center;
  z-index: 2;
}
.nn-card__no {
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.34em;
  color: var(--nn-gold-light);
  margin: 0 0 10px;
}
.nn-card__cap h3 {
  margin: 0;
  font-family: var(--nn-display);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.15;
  color: var(--nn-cream-bright);
}
.nn-card__body {
  position: relative;
  margin: -28px 22px 0;
  background: var(--nn-navy-panel);
  border: 1px solid rgba(201,162,39,0.4);
  padding: 30px 26px 28px;
  text-align: center;
  box-shadow: 0 24px 48px -28px rgba(11,21,38,0.55);
}
.nn-card__body p {
  font-size: 16px;
  line-height: 1.8;
  color: #C6CEDD;
  margin: 0 0 22px;
  text-wrap: pretty;
}
.nn-card__body p:last-child { margin-bottom: 0; }
.nn-card__body .nn-link-gold { position: relative; }
.nn-card__body .nn-link-gold::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -22px;
  transform: translateX(-50%);
  width: 44px;
  height: 1px;
  background: rgba(201,162,39,0.6);
}

/* ---------- institution plate ---------- */
.nn-plate { padding: 2px; background: linear-gradient(150deg, rgba(240,223,166,0.85) 0%, rgba(168,127,20,0.6) 40%, rgba(231,206,124,0.85) 66%, rgba(168,127,20,0.5) 100%); }
.nn-plate__inner {
  background: linear-gradient(180deg, #0B1526 0%, #101F38 100%);
  padding: 76px 72px 72px;
  text-align: center;
}
.nn-plate__inner .nn-diamond { margin: 0 auto 30px; width: 10px; height: 10px; flex: none; }
.nn-plate__inner h2 { font-size: 56px; margin: 0 0 26px; }
.nn-plate__inner p { font-size: 16px; line-height: 1.9; color: var(--nn-slate-soft); margin: 0 0 38px; text-wrap: pretty; }

/* ---------- gold quote band ---------- */
.nn-quote {
  background: linear-gradient(180deg, #E7CE7C 0%, #C9A227 46%, #A87F14 100%);
  color: var(--nn-navy-deep);
  position: relative;
  padding: 74px 40px;
}
.nn-quote::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: rgba(255,255,255,0.55);
}
.nn-quote__inner {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  padding: 40px 0;
  border-top: 1px solid rgba(11,21,38,0.22);
  border-bottom: 1px solid rgba(11,21,38,0.22);
}
.nn-quote__inner p {
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 40px;
  line-height: 1.35;
  margin: 0;
  color: var(--nn-navy-deep);
}
.nn-quote__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 26px;
}
.nn-quote__rule::before,
.nn-quote__rule::after {
  content: "";
  width: 70px;
  height: 1px;
  background: rgba(11,21,38,0.45);
}
.nn-quote__rule span {
  width: 7px;
  height: 7px;
  background: var(--nn-navy-deep);
  transform: rotate(45deg);
  display: block;
}
.nn-quote__rule.is-below { margin: 26px 0 0; }

/* ---------- arkib / news list ---------- */
.nn-arkib.wp-block-columns { gap: 48px; align-items: flex-start; }
.nn-arkib > .wp-block-column:first-child { flex-basis: 220px; position: sticky; top: 40px; }
.nn-arkib h2 { font-size: 50px; margin: 0 0 20px; }
.nn-arkib__rule { display: block; width: 52px; height: 1px; background: var(--nn-gold); margin: 0 0 22px; }
.nn-arkib p { font-size: 16px; line-height: 1.8; color: var(--nn-text-muted); margin: 0 0 34px; }

.nn-item.wp-block-columns {
  gap: 44px;
  align-items: center;
  padding: 48px 0;
  border-top: 1px solid rgba(201,162,39,0.45);
  margin: 0;
}
.nn-item + .nn-item { margin-top: 0; }
.nn-item__num { text-align: center; flex-basis: 64px !important; }
.nn-item__num .nn-item__no {
  font-family: var(--nn-display);
  font-size: 62px;
  line-height: 1;
  color: var(--nn-gold);
  margin: 0;
}
.nn-item__num .nn-label { color: #9C8433; letter-spacing: 0.2em; margin-top: 10px; }
.nn-item__media {
  padding: 3px;
  background: var(--nn-leaf);
  box-shadow: 0 34px 60px -30px rgba(11,21,38,0.65);
  margin: 0;
}
.nn-item__media .wp-block-image { margin: 0; }
.nn-item__media img {
  display: block;
  width: 100%;
  aspect-ratio: 5/4;
  object-fit: cover;
  object-position: 50% 42%;
  transition: transform 900ms cubic-bezier(0.2,0.7,0.2,1);
}
.nn-item__media:hover img { transform: scale(1.04); }
.nn-item h3 {
  font-family: var(--nn-display);
  font-weight: 500;
  font-size: 36px;
  line-height: 1.18;
  margin: 0 0 24px;
  color: var(--nn-navy);
  text-wrap: pretty;
}
.nn-item .nn-label--dark { margin-bottom: 16px; letter-spacing: 0.22em; }
.nn-list-end { height: 1px; background: rgba(201,162,39,0.45); border: 0; margin: 0; }

/* ---------- interior page furniture ---------- */
.nn-pagehead { background: var(--nn-navy-deep); position: relative; overflow: hidden; padding: 96px 40px 84px; }
.nn-pagehead::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 480px at 70% 20%, rgba(201,162,39,0.16), transparent 68%);
}
.nn-pagehead__inner { max-width: 1140px; margin: 0 auto; position: relative; }
.nn-pagehead h1 { font-size: 62px; color: var(--nn-cream-bright); margin: 0 0 18px; }
.nn-pagehead p { font-size: 17px; line-height: 1.75; color: var(--nn-slate-soft); margin: 0; max-width: 640px; }

.nn-prose p { font-size: 16px; line-height: 1.9; color: var(--nn-text-muted); text-wrap: pretty; }
.nn-prose h2 { font-size: 40px; margin: 56px 0 20px; }
.nn-prose h3 { font-size: 26px; margin: 40px 0 14px; }
.nn-prose ul, .nn-prose ol { color: var(--nn-text-muted); line-height: 1.9; padding-left: 22px; }

.nn-panel {
  background: #fff;
  border: 1px solid rgba(201,162,39,0.35);
  padding: 36px 34px;
}
.nn-panel--navy { background: var(--nn-navy-panel); border-color: rgba(201,162,39,0.4); color: var(--nn-slate); }
.nn-panel--navy h3 { color: var(--nn-cream-bright); }

.nn-figure { padding: 10px; background: var(--nn-leaf); margin: 0; }
.nn-figure .wp-block-image, .nn-figure figure { margin: 0; }
.nn-figure img { display: block; width: 100%; }

.nn-gallery.wp-block-gallery { gap: 14px; }
.nn-gallery.wp-block-gallery figure img { border: 1px solid rgba(201,162,39,0.35); }

/* ---------- interior page components (shared by all pages) ---------- */
/* masthead: text + portrait, 4/5 gold frame with corner diamonds + plaque */
.nn-mast { background: var(--nn-navy-deep); position: relative; overflow: hidden; padding: 96px 72px 112px; }
.nn-mast::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(1200px 700px at 72% 34%, rgba(201,162,39,0.20), transparent 64%);
}
.nn-mast::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(201,162,39,0), rgba(201,162,39,0.5), rgba(201,162,39,0));
}
.nn-mast__inner {
  max-width: 1140px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 88px;
  align-items: center;
  position: relative;
}
.nn-mast__pre { font-family: var(--nn-display); font-size: 30px; line-height: 1.2; color: var(--nn-gold); margin: 0 0 14px; }
.nn-mast h1 { font-size: 82px; line-height: 1.02; letter-spacing: -0.015em; color: var(--nn-cream-bright); margin: 0 0 26px; text-wrap: balance; }
.nn-mast__name { font-family: var(--nn-display); font-size: 34px; line-height: 1.25; color: var(--nn-gold-light); margin: 0 0 34px; }
.nn-mast__rule { display: block; width: 70px; height: 1px; background: rgba(201,162,39,0.7); margin: 0 0 30px; }
.nn-facts.wp-block-columns { gap: 22px 30px; }
.nn-facts .nn-label { margin-bottom: 10px; letter-spacing: 0.26em; }
.nn-facts__val { font-family: var(--nn-display); font-size: 22px; line-height: 1.3; color: var(--nn-cream-bright); margin: 0; text-wrap: balance; }

.nn-portrait { position: relative; }
.nn-portrait::before {
  content: "";
  position: absolute;
  inset: -26px;
  border: 1px solid rgba(201,162,39,0.3);
  pointer-events: none;
}
.nn-portrait__plate {
  position: relative;
  padding: 12px;
  background: linear-gradient(150deg, #F0DFA6 0%, #B98F1C 34%, #E7CE7C 58%, #A87F14 100%);
  box-shadow: 0 60px 90px -40px rgba(0,0,0,0.75);
}
.nn-portrait__plate::before,
.nn-portrait__plate::after {
  content: "";
  position: absolute;
  top: -35px;
  width: 18px;
  height: 18px;
  background: linear-gradient(150deg, #F0DFA6, #A87F14);
  transform: rotate(45deg);
}
.nn-portrait__plate::before { left: -35px; }
.nn-portrait__plate::after { right: -35px; }
.nn-portrait__plate .wp-block-image { margin: 0; position: relative; }
.nn-portrait__plate img {
  display: block;
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: 50% 16%;
  background: var(--nn-navy-tint);
  border: 1px solid rgba(11,21,38,0.45);
}
.nn-portrait__plaque {
  position: absolute;
  left: 50%;
  bottom: -26px;
  transform: translateX(-50%);
  background: var(--nn-navy-deep);
  border: 1px solid rgba(201,162,39,0.55);
  padding: 14px 30px;
  white-space: nowrap;
  box-shadow: 0 20px 40px -18px rgba(0,0,0,0.8);
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--nn-gold-light);
  margin: 0;
  z-index: 2;
}

/* centred lead paragraph block */
.nn-lead-block { max-width: 900px; margin: 0 auto; text-align: center; }
.nn-lead-block .nn-label--dark { margin-bottom: 22px; }
.nn-lead-block__big {
  font-family: var(--nn-display);
  font-size: 32px;
  line-height: 1.45;
  color: var(--nn-navy);
  margin: 0 0 28px;
  text-wrap: pretty;
}
.nn-lead-block p:last-child { font-size: 16px; line-height: 1.9; color: var(--nn-text-muted); margin: 0; }

/* heading + hairline + optional right label */
.nn-headrule {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0 0 48px;
}
.nn-headrule h2 { margin: 0; white-space: nowrap; line-height: 1; font-size: 48px; }
.nn-headrule .nn-headrule__line { flex: 1; height: 1px; background: rgba(201,162,39,0.55); }
.nn-headrule .nn-label--dark { white-space: nowrap; letter-spacing: 0.26em; }

/* centred section intro on dark */
.nn-intro { text-align: center; max-width: 880px; margin: 0 auto 64px; }
.nn-intro .nn-diamond { margin: 0 auto 28px; flex: none; }
.nn-intro h2 { font-size: 48px; line-height: 1.1; margin: 0 0 22px; text-wrap: balance; }
.nn-intro p { font-size: 16px; line-height: 1.9; color: var(--nn-slate-soft); margin: 0; text-wrap: pretty; }
.nn-intro--light h2 { color: var(--nn-navy); }
.nn-intro--light p { color: var(--nn-text-muted); }
.nn-intro--narrow { max-width: 760px; margin-bottom: 52px; }

/* salasilah / hairline-topped item grid */
.nn-lineage.wp-block-columns { gap: 40px; }
.nn-lineage .wp-block-column {
  border-top: 1px solid rgba(201,162,39,0.55);
  padding-top: 26px;
  position: relative;
}
.nn-lineage .wp-block-column::before {
  content: "";
  position: absolute;
  left: 0;
  top: -5px;
  width: 9px;
  height: 9px;
  background: linear-gradient(150deg, #F0DFA6, #A87F14);
  transform: rotate(45deg);
}
.nn-lineage .nn-label--dark { margin-bottom: 14px; letter-spacing: 0.26em; }
.nn-lineage__name { font-family: var(--nn-display); font-size: 26px; line-height: 1.25; color: var(--nn-navy); margin: 0; }

/* dark gradient-edged tri cards */
.nn-goldcards.wp-block-columns { gap: 26px; align-items: stretch; }
.nn-goldcard {
  padding: 1px;
  background: linear-gradient(160deg, rgba(240,223,166,0.7), rgba(168,127,20,0.25) 55%, rgba(231,206,124,0.55));
  height: 100%;
}
.nn-goldcard__inner {
  background: linear-gradient(180deg, #0B1526, #101F38);
  padding: 44px 38px 46px;
  height: 100%;
  box-sizing: border-box;
}
.nn-goldcard__no { font-family: var(--nn-display); font-size: 52px; line-height: 1; color: var(--nn-gold); margin: 0 0 22px; }
.nn-goldcard__inner h3 { font-size: 28px; line-height: 1.2; margin: 0 0 18px; color: var(--nn-cream-bright); }
.nn-goldcard__inner h3 + p { position: relative; padding-top: 18px; }
.nn-goldcard__inner h3 + p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 1px;
  background: rgba(201,162,39,0.6);
}
.nn-goldcard__inner p { font-size: 15px; line-height: 1.85; color: var(--nn-slate-soft); margin: 0; text-wrap: pretty; }

/* adat tables (Ibu Soko, Isi Balai, Tiang Balai) */
.nn-table { margin-bottom: 52px; }
.nn-table__head {
  display: flex;
  align-items: baseline;
  gap: 18px;
  background: var(--nn-navy-panel);
  padding: 20px 26px;
}
.nn-table__head .nn-table__no { font-family: var(--nn-display); font-size: 24px; color: var(--nn-gold); line-height: 1; margin: 0; }
.nn-table__head h3 { font-size: 26px; line-height: 1.2; margin: 0; color: var(--nn-cream-bright); }
.nn-table__cols {
  display: flex;
  gap: 28px;
  padding: 14px 26px 12px;
  border-bottom: 1px solid rgba(201,162,39,0.4);
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--nn-gold-dark);
}
.nn-table__cols > :first-child { flex: 0 0 40%; }
.nn-table__cols > :last-child { flex: 1; }
.nn-table__cols p { margin: 0; }
.nn-table__row {
  display: flex;
  gap: 28px;
  padding: 20px 26px;
  border-bottom: 1px solid rgba(20,33,61,0.09);
  align-items: baseline;
  background: #FFFDF8;
}
.nn-table__row > :first-child { flex: 0 0 40%; }
.nn-table__row > :last-child { flex: 1; }
.nn-table__row p { margin: 0; }
.nn-table__row .nn-role { font-size: 15px; line-height: 1.45; color: var(--nn-navy); }
.nn-table__row .nn-role em { font-family: var(--nn-display); font-style: italic; font-size: 15px; color: #6B7488; display: block; margin-top: 4px; }
.nn-table__row .nn-name { font-family: var(--nn-display); font-size: 21px; line-height: 1.4; color: var(--nn-navy); }

/* sticky aside + content */
.nn-aside.wp-block-columns { gap: 88px; align-items: flex-start; }
.nn-aside > .wp-block-column:first-child { flex-basis: 360px; position: sticky; top: 48px; }
.nn-aside h2 { font-size: 48px; line-height: 1.06; margin: 0 0 22px; }
.nn-aside__rule { display: block; width: 52px; height: 1px; background: var(--nn-gold); margin: 0 0 24px; }
.nn-aside p { font-size: 15px; line-height: 1.85; color: var(--nn-text-muted); margin: 0; text-wrap: pretty; }

/* three-column prose */
.nn-prose-cols.wp-block-columns { gap: 56px; }
.nn-prose-cols p { font-size: 16px; line-height: 1.95; color: #3E4A63; margin: 0; text-wrap: pretty; }

/* gold-topped tiles */
.nn-tiles.wp-block-columns { gap: 26px; align-items: stretch; }
.nn-tile {
  background: #FFFDF8;
  border-top: 2px solid var(--nn-gold);
  padding: 34px 30px 36px;
  box-shadow: 0 30px 56px -40px rgba(11,21,38,0.5);
  height: 100%;
  box-sizing: border-box;
}
.nn-tile .nn-label--dark { margin-bottom: 16px; letter-spacing: 0.26em; }
.nn-tile h3 { font-size: 26px; line-height: 1.2; margin: 0 0 14px; }
.nn-tile p { font-size: 15px; line-height: 1.85; color: var(--nn-text-muted); margin: 0; text-wrap: pretty; }

/* deep navy centred creed band */
.nn-creed { background: var(--nn-navy-deep); position: relative; overflow: hidden; padding: 120px 72px; }
.nn-creed::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 460px at 50% 50%, rgba(201,162,39,0.18), transparent 68%);
}
.nn-creed__inner { max-width: 1000px; margin: 0 auto; text-align: center; position: relative; }
.nn-creed .nn-label { margin-bottom: 26px; letter-spacing: 0.3em; }
.nn-creed p { font-size: 16px; line-height: 1.9; color: var(--nn-slate-soft); margin: 0 0 44px; text-wrap: pretty; }
.nn-creed__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 34px;
}
.nn-creed__rule::before,
.nn-creed__rule::after { content: ""; width: 90px; height: 1px; background: rgba(201,162,39,0.5); }
.nn-creed__quote {
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 48px;
  line-height: 1.35;
  margin: 0 !important;
  color: var(--nn-cream-bright);
  text-wrap: balance;
}

/* reversed masthead (portrait left) */
.nn-mast--reverse .nn-mast__inner { grid-template-columns: 0.92fr 1.08fr; }
.nn-pullquote {
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 19px;
  line-height: 1.6;
  color: var(--nn-text-muted);
  margin: 0;
  max-width: 76ch;
  border-left: 2px solid rgba(201,162,39,0.6);
  padding-left: 20px;
}
.nn-numrows { display: flex; flex-direction: column; gap: 34px; }
.nn-numrow.wp-block-columns {
  border-top: 1px solid rgba(201,162,39,0.45);
  padding-top: 28px;
  gap: 24px;
  align-items: flex-start;
  margin: 0;
}
.nn-numrow__no { font-family: var(--nn-display); font-size: 34px; line-height: 1; color: var(--nn-gold); margin: 0; }
.nn-numrow p:not(.nn-numrow__no) { font-size: 16px; line-height: 1.95; color: #3E4A63; margin: 0; text-wrap: pretty; }
.nn-quote__sub { font-size: 15px; line-height: 1.8; color: var(--nn-navy-deep); margin: 24px 0 0 !important; font-family: Manrope, sans-serif; font-style: normal; }

/* centred page title hero */
.nn-titlehero { background: var(--nn-navy-deep); position: relative; overflow: hidden; padding: 96px 60px 104px; text-align: center; }
.nn-titlehero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(1000px 520px at 50% 0%, rgba(201,162,39,0.18), transparent 66%);
}
.nn-titlehero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(201,162,39,0), rgba(201,162,39,0.5), rgba(201,162,39,0));
}
.nn-titlehero__inner { max-width: 1140px; margin: 0 auto; position: relative; }
.nn-titlehero .nn-label { margin-bottom: 26px; letter-spacing: 0.36em; }
.nn-titlehero h1 { font-size: 72px; line-height: 1.04; letter-spacing: -0.015em; color: var(--nn-cream-bright); margin: 0 0 22px; }
.nn-titlehero__sub { font-family: var(--nn-display); font-size: 26px; line-height: 1.35; color: var(--nn-gold-light); margin: 0; }
.nn-crest-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 24px;
}
.nn-crest-divider::before,
.nn-crest-divider::after { content: ""; width: 70px; height: 1px; background: rgba(201,162,39,0.6); }

/* section intro paragraph under a headrule */
.nn-section__note { font-size: 16px; line-height: 1.9; color: var(--nn-text-muted); margin: 0 0 48px; max-width: 68ch; }
.nn-section--navy .nn-section__note { color: var(--nn-slate-soft); }
.nn-headrule--tight { margin-bottom: 18px; }

/* Ibu Soko portrait cards */
.nn-soko.wp-block-columns { gap: 40px; align-items: flex-start; }
.nn-soko__frame {
  padding: 8px;
  background: linear-gradient(150deg, #F0DFA6 0%, #B98F1C 34%, #E7CE7C 58%, #A87F14 100%);
  box-shadow: 0 40px 70px -44px rgba(11,21,38,0.7);
}
.nn-soko__frame .wp-block-image { margin: 0; }
.nn-soko__frame img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  object-position: 50% 22%;
  background: var(--nn-navy-tint);
}
.nn-soko__meta { border-top: 1px solid rgba(201,162,39,0.5); margin-top: 26px; padding-top: 20px; }
.nn-soko__meta .nn-label--dark { margin-bottom: 12px; letter-spacing: 0.26em; }
.nn-soko__meta h3 { font-size: 25px; line-height: 1.25; margin: 0; font-weight: 500; text-wrap: pretty; overflow-wrap: break-word; }

/* wide gold-framed banner image */
.nn-banner {
  padding: 8px;
  background: linear-gradient(150deg, #F0DFA6 0%, #B98F1C 34%, #E7CE7C 58%, #A87F14 100%);
  box-shadow: 0 60px 90px -50px rgba(0,0,0,0.6);
  margin: 0 0 44px;
}
.nn-banner .wp-block-image { margin: 0; }
.nn-banner img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  object-position: 50% 34%;
  background: var(--nn-navy-tint);
}

/* hairline grid of dark cells (Isi Balai) */
.nn-hairgrid.wp-block-columns {
  gap: 1px;
  background: rgba(201,162,39,0.35);
  border: 1px solid rgba(201,162,39,0.35);
  margin: 0;
}
.nn-hairgrid > .wp-block-column { background: var(--nn-navy-deep); padding: 28px 26px 30px; }
.nn-hairgrid__title { font-family: var(--nn-display); font-size: 25px; line-height: 1.25; color: var(--nn-gold-light); margin: 0 0 6px; }
.nn-hairgrid__suku { font-family: var(--nn-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #8FA0BC; margin: 0 0 18px; }
.nn-hairgrid__name { font-size: 16px; line-height: 1.55; color: var(--nn-cream-bright); margin: 0; position: relative; padding-top: 18px; }
.nn-hairgrid__name::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 34px;
  height: 1px;
  background: rgba(201,162,39,0.6);
}

/* light name cards with numeral (Tiang Balai) */
.nn-namecards.wp-block-columns { gap: 24px; flex-wrap: wrap !important; }
.nn-namecards > .wp-block-column { flex-basis: calc(50% - 12px) !important; }
.nn-namecard {
  background: #FFFDF8;
  border-top: 2px solid var(--nn-gold);
  padding: 30px 28px 32px;
  box-shadow: 0 30px 56px -44px rgba(11,21,38,0.5);
  display: flex;
  gap: 20px;
  align-items: baseline;
  height: 100%;
  box-sizing: border-box;
}
.nn-namecard__no { font-family: var(--nn-display); font-size: 30px; line-height: 1; color: var(--nn-gold); margin: 0; flex: 0 0 auto; }
.nn-namecard__title { font-family: var(--nn-display); font-size: 25px; line-height: 1.25; color: var(--nn-navy); margin: 0 0 6px; }
.nn-namecard__suku { font-family: var(--nn-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--nn-gold-dark); margin: 0 0 16px; }
.nn-namecard__name { font-size: 16px; line-height: 1.55; color: #3E4A63; margin: 0; }

/* document / watikah panel */
.nn-doc.wp-block-columns { gap: 64px; align-items: center; }
.nn-doc__frame {
  padding: 10px;
  background: linear-gradient(150deg, #F0DFA6 0%, #B98F1C 34%, #E7CE7C 58%, #A87F14 100%);
  box-shadow: 0 60px 90px -46px rgba(0,0,0,0.8);
}
.nn-doc__frame > .wp-block-group,
.nn-doc__paper { background: #FFFDF8; padding: 14px; }
.nn-doc__frame .wp-block-image { margin: 0; }
.nn-doc__frame img { display: block; width: 100%; height: auto; }
.nn-docrow {
  display: flex;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(201,162,39,0.28);
}
.nn-docrow > :first-child {
  flex: 0 0 128px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8FA0BC;
}
.nn-docrow > :last-child { flex: 1; font-size: 16px; line-height: 1.6; color: var(--nn-cream-bright); }
.nn-docrow p { margin: 0; }
.nn-doc__creed {
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 24px;
  line-height: 1.45;
  color: var(--nn-gold-light);
  margin: 34px 0 0;
}

/* photo hero (core/cover) */
.nn-cover { min-height: 0 !important; padding: 130px 60px 140px !important; text-align: center; }
.nn-cover::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--nn-rule);
  z-index: 2;
}
.nn-cover .nn-label { color: var(--nn-gold-light); letter-spacing: 0.36em; margin-bottom: 28px; }
.nn-cover h1 { font-size: 72px; line-height: 1.04; color: var(--nn-cream-bright); margin: 0 0 24px; text-wrap: balance; }
.nn-cover__sub { font-family: var(--nn-display); font-size: 26px; line-height: 1.35; color: var(--nn-gold-light); margin: 0; }

/* numbered square gallery plates */
.nn-plates.wp-block-gallery { gap: 24px; }
.nn-plates.wp-block-gallery figure.wp-block-image {
  padding: 6px;
  background: linear-gradient(150deg, #F0DFA6 0%, #B98F1C 34%, #E7CE7C 58%, #A87F14 100%);
  box-shadow: 0 34px 60px -46px rgba(11,21,38,0.7);
}
.nn-plates.wp-block-gallery figure.wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  background: var(--nn-navy-tint);
}
.nn-plates.wp-block-gallery figcaption {
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--nn-gold-dark);
  background: none !important;
  padding: 12px 0 0 !important;
  position: static !important;
  text-align: left;
}

/* aside heading + stacked prose on dark */
.nn-split.wp-block-columns { gap: 80px; align-items: flex-start; }
.nn-split > .wp-block-column:first-child { flex-basis: 320px; }
.nn-split h2 { font-size: 42px; line-height: 1.08; margin: 0 0 20px; }
.nn-split .nn-diamond { margin-bottom: 26px; }
.nn-split__rule { display: block; width: 52px; height: 1px; background: rgba(201,162,39,0.7); }
.nn-split__body { display: flex; flex-direction: column; gap: 26px; }
.nn-split__body p { font-size: 16px; line-height: 1.95; color: #C6CEDD; margin: 0; text-wrap: pretty; }

/* Berita hero: photo-dimmed cover with a gold hairline frame + corner diamonds */
.nn-newshero.nn-cover { padding: 96px 60px 104px !important; }
.nn-newsframe {
  border: 1px solid rgba(201,162,39,0.34);
  padding: 60px 48px 64px;
  position: relative;
  text-align: center;
}
.nn-newsframe::before,
.nn-newsframe::after,
.nn-newsframe > .nn-corner-b::before,
.nn-newsframe > .nn-corner-b::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  background: linear-gradient(150deg, #F0DFA6, #A87F14);
  transform: rotate(45deg);
}
.nn-newsframe::before { top: -5px; left: -5px; }
.nn-newsframe::after { top: -5px; right: -5px; }
.nn-newsframe > .nn-corner-b { display: block; }
.nn-newsframe > .nn-corner-b::before { bottom: -5px; left: -5px; }
.nn-newsframe > .nn-corner-b::after { bottom: -5px; right: -5px; }
.nn-newsframe .nn-label { letter-spacing: 0.42em; color: var(--nn-gold-light); margin-bottom: 26px; }
.nn-newsframe h1 { font-weight: 300; font-size: 72px; line-height: 1.02; letter-spacing: 0.02em; color: var(--nn-cream-bright); margin: 0 0 22px; text-wrap: balance; }
.nn-newsframe__sub { font-family: var(--nn-display); font-style: italic; font-size: 26px; line-height: 1.4; color: var(--nn-gold-light); margin: 0; }

/* news article band */
.nn-news { background: var(--nn-navy-panel); position: relative; overflow: hidden; padding: 96px 60px; }
.nn-news::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 460px at 18% 0%, rgba(201,162,39,0.16), transparent 70%);
}
.nn-news--right::before { background: radial-gradient(900px 460px at 82% 0%, rgba(201,162,39,0.16), transparent 70%); }
.nn-news__inner { max-width: 1140px; margin: 0 auto; position: relative; }
.nn-news__lede {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 0 0 40px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--nn-gold-light);
}
.nn-news__lede p { margin: 0; }
.nn-news__lede .nn-news__no { letter-spacing: 0.26em; color: #7E8CA6; }
.nn-news__lede .nn-news__line { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,162,39,0.6), rgba(201,162,39,0.08)); }
.nn-news--right .nn-news__lede .nn-news__line { background: linear-gradient(90deg, rgba(201,162,39,0.08), rgba(201,162,39,0.6)); }

.nn-news__body.wp-block-columns { gap: 0; align-items: stretch; margin: 0; }
.nn-news__media { background: var(--nn-navy-tint); overflow: hidden; box-shadow: 0 50px 90px -55px rgba(0,0,0,0.85); }
.nn-news__media.wp-block-column { padding: 0; }
.nn-news__media .wp-block-image { margin: 0; height: 100%; }
.nn-news__media img { display: block; width: 100%; height: 100%; min-height: 460px; object-fit: cover; object-position: 50% 45%; }
.nn-news__panel.wp-block-column {
  background: #FFFDF8;
  padding: 64px 56px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nn-news__panel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #A87F14, #F0DFA6 50%, #A87F14);
}
.nn-news__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 26px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.nn-news__meta p { margin: 0; }
.nn-news__meta .nn-news__kat { color: var(--nn-gold-dark); }
.nn-news__meta .nn-news__date { color: #96A0B4; }
.nn-news__panel h2 { font-size: 40px; line-height: 1.1; letter-spacing: -0.005em; margin: 0 0 26px; text-wrap: balance; }
.nn-news__flourish {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 28px;
}
.nn-news__flourish::before { content: ""; width: 40px; height: 1px; background: rgba(201,162,39,0.8); flex: 0 0 40px; }
.nn-news__flourish::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,162,39,0.5), rgba(201,162,39,0)); }
.nn-news__flourish span { width: 6px; height: 6px; background: linear-gradient(150deg, #F0DFA6, #A87F14); transform: rotate(45deg); display: block; }
.nn-news__panel p:last-child { font-size: 17px; line-height: 1.95; color: #4C5670; margin: 0; text-wrap: pretty; }
.nn-news--right .nn-news__body .nn-news__panel { order: 0; }
.nn-news--right .nn-news__body .nn-news__media { order: 1; }

/* photo gallery band */
.nn-galband { background: #F6F1E6; padding: 84px 60px; }
.nn-galband__inner { max-width: 1140px; margin: 0 auto; }
.nn-galband .nn-headrule { margin-bottom: 34px; }
.nn-gal.wp-block-gallery { gap: 18px; }
.nn-gal.wp-block-gallery figure.wp-block-image { margin: 0; }
.nn-gal.wp-block-gallery figure.wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: 50% 42%;
  background: var(--nn-navy-tint);
  outline: 1px solid rgba(168,127,20,0.5);
  outline-offset: -1px;
}
.nn-galtail {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 34px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--nn-gold-dark);
  white-space: nowrap;
}
.nn-galtail::before { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,162,39,0), rgba(201,162,39,0.55)); }
.nn-galtail p { margin: 0; }

/* eyebrow rule: diamond + mono label + fading hairline */
.nn-eyerule {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 0 0 40px;
}
.nn-eyerule p { margin: 0; }
.nn-eyerule__line { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(201,162,39,0.6), rgba(201,162,39,0.1)); }

/* long-form heritage prose */
.nn-longform { max-width: 820px; }
.nn-longform p { font-size: 17px; line-height: 2; color: #4C5670; margin: 0 0 22px; text-wrap: pretty; }
.nn-longform p:last-child { margin-bottom: 0; }
.nn-section--navy .nn-longform p,
.nn-section--deep .nn-longform p { color: #C6CEDD; }
.nn-adatquote {
  margin: 0;
  padding-left: 26px;
  border-left: 2px solid var(--nn-gold);
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 28px;
  line-height: 1.45;
  color: var(--nn-navy);
}
.nn-adatquote p { margin: 0; font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; }

/* plain outlined figures + captions */
.nn-outline .wp-block-image,
figure.nn-outline { margin: 0; }
.nn-outline img {
  display: block;
  width: 100%;
  outline: 1px solid rgba(168,127,20,0.5);
  outline-offset: -1px;
  background: var(--nn-navy-tint);
}
.nn-outline--43 img { aspect-ratio: 4/3; object-fit: cover; }
.nn-outline--34 img { aspect-ratio: 3/4; object-fit: cover; }
.nn-outline--45 img { aspect-ratio: 4/5; object-fit: cover; object-position: 50% 28%; }
.nn-outline--169 img { aspect-ratio: 16/9; object-fit: cover; object-position: 50% 50%; outline: none; box-shadow: 0 50px 90px -55px rgba(0,0,0,0.85); }
.nn-section--navy .nn-outline img,
.nn-section--deep .nn-outline img { outline-color: rgba(201,162,39,0.4); }
.nn-caption__title { font-family: var(--nn-display); font-size: 22px; color: var(--nn-navy); margin: 18px 0 6px; }
.nn-section--navy .nn-caption__title,
.nn-section--deep .nn-caption__title { color: var(--nn-cream-bright); font-size: 24px; }
.nn-caption p { font-size: 15px; line-height: 1.8; color: var(--nn-text-muted); margin: 0; max-width: 820px; }
.nn-section--navy .nn-caption p,
.nn-section--deep .nn-caption p { color: #C6CEDD; }
.nn-note { font-size: 15px; line-height: 1.8; color: var(--nn-text-muted); margin: 22px 0 0; max-width: 820px; }
.nn-section--navy .nn-note, .nn-section--deep .nn-note { color: #C6CEDD; }
.nn-maprule {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 26px 0 0;
}
.nn-maprule::before { content: ""; flex: 0 0 34px; height: 1px; background: rgba(201,162,39,0.7); }
.nn-maprule p { font-size: 15px; line-height: 1.8; color: #C6CEDD; margin: 0; }

/* light paper frame for maps/charts */
.nn-paper { background: #F6F1E6; padding: 34px; box-shadow: 0 50px 90px -55px rgba(0,0,0,0.85); }
.nn-paper--white { background: #FFFDF8; box-shadow: 0 40px 80px -60px rgba(11,21,38,0.6); }
.nn-paper .wp-block-image { margin: 0; }
.nn-paper img { display: block; width: 100%; height: auto; }

/* gold-topped concept cards (light + on-dark) */
.nn-concepts.wp-block-columns { gap: 24px; align-items: stretch; }
.nn-concept {
  background: #FFFDF8;
  padding: 32px 28px;
  border-top: 3px solid var(--nn-gold);
  height: 100%;
  box-sizing: border-box;
}
.nn-concept__title { font-family: var(--nn-display); font-size: 24px; color: var(--nn-navy); margin: 0 0 14px; }
.nn-concept p { font-size: 15px; line-height: 1.9; color: #4C5670; margin: 0; }
.nn-concept--dark { background: rgba(255,255,255,0.04); }
.nn-concept--dark .nn-concept__title { color: var(--nn-cream-bright); }
.nn-concept--dark p { color: #C6CEDD; }

/* timeline */
.nn-timeline { display: flex; flex-direction: column; }
.nn-timeline .nn-tl.wp-block-columns {
  gap: 40px;
  padding: 30px 0;
  border-top: 1px solid rgba(168,127,20,0.35);
  margin: 0;
  align-items: flex-start;
}
.nn-timeline .nn-tl:last-child { border-bottom: 1px solid rgba(168,127,20,0.35); }
.nn-tl__year {
  font-family: var(--nn-mono);
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #A87F14;
  margin: 0;
}
.nn-tl__title { font-family: var(--nn-display); font-size: 24px; color: var(--nn-navy); margin: 0 0 10px; }
.nn-tl p:not(.nn-tl__year):not(.nn-tl__title) { font-size: 15px; line-height: 1.9; color: #4C5670; margin: 0; }

/* two-up treaty figure */
.nn-treaty.wp-block-columns { gap: 48px; align-items: center; }

/* ---------- footer ---------- */
.nn-footer { background: var(--nn-navy-panel); color: var(--nn-slate); position: relative; }
.nn-footer__rule { height: 2px; background: var(--nn-rule); }
.nn-footer__inner { max-width: 1140px; margin: 0 auto; padding: 76px 40px 44px; }
.nn-footer__top {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 56px;
  align-items: start;
  padding-bottom: 44px;
}
.nn-footer__brand {
  font-family: var(--nn-display);
  font-size: 30px;
  color: var(--nn-cream);
  line-height: 1.3;
  margin: 0 0 18px;
}
.nn-footer__top p { font-size: 15px; line-height: 1.85; margin: 0; max-width: 420px; color: var(--nn-slate); }
.nn-footer__nav { padding-top: 36px; }
.nn-footer__nav .wp-block-navigation__container,
.nn-footer__nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; }
.nn-footer__nav.wp-block-group { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; }
.nn-footer__nav p { margin: 0; }
.nn-footer__nav a { color: var(--nn-slate); font-size: 14px; }
.nn-footer__nav a:hover { color: var(--nn-gold-light); }
.nn-footer__hr { height: 1px; background: rgba(255,255,255,0.10); border: 0; margin: 0; }
.nn-footer__info {
  display: grid;
  grid-template-columns: 1.25fr 1.15fr 0.9fr;
  padding-top: 44px;
}
.nn-footer__info > div + div { border-left: 1px solid rgba(255,255,255,0.10); padding-left: 40px; }
.nn-footer__info .nn-label { margin-bottom: 16px; }
.nn-footer__info p { font-size: 14px; line-height: 1.85; margin: 0; }
.nn-footer__info .is-cream { color: var(--nn-cream); }
.nn-contact { display: grid; gap: 16px; }
.nn-contact strong { display: block; font-weight: 400; font-size: 14px; line-height: 1.6; color: var(--nn-cream); }
.nn-contact a { font-family: var(--nn-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--nn-gold); }
.nn-footer__legal {
  max-width: 1140px;
  margin: 0 auto;
  padding: 26px 40px 36px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--nn-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #93A0B7;
}
.nn-footer__legal p { margin: 0; }

/* ================= tablet ≤1140px ================= */
@media (max-width: 1140px) {
  .nn-header__inner { padding: 16px 32px; gap: 16px 24px; min-height: 0; }
  .nn-nav .wp-block-navigation__container { gap: 12px 20px; }
  .nn-nav a { font-size: 13px; }
  .nn-section, .nn-section--plain, .nn-pagehead { padding-left: 32px; padding-right: 32px; }
  .nn-hero__inner { padding: 0 32px; }
  h1.nn-h1 { font-size: 54px; }
  p.nn-h1sub { font-size: 32px; }
  .nn-plate__inner h2 { font-size: 42px; }
  .nn-plate__inner { padding: 60px 44px 56px; }
  .nn-quote__inner p { font-size: 32px; }
  .nn-arkib.wp-block-columns { display: block; }
  .nn-arkib > .wp-block-column:first-child { position: static; margin-bottom: 48px; }
  .nn-arkib h2 { font-size: 38px; }
  .nn-item.wp-block-columns { gap: 24px; }
  .nn-item__num { flex-basis: 52px !important; }
  .nn-item__num .nn-item__no { font-size: 38px; }
  .nn-item h3 { font-size: 28px; }
  .nn-pagehead h1 { font-size: 48px; }
  .nn-footer__inner { padding: 64px 32px 40px; }
  .nn-footer__info { grid-template-columns: 1fr 1fr 1fr; gap: 0 28px; }
  .nn-footer__info > div + div { padding-left: 28px; }
  .nn-footer__legal { padding-left: 32px; padding-right: 32px; }
  .nn-frame__plate { min-height: 480px; }
  .nn-frame__media, .nn-frame__media img { min-height: 456px; }

  .nn-mast { padding: 88px 32px 96px; }
  .nn-mast__inner, .nn-mast--reverse .nn-mast__inner { gap: 44px; }
  .nn-mast h1 { font-size: 58px; }
  .nn-mast__name { font-size: 30px; }
  .nn-headrule h2, .nn-intro h2, .nn-aside h2 { font-size: 36px; }
  .nn-lead-block__big { font-size: 27px; }
  .nn-lineage.wp-block-columns { flex-wrap: wrap !important; }
  .nn-lineage .wp-block-column { flex-basis: calc(50% - 20px) !important; }
  .nn-goldcard__inner { padding: 34px 28px 36px; }
  .nn-aside.wp-block-columns { display: block; gap: 40px; }
  .nn-aside > .wp-block-column:first-child { position: static; margin-bottom: 40px; }
  .nn-prose-cols.wp-block-columns { display: block; }
  .nn-prose-cols .wp-block-column + .wp-block-column { margin-top: 24px; }
  .nn-tiles.wp-block-columns { flex-wrap: wrap !important; }
  .nn-tiles .wp-block-column { flex-basis: calc(50% - 13px) !important; }
  .nn-creed { padding: 104px 32px; }
  .nn-creed__quote { font-size: 36px; }

  .nn-titlehero { padding: 72px 32px 80px; }
  .nn-titlehero h1 { font-size: 56px; }
  .nn-soko.wp-block-columns { gap: 26px; }
  .nn-soko__meta h3 { font-size: 22px; }
  .nn-doc.wp-block-columns { display: block; }
  .nn-doc > .wp-block-column + .wp-block-column { margin-top: 44px; }

  .nn-cover { padding: 110px 32px 118px !important; }
  .nn-cover h1 { font-size: 54px; }
  .nn-plates.wp-block-gallery { gap: 18px; }
  .nn-split.wp-block-columns { display: block; }
  .nn-split > .wp-block-column + .wp-block-column { margin-top: 34px; }
  .nn-split h2 { font-size: 34px; }

  .nn-newshero.nn-cover { padding: 80px 32px 88px !important; }
  .nn-newsframe { padding: 48px 32px 52px; }
  .nn-newsframe h1 { font-size: 54px; }
  .nn-news { padding: 80px 32px; }
  .nn-news__panel.wp-block-column { padding: 48px 40px; }
  .nn-news__panel h2 { font-size: 32px; }
  .nn-news__media img { min-height: 380px; }
  .nn-galband { padding: 72px 32px; }
  .nn-longform p { font-size: 16px; }
  .nn-adatquote { font-size: 24px; }
  .nn-treaty.wp-block-columns { display: block; }
  .nn-treaty > .wp-block-column + .wp-block-column { margin-top: 26px; }
  .nn-paper { padding: 26px; }
}

/* ================= mobile ≤900px ================= */
@media (max-width: 900px) {
  .nn-header__inner { padding: 18px 20px; gap: 16px; }
  .nn-crests img { height: 46px; }
  .nn-crests .nn-crest--naning img { height: 44px; }
  .nn-nav .wp-block-navigation__responsive-container-open { display: flex; }

  .nn-section, .nn-section--plain { padding: 64px 20px 72px; }
  .nn-section--parchment { padding-bottom: 72px; }
  .nn-pagehead { padding: 64px 20px 56px; }
  .nn-pagehead h1 { font-size: 34px; }
  .nn-pagehead p { font-size: 16px; }

  .nn-hero__inner { grid-template-columns: 1fr; gap: 0; padding: 0 20px; margin-bottom: 40px; }
  .nn-hero__text { padding: 56px 0 40px; }
  h1.nn-h1 { font-size: 40px; }
  p.nn-h1sub { font-size: 27px; }
  p.nn-lead { font-size: 16px; margin-bottom: 34px; }
  .nn-frame { padding: 20px 0 0; }
  .nn-frame::before { inset: 16px 0 -12px 0; }
  .nn-frame__plate { min-height: 400px; margin: 0 14px; padding: 8px; }
  .nn-frame__plate::before { left: -23px; top: -13px; }
  .nn-frame__plate::after { right: -23px; top: -13px; }
  .nn-frame__media, .nn-frame__media img { min-height: 384px; }
  .nn-frame__caption { font-size: 10px; letter-spacing: 0.2em; padding: 11px 18px; }

  .nn-divider { margin-bottom: 40px; }
  .nn-cards.wp-block-columns { gap: 48px; }
  .nn-cards .wp-block-column { margin-top: 0 !important; }
  .nn-plate__inner { padding: 48px 24px 44px; }
  .nn-plate__inner h2 { font-size: 34px; }

  .nn-quote { padding: 56px 24px; }
  .nn-quote__inner { padding: 26px 0; }
  .nn-quote__inner p { font-size: 26px; }

  .nn-arkib h2 { font-size: 34px; }
  .nn-item.wp-block-columns { display: block; padding: 32px 0 40px; }
  .nn-item.wp-block-columns > .wp-block-column { margin-bottom: 22px; }
  .nn-item.wp-block-columns > .wp-block-column:last-child { margin-bottom: 0; }
  .nn-item__num { text-align: left; }
  .nn-item__num .nn-item__no { font-size: 40px; }
  .nn-item h3 { font-size: 26px; }

  .nn-prose h2 { font-size: 30px; margin-top: 40px; }
  .nn-prose h3 { font-size: 22px; }
  .nn-panel { padding: 26px 22px; }

  .nn-footer__inner { padding: 56px 20px 36px; }
  .nn-footer__top { grid-template-columns: 1fr; gap: 34px; }
  .nn-footer__brand { font-size: 26px; }
  .nn-footer__nav { padding-top: 0; }
  .nn-footer__nav .wp-block-navigation__container,
  .nn-footer__nav ul,
  .nn-footer__nav.wp-block-group { grid-template-columns: 1fr; }
  .nn-footer__info { grid-template-columns: 1fr; gap: 32px; }
  .nn-footer__info > div + div { border-left: 0; padding-left: 0; }
  .nn-footer__legal { flex-direction: column; text-align: center; padding: 24px 20px 32px; }

  .nn-mast { padding: 56px 20px 64px; }
  .nn-mast__inner, .nn-mast--reverse .nn-mast__inner { grid-template-columns: 1fr; gap: 44px; }
  .nn-mast--reverse .nn-portrait { order: 2; }
  .nn-numrow.wp-block-columns { display: flex !important; flex-wrap: nowrap !important; gap: 16px; }
  .nn-numrow .wp-block-column:first-child { flex: 0 0 44px !important; }
  .nn-numrow__no { font-size: 28px; }
  .nn-pullquote { font-size: 17px; }
  .nn-mast h1 { font-size: 44px; }
  .nn-mast__pre { font-size: 22px; }
  .nn-mast__name { font-size: 24px; }
  .nn-facts.wp-block-columns { flex-wrap: wrap !important; }
  .nn-facts .wp-block-column { flex-basis: calc(50% - 10px) !important; }
  .nn-portrait::before { inset: -14px; }
  .nn-portrait__plate::before { left: -23px; top: -23px; }
  .nn-portrait__plate::after { right: -23px; top: -23px; }
  .nn-portrait__plaque { bottom: -22px; font-size: 10px; letter-spacing: 0.2em; padding: 11px 18px; }

  .nn-lead-block__big { font-size: 24px; }
  .nn-headrule { flex-wrap: wrap; gap: 14px; margin-bottom: 34px; }
  .nn-headrule h2, .nn-intro h2, .nn-aside h2 { font-size: 30px; }
  .nn-headrule h2 { white-space: normal; }
  .nn-intro { margin-bottom: 44px; }
  .nn-lineage .wp-block-column { flex-basis: calc(50% - 10px) !important; }
  .nn-lineage__name { font-size: 20px; }
  .nn-goldcards.wp-block-columns { gap: 20px; }
  .nn-goldcard__inner { padding: 34px 26px; }
  .nn-table__head h3 { font-size: 21px; }
  .nn-table__cols, .nn-table__row { padding-left: 18px; padding-right: 18px; gap: 16px; }
  .nn-table__cols > :first-child, .nn-table__row > :first-child { flex: 0 0 44%; }
  .nn-table__row .nn-name { font-size: 18px; }
  .nn-tiles .wp-block-column { flex-basis: 100% !important; }
  .nn-creed { padding: 72px 20px; }
  .nn-creed__quote { font-size: 28px; }

  .nn-titlehero { padding: 56px 20px 64px; }
  .nn-titlehero h1 { font-size: 40px; }
  .nn-titlehero__sub { font-size: 20px; }
  .nn-soko.wp-block-columns { gap: 40px; }
  .nn-section__note { margin-bottom: 34px; }
  .nn-banner { margin-bottom: 32px; }
  .nn-hairgrid.wp-block-columns { display: block; }
  .nn-hairgrid > .wp-block-column + .wp-block-column { border-top: 1px solid rgba(201,162,39,0.35); }
  .nn-namecards > .wp-block-column { flex-basis: 100% !important; }
  .nn-namecards.wp-block-columns { gap: 18px; }
  .nn-docrow { display: block; }
  .nn-docrow > :first-child { margin-bottom: 6px; }
  .nn-doc__creed { font-size: 20px; }

  .nn-cover { padding: 84px 20px 88px !important; }
  .nn-cover h1 { font-size: 38px; }
  .nn-cover__sub { font-size: 20px; }
  .nn-plates.wp-block-gallery { gap: 14px; }
  .nn-split h2 { font-size: 28px; }

  .nn-newshero.nn-cover { padding: 56px 20px 64px !important; }
  .nn-newsframe { padding: 40px 22px 44px; }
  .nn-newsframe h1 { font-size: 40px; }
  .nn-newsframe__sub { font-size: 19px; }
  .nn-news { padding: 56px 20px 64px; }
  .nn-news__lede { flex-wrap: wrap; gap: 12px; font-size: 10px; margin-bottom: 28px; }
  .nn-news__body.wp-block-columns { display: block; }
  .nn-news__media img { min-height: 260px; }
  .nn-news__panel.wp-block-column { padding: 36px 24px 40px; }
  .nn-news__panel h2 { font-size: 26px; }
  .nn-news__panel p:last-child { font-size: 16px; }
  .nn-news--right .nn-news__body .nn-news__panel { order: 2; }
  .nn-galband { padding: 56px 20px 64px; }
  .nn-gal.wp-block-gallery { gap: 12px; }
  .nn-galtail { font-size: 10px; letter-spacing: 0.2em; }

  .nn-eyerule { flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
  .nn-longform p { font-size: 16px; line-height: 1.95; }
  .nn-adatquote { font-size: 21px; padding-left: 18px; }
  .nn-paper { padding: 16px; }
  .nn-concepts.wp-block-columns { display: block; }
  .nn-concepts > .wp-block-column + .wp-block-column { margin-top: 18px; }
  .nn-timeline .nn-tl.wp-block-columns { display: block; padding: 24px 0; }
  .nn-tl__year { margin-bottom: 12px; }
  .nn-tl__title { font-size: 21px; }
  .nn-caption__title { font-size: 20px; }
  .nn-section--navy .nn-caption__title, .nn-section--deep .nn-caption__title { font-size: 21px; }
}
