/* npd-2026. Generated by tools/build_css.py from assets/css/src. Edit the sources, not this file. */
/* ===== 00-base.css ===== */
/* Tokens and base, from final/style.css lines 1 to 81. Values unchanged. Every design class
   carries the npd- prefix; selectors are rewritten to hit the element a core block outputs. */
:root {
  --blue: #2955AB;
  --blue-dark: #1C3D75;
  --ink: #22263E;
  --gold: #EBB661;
  --gold-deep: #D4AF37;
  --text: #333333;
  --muted: #555555;
  --surface: #F8F9FA;
  --border: #E3E6EC;
  --tint: #EEF3FB;
  --white: #FFFFFF;
  --plate: #BCC1C9;

  --font-head: "Playfair Display", Georgia, serif;
  --font-body: "Lato", system-ui, sans-serif;

  --radius: 10px;
  --radius-pill: 999px;
  --head-h: 84px;
  --wrap: 1120px;
  --gutter: 16px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--head-h) + 24px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

body {
  margin: 0;
  background: var(--white);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--blue); }
a:hover { color: var(--blue-dark); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, .npd-q-num, .npd-qi-n, .npd-r-num, .npd-q-bar-num, .npd-ledger strong { font-variant-numeric: lining-nums; }
h1, h2, h3 { font-family: var(--font-head); color: var(--ink); font-weight: 700; margin: 0; line-height: 1.18; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
figure { margin: 0; }
.npd-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- WordPress defaults that the design does not have ---------- */
.wp-site-blocks, .wp-site-blocks > *, .npd-main, .wp-block-post-content { margin: 0; padding: 0; }
.wp-block-post-content > *, .npd-main > * { margin-block: 0; }
.wp-block-group { box-sizing: border-box; }
.wp-block-image { margin: 0; }
.wp-block-image img { box-sizing: border-box; vertical-align: bottom; }
.wp-block-image :where(figcaption) { margin: 0; }
.wp-block-list { list-style: none; margin: 0; padding: 0; }
.wp-block-buttons { margin: 0; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-heading { font-family: var(--font-head); }
.wp-block-template-part:has(> .npd-site-head), .wp-block-template-part:has(> .npd-site-foot) { display: contents; }
.skip-link.screen-reader-text:focus { background: var(--ink); color: var(--white); padding: 10px 16px; border-radius: 6px; font: 700 16px var(--font-body); }

.npd-wrap { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin-inline: auto; }

.npd-eyebrow {
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--blue);
}

/* ---------- Buttons: the design's .btn pills on core/button ----------
   The wrapper is a flex box so the link sits on no line box; the link keeps the design's
   inline-flex, sizes and colours. Icons are masks that take currentColor. */
.wp-block-button { display: flex; }
.wp-block-button > .wp-block-button__link { flex: 1 1 auto; }
.is-style-npd-gold > .wp-block-button__link, .is-style-npd-line > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 26px; border-radius: var(--radius-pill);
  font-family: var(--font-body); font-weight: 700; font-size: 16px; line-height: inherit; letter-spacing: normal; text-decoration: none;
  border: 2px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
  box-shadow: none; word-break: normal; text-align: center;
}
.is-style-npd-gold > .wp-block-button__link { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.is-style-npd-gold > .wp-block-button__link:hover { background: #E3A94A; border-color: #E3A94A; color: var(--ink); }
.is-style-npd-line > .wp-block-button__link { background: var(--white); color: var(--blue-dark); border-color: var(--blue-dark); }
.is-style-npd-line > .wp-block-button__link:hover { background: var(--blue-dark); color: var(--white); }
.npd-btn-sm > .wp-block-button__link { min-height: 42px; padding: 0 18px; font-size: 15px; }
.is-style-npd-gold.npd-ico-wa > .wp-block-button__link::before, .is-style-npd-line.npd-ico-wa > .wp-block-button__link::before { content: ""; width: 19px; height: 19px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.25-.12-1.47-.72-1.7-.8s-.39-.12-.56.12-.64.8-.78.97-.29.18-.54.06a6.7 6.7 0 0 1-3.3-2.9c-.25-.43.25-.4.71-1.33a.45.45 0 0 0 0-.42c-.06-.12-.56-1.35-.77-1.85s-.4-.42-.56-.43h-.48a.92.92 0 0 0-.67.31 2.8 2.8 0 0 0-.87 2.08 4.9 4.9 0 0 0 1 2.6 11.2 11.2 0 0 0 4.3 3.8c1.6.69 2.23.75 3.03.63a2.6 2.6 0 0 0 1.7-1.2 2.1 2.1 0 0 0 .15-1.2c-.06-.1-.23-.17-.48-.29z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.25-.12-1.47-.72-1.7-.8s-.39-.12-.56.12-.64.8-.78.97-.29.18-.54.06a6.7 6.7 0 0 1-3.3-2.9c-.25-.43.25-.4.71-1.33a.45.45 0 0 0 0-.42c-.06-.12-.56-1.35-.77-1.85s-.4-.42-.56-.43h-.48a.92.92 0 0 0-.67.31 2.8 2.8 0 0 0-.87 2.08 4.9 4.9 0 0 0 1 2.6 11.2 11.2 0 0 0 4.3 3.8c1.6.69 2.23.75 3.03.63a2.6 2.6 0 0 0 1.7-1.2 2.1 2.1 0 0 0 .15-1.2c-.06-.1-.23-.17-.48-.29z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.is-style-npd-gold.npd-ico-phone > .wp-block-button__link::before, .is-style-npd-line.npd-ico-phone > .wp-block-button__link::before { content: ""; width: 19px; height: 19px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; }

.npd-text-link a {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  font-weight: 700; color: var(--blue-dark); text-decoration: none;
  border-bottom: 2px solid var(--gold); padding-bottom: 2px;
}
.npd-text-link a::after { content: "\2192"; }
.npd-text-link a:hover { color: var(--blue); }

/* ===== 10-design.css ===== */
/* Concept 5 ("Question led"), final/style.css lines 83 to 464, in the same order so the cascade
   is the same. The menu is the core Navigation block in "always overlay" mode: from 981px the
   overlay is forced inline (the design's desktop nav), up to 980px it opens as the design's white
   panel under the header. */

/* Header */
.npd-site-head {
  position: sticky; top: 0; z-index: 50;
  background: var(--white); border-bottom: 1px solid var(--border);
}
.admin-bar .npd-site-head { top: 32px; }
@media (max-width: 782px) { .admin-bar .npd-site-head { top: 46px; } }
@media (max-width: 600px) { .admin-bar .npd-site-head { top: 0; } }
.npd-head-row { display: flex; align-items: center; gap: 28px 8px; min-height: var(--head-h); }
.npd-logo-plate.wp-block-image {
  display: inline-flex; align-items: center; background: var(--plate);
  padding: 8px 14px; border-radius: 8px; flex: none; margin: 0;
}
.npd-logo-plate.wp-block-image img { height: 54px; width: auto; }
.npd-site-head .wp-block-navigation.npd-site-nav { position: static; display: flex; align-items: center; gap: 28px; margin-left: auto; font-family: var(--font-body); }
.npd-site-head .npd-site-nav .wp-block-navigation__container { display: flex; flex-wrap: nowrap; gap: 26px; }
.npd-site-head .npd-site-nav .wp-block-navigation-item { display: block; }
.npd-site-head .npd-site-nav .wp-block-navigation-item__content {
  position: relative; display: inline-block; padding: 8px 0;
  color: var(--ink); text-decoration: none; font-weight: 700; font-size: 15px; line-height: 1.65;
}
.npd-site-head .npd-site-nav .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
  background: var(--gold); border-radius: 2px; transform: scaleX(0); transform-origin: left; transition: transform .2s;
}
.npd-site-head .npd-site-nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.npd-site-head .npd-site-nav .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.npd-site-head .wp-block-buttons.npd-head-ctas { display: flex; flex-wrap: nowrap; gap: 10px; }
.npd-site-head .wp-block-navigation__responsive-container-open,
.npd-site-head .wp-block-navigation__responsive-container-close { display: none; }
.npd-head-quick { display: none; }
.npd-quick { line-height: 0; }
.npd-quick a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--blue-dark); color: var(--blue-dark); background: var(--white); font-size: 0; text-decoration: none; }
.npd-quick a::before { content: ""; width: 19px; height: 19px; background: currentColor; }
.npd-quick-tel a::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-quick-gold a::before { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-quick-gold a { background: var(--gold); border-color: var(--gold); color: var(--ink); }

/* 981px and up: the core overlay is forced inline */
@media (min-width: 981px) {
  .npd-site-head .wp-block-navigation__responsive-container,
  .npd-site-head .wp-block-navigation__responsive-container.hidden-by-default,
  .npd-site-head .wp-block-navigation__responsive-container.is-menu-open {
    display: contents !important; position: static !important; background: none !important; padding: 0 !important;
    animation: none !important;
  }
  .npd-site-head .wp-block-navigation__responsive-close, .npd-site-head .wp-block-navigation__responsive-dialog, .npd-site-head .wp-block-navigation__responsive-container-content { display: contents !important; }
  .npd-site-head .wp-block-navigation__responsive-container-open, .npd-site-head .wp-block-navigation__responsive-container-close { display: none !important; }
}

/* Mobile question bar (the npd/question-rail block moves it into the header) */
.npd-q-bar {
  display: none; position: relative; background: var(--tint); border-top: 1px solid var(--border);
  opacity: 0; max-height: 0; overflow: hidden; transition: opacity .2s, max-height .2s;
}
.npd-q-bar.is-on { opacity: 1; max-height: 60px; }
.npd-q-bar-row { display: flex; align-items: center; gap: 12px; min-height: 46px; }
.npd-q-bar-num {
  flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--gold);
  display: grid; place-items: center; font-family: var(--font-head); font-size: 15px;
}
.npd-q-bar-text { font-size: 14px; color: var(--ink); font-weight: 700; line-height: 1.3; }
.npd-q-bar-of { color: var(--muted); font-weight: 400; margin-right: 4px; }
.npd-q-bar-fill {
  position: absolute; left: 0; bottom: 0; height: 3px; width: 100%;
  background: var(--gold); transform-origin: left; transform: scaleX(.2); transition: transform .3s;
}

/* Desktop progress rail on the right edge */
.npd-q-rail {
  display: none; position: fixed; right: 22px; top: 50%; z-index: 40;
  transform: translateY(-50%); width: 132px;
  opacity: 0; pointer-events: none; transition: opacity .25s;
}
.npd-q-rail.is-on { opacity: 1; pointer-events: auto; }
.npd-q-rail-title { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.npd-q-rail ol { position: relative; border-left: 2px solid var(--border); }
.npd-q-rail a {
  position: relative; display: block; padding: 8px 0 8px 16px; text-decoration: none; color: var(--muted);
}
.npd-q-rail a::before {
  content: ""; position: absolute; left: -2px; top: 8px; bottom: 8px; width: 2px;
  background: transparent; transition: background .2s;
}
.npd-q-rail .npd-r-num { display: block; font-family: var(--font-head); font-size: 18px; line-height: 1.1; color: var(--muted); transition: color .2s, font-size .2s; }
.npd-q-rail .npd-r-label { display: block; font-size: 12px; line-height: 1.3; font-weight: 700; }
.npd-q-rail a:hover .npd-r-num { color: var(--blue); }
.npd-q-rail a[aria-current="step"] { color: var(--ink); }
.npd-q-rail a[aria-current="step"]::before { background: var(--gold); width: 4px; left: -3px; }
.npd-q-rail a[aria-current="step"] .npd-r-num { color: var(--blue-dark); font-size: 26px; }

@media (min-width: 1400px) { .npd-q-rail { display: block; } }

/* Hero */
.npd-hero { padding: 64px 0 88px; border-bottom: 1px solid var(--border); }
.npd-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center; }
.npd-hero h1 { font-size: clamp(38px, 4.6vw, 60px); line-height: 1.08; margin-top: 18px; letter-spacing: -.01em; }
.npd-h1-answer { display: block; margin-top: 14px; font-size: .56em; line-height: 1.25; color: var(--blue-dark); font-style: italic; }
.npd-short-answer { margin-top: 30px; padding-left: 22px; border-left: 3px solid var(--gold); }
.npd-sa-label { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 8px; }
.npd-short-answer p:not(.npd-sa-label) { font-size: 18px; color: var(--text); }
.wp-block-buttons.npd-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.npd-hero-note { margin-top: 22px; font-size: 15px; color: var(--muted); }

.npd-hero-side { position: relative; padding-bottom: 150px; }
.wp-block-image.npd-hero-photo { margin: 0 0 0 48px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 4.4; }
.wp-block-image.npd-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.npd-q-index {
  position: absolute; left: 0; right: 40px; bottom: 0;
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: 0 18px 40px -18px rgba(34, 38, 62, .35);
  padding: 22px 24px 14px;
}
.npd-q-index-title { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.npd-q-index li + li { border-top: 1px solid var(--border); }
.npd-q-index a {
  display: flex; align-items: center; gap: 14px; padding: 10px 0;
  color: var(--ink); text-decoration: none; font-weight: 700; font-size: 16px; line-height: 1.3;
}
.npd-q-index a:hover { color: var(--blue); }
.npd-qi-n {
  flex: none; font-family: var(--font-head); font-size: 22px; color: var(--blue-dark);
  width: 34px; height: 34px; display: grid; place-items: center;
  border: 1px solid var(--gold-deep); border-radius: 50%; line-height: 1;
}

/* Question sections */
.npd-q { padding: 104px 0; border-bottom: 1px solid var(--border); }
.npd-q-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; }
.npd-q-ask { position: sticky; top: calc(var(--head-h) + 32px); }
.npd-q-num {
  display: block; font-family: var(--font-head); font-weight: 700;
  font-size: clamp(76px, 8vw, 116px); line-height: .9; color: var(--gold);
  letter-spacing: -.02em;
}
.npd-q-of { margin-top: 16px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.npd-q h2 { font-size: clamp(32px, 3.4vw, 46px); margin-top: 8px; }
.npd-q-lead { margin-top: 18px; font-size: 18px; color: var(--text); }
.npd-ans-intro { font-weight: 700; color: var(--ink); margin-bottom: 16px; }
.npd-ans-footnote { margin-top: 22px; font-size: 15px; color: var(--muted); }

/* Q1: situation to POA cards. The design's whole-card <a> is a card with its link stretched
   over it (::after), so the card keeps one link and the editor keeps plain text. */
.npd-need-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.npd-need {
  position: relative; display: flex; flex-direction: column; height: 100%;
  padding: 20px 22px 0; border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--white); transition: border-color .15s, box-shadow .15s;
}
.npd-need:hover { border-color: var(--blue); box-shadow: 0 10px 26px -16px rgba(28, 61, 117, .45); }
.npd-need:focus-within { outline: 3px solid var(--blue); outline-offset: 3px; }
.npd-need-if { font-size: 13px; color: var(--muted); }
.npd-need-what { margin-top: 4px; font-size: 17px; line-height: 1.4; color: var(--ink); font-weight: 700; flex: 1; }
.npd-need-what a { color: inherit; text-decoration: none; }
.npd-need-what a:focus-visible { outline: none; }
.npd-need-what a::after { content: ""; position: absolute; inset: 0; }
.npd-need-then {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 16px; padding: 12px 0 14px; border-top: 1px dashed var(--border);
  font-family: var(--font-head); font-size: 19px; color: var(--blue-dark);
}
.npd-need-then::after { content: ""; width: 22px; height: 22px; background: var(--blue); flex: none; transition: transform .15s; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-need:hover .npd-need-then::after { transform: translateX(4px); }

.npd-not-poa { margin-top: 28px; padding: 20px 22px; background: var(--surface); border-radius: var(--radius); }
.npd-not-poa-title { font-weight: 700; color: var(--ink); margin-bottom: 12px; }
.npd-doc-links { display: flex; flex-wrap: wrap; gap: 10px; }
.npd-doc-links a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-pill);
  color: var(--blue-dark); font-weight: 700; font-size: 15px; text-decoration: none;
}
.npd-doc-links a:hover { border-color: var(--blue); color: var(--blue); }

/* Q2: photo and routes */
.wp-block-image.npd-ans-photo { margin: 0 0 28px; }
.wp-block-image.npd-ans-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); }
.wp-block-image.npd-ans-photo figcaption { margin: 10px 0 0; font-size: 14px; line-height: inherit; color: var(--muted); font-style: italic; text-align: left; }
.npd-route { display: grid; grid-template-columns: 44px 1fr; gap: 18px; padding: 18px 0; border-top: 1px solid var(--border); }
.npd-route:last-child { border-bottom: 1px solid var(--border); }
.npd-route-mark {
  width: 44px; height: 44px; display: grid; place-items: center;
  background: var(--tint); color: var(--blue-dark); border-radius: 8px;
  font-family: var(--font-head); font-size: 20px;
}
.npd-routes h3 { font-family: var(--font-body); font-size: 18px; }
.npd-route-body p { margin-top: 4px; font-size: 16px; }

/* Q3: bilingual diagram (npd/bilingual) and facts */
.npd-bilingual {
  display: grid; grid-template-columns: 1fr 96px 1fr; align-items: center;
  padding: 28px; background: var(--surface); border-radius: var(--radius); border: 1px solid var(--border);
}
.npd-sheet {
  background: var(--white); border: 1px solid var(--border); border-radius: 6px;
  padding: 18px 18px 22px; box-shadow: 0 10px 22px -18px rgba(34, 38, 62, .4);
}
.npd-sheet-tag { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-dark); margin-bottom: 12px; }
.npd-sheet .npd-ln { display: block; height: 7px; border-radius: 4px; background: var(--border); margin-top: 10px; }
.npd-sheet-ar .npd-ln { margin-left: auto; background: #D6DEEC; }
.npd-w90 { width: 90%; } .npd-w85 { width: 85%; } .npd-w80 { width: 80%; } .npd-w70 { width: 70%; } .npd-w60 { width: 60%; } .npd-w50 { width: 50%; }
.npd-match { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.npd-match span { display: block; width: 60%; height: 2px; background: var(--gold-deep); }
.npd-match p { font-size: 12px; line-height: 1.3; text-align: center; color: var(--muted); font-weight: 700; }
.npd-facts { margin-top: 28px; display: grid; gap: 0; }
.npd-fact { padding: 18px 0 18px 26px; border-top: 1px solid var(--border); position: relative; }
.npd-fact::before { content: ""; position: absolute; left: 0; top: 27px; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); }
.npd-facts h3 { font-family: var(--font-body); font-size: 18px; }
.npd-facts p { margin-top: 4px; font-size: 16px; }

/* Q4: price ledger (core/table). The design's mobile cell labels came from data-h; here they
   come from the column position, with the same words. */
.npd-ledger { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.npd-ledger .wp-block-table { margin: 0; overflow: visible; }
.npd-ledger thead, .npd-ledger tfoot { border: 0; }
.npd-ledger :is(th, td) { border: 0; }
.npd-ledger .wp-block-table figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.npd-ledger table { width: 100%; border-collapse: collapse; font-size: 15px; }
.npd-ledger thead th {
  text-align: left; background: var(--tint); color: var(--ink);
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase; padding: 14px 18px;
}
.npd-ledger tbody th, .npd-ledger tbody td { text-align: left; vertical-align: top; padding: 16px 18px; border-top: 1px solid var(--border); }
.npd-ledger tbody th { color: var(--ink); font-weight: 700; width: 34%; }
.npd-ledger tbody td:last-child { width: 40%; }
.npd-ledger tbody td:nth-child(2) { white-space: nowrap; }
.npd-ledger strong { font-family: var(--font-head); font-size: 18px; color: var(--blue-dark); }
.npd-ledger tbody td:last-child { color: var(--muted); }
.npd-approved { padding: 18px; background: var(--surface); border-top: 2px solid var(--gold); color: var(--ink); font-size: 15px; font-weight: 700; }

/* How it works. The design's span.path-dot is the step's ::before. */
.npd-how { padding: 104px 0; border-bottom: 1px solid var(--border); }
.npd-how-head { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: end; }
.npd-how-head .npd-eyebrow { grid-column: 1; }
.npd-how-head h2 { grid-column: 1; font-size: clamp(30px, 3vw, 40px); margin-top: 8px; }
.npd-how-head p:not(.npd-eyebrow) { grid-column: 2; grid-row: 2; font-size: 18px; }
.npd-path { display: grid; grid-template-columns: repeat(6, 1fr); gap: 24px; margin-top: 56px; counter-reset: step; position: relative; }
.npd-path::before { content: ""; position: absolute; left: 0; right: 0; top: 11px; height: 2px; background: var(--border); }
.npd-path-step { position: relative; counter-increment: step; }
.npd-path-step::before {
  content: ""; position: relative; display: block; width: 24px; height: 24px; border-radius: 50%;
  background: var(--white); border: 2px solid var(--blue); margin-bottom: 18px;
}
.npd-path-step:last-child::before { background: var(--gold); border-color: var(--gold); }
.npd-path h3 { font-family: var(--font-body); font-size: 17px; line-height: 1.3; }
.npd-path h3::before { content: "Step " counter(step); display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.npd-path p { margin-top: 6px; font-size: 15px; }

/* FAQ (core/details) */
.npd-faq { padding: 104px 0; border-bottom: 1px solid var(--border); }
.npd-faq-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; }
.npd-faq-head { position: sticky; top: calc(var(--head-h) + 32px); }
.npd-faq-head h2 { font-size: clamp(30px, 3vw, 40px); margin-top: 8px; }
.npd-faq-head p:not(.npd-eyebrow) { margin-top: 14px; }
.npd-faq-list details { border-top: 1px solid var(--border); }
.npd-faq-list details:last-child { border-bottom: 1px solid var(--border); }
.npd-faq-list summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 20px 44px 20px 0; font-family: var(--font-head); font-size: 20px; color: var(--ink); line-height: 1.35;
}
.npd-faq-list summary::-webkit-details-marker { display: none; }
.npd-faq-list summary::after {
  content: "+"; position: absolute; right: 0; top: 18px; width: 30px; height: 30px; border-radius: 50%;
  border: 1px solid var(--border); display: grid; place-items: center; font-family: var(--font-body); font-size: 20px; color: var(--blue-dark);
}
.npd-faq-list details[open] summary::after { content: "\2212"; background: var(--gold); border-color: var(--gold); color: var(--ink); }
.npd-faq-list details p { padding: 0 0 22px; font-size: 16px; }

/* Footer */
.npd-site-foot { background: var(--ink); color: #D5D8E0; padding: 72px 0 28px; }
.npd-foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.npd-foot-brand p { margin-top: 18px; font-size: 15px; }
.npd-site-foot .npd-foot-h { font-family: var(--font-body); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.npd-site-foot li + li { margin-top: 8px; }
.npd-site-foot a { color: #FFFFFF; text-decoration: none; font-size: 15px; overflow-wrap: anywhere; }
.npd-site-foot a:hover { text-decoration: underline; }
.npd-foot-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: 14px; }
.npd-foot-base a + a { margin-left: 18px; }
/* Developer credit in the bottom bar: the bar's own colour, smaller text, links underlined. */
.npd-foot-base .npd-credit { font-size: 13px; overflow-wrap: anywhere; }
.npd-foot-base .npd-credit a { font-size: inherit; text-decoration: underline; text-underline-offset: 3px; }
.npd-foot-base .npd-credit a + a { margin-left: 0; }

/* Tablet */
@media (max-width: 1100px) {
  .npd-site-head .npd-site-nav .wp-block-navigation__container { gap: 18px; }
  .npd-head-ctas .npd-head-call { display: none; }
}
@media (max-width: 1399px) {
  .npd-q-bar { display: block; }
}
@media (max-width: 980px) {
  :root { --head-h: 72px; }
  .npd-logo-plate.wp-block-image img { height: 40px; }
  .npd-head-quick { display: flex; gap: 8px; margin-left: auto; }
  .npd-site-head .wp-block-navigation.npd-site-nav { margin-left: 0; gap: 0; }
  /* the design's .menu-btn: the core "Menu" button */
  .npd-site-head .npd-site-nav .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open,
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close {
    display: inline-flex; align-items: center; gap: 10px;
    min-height: 44px; padding: 0 16px; border-radius: var(--radius-pill);
    background: var(--white); border: 1px solid var(--border); color: var(--ink); font: 700 15px var(--font-body); cursor: pointer;
    text-transform: none; letter-spacing: normal; margin: 0; width: auto; height: auto;
  }
  .npd-site-head .npd-site-nav .wp-block-navigation__responsive-container-open::before,
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close::before {
    content: ""; width: 18px; height: 14px; flex: none;
    background: linear-gradient(var(--ink) 0 0) 0 0 / 100% 2px no-repeat, linear-gradient(var(--ink) 0 0) 0 6px / 100% 2px no-repeat, linear-gradient(var(--ink) 0 0) 0 12px / 100% 2px no-repeat;
  }
  /* open: the close button sits exactly on the Menu button, as the design's toggle stays put */
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: calc((var(--head-h) + 44px) / -2); right: var(--gutter); left: auto; z-index: 3; }
  .npd-site-head:has(.npd-q-bar.is-on) .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: calc((var(--head-h) + 44px) / -2 - 47px); }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { display: none; }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close::after { content: "Menu"; }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close { font-size: 0; }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close::after { font-size: 15px; }
  /* the design's .site-nav panel */
  .npd-site-head .wp-block-navigation__responsive-container.is-menu-open {
    display: flex !important; position: absolute; left: 0; right: 0; top: 100%; bottom: auto; width: auto; height: auto;
    background: var(--white) !important; color: var(--ink) !important; border-bottom: 1px solid var(--border);
    flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gutter) 20px !important;
    box-shadow: 0 20px 30px -20px rgba(34, 38, 62, .3); overflow: visible; animation: none; z-index: 60;
  }
  .npd-site-head .is-menu-open .wp-block-navigation__responsive-close, .npd-site-head .is-menu-open .wp-block-navigation__responsive-dialog { position: static; max-width: none; height: auto; margin: 0 !important; padding: 0 !important; }
  .npd-site-head .is-menu-open .wp-block-navigation__responsive-container-content { display: flex !important; flex-direction: column; align-items: stretch; gap: 0; padding: 0 !important; }
  .npd-site-head .is-menu-open .wp-block-navigation__container.wp-block-navigation__container { display: flex !important; flex-direction: column; align-items: stretch; gap: 0; }
  .npd-site-head .is-menu-open .wp-block-navigation-item { display: block; width: 100%; }
  .npd-site-head .npd-site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .wp-block-navigation-item { display: block; text-align: left; }
  .npd-site-head .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item + .wp-block-navigation-item { border-top: 1px solid var(--border); }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation-item__content.wp-block-navigation-item__content { display: inline-block; padding: 14px 0 10px; font-size: 17px; color: var(--ink); }
  .npd-site-head .is-menu-open .wp-block-buttons.npd-head-ctas { margin-top: 12px; display: flex; }
  .npd-site-head .is-menu-open .npd-head-ctas .npd-head-call { display: flex; }
  .npd-site-head .is-menu-open .npd-head-ctas .wp-block-button { flex: 1; }

  .npd-hero { padding: 40px 0 64px; }
  .npd-hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .npd-hero-side { padding-bottom: 0; }
  .wp-block-image.npd-hero-photo { margin: 0; aspect-ratio: 16 / 10; }
  .npd-q-index { position: relative; left: auto; right: auto; bottom: auto; margin: -64px 16px 0; }

  .npd-q, .npd-how, .npd-faq { padding: 72px 0; }
  .npd-q-grid, .npd-faq-grid { grid-template-columns: 1fr; gap: 36px; }
  .npd-q-ask, .npd-faq-head { position: static; }
  .npd-how-head { grid-template-columns: 1fr; gap: 0; }
  .npd-how-head p:not(.npd-eyebrow) { grid-column: 1; grid-row: auto; margin-top: 14px; }
  .npd-path { grid-template-columns: repeat(3, 1fr); row-gap: 40px; }
  .npd-path::before { display: none; }
  .npd-foot-grid { grid-template-columns: 1fr 1fr; }
}

/* Phone */
@media (max-width: 640px) {
  body { font-size: 16px; }
  .npd-logo-plate.wp-block-image { padding: 6px 10px; }
  .npd-logo-plate.wp-block-image img { height: 40px; }
  .npd-site-head .npd-site-nav .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open,
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { padding: 0 13px; font-size: 0; gap: 0; }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close::after { display: none; }
  .npd-hero h1 { font-size: 36px; }
  .npd-h1-answer { font-size: .64em; }
  .npd-short-answer p:not(.npd-sa-label) { font-size: 17px; }
  .npd-hero-ctas > .wp-block-button { flex: 1 1 100%; }
  .npd-q-index { margin: -40px 8px 0; padding: 18px 18px 10px; }
  .npd-q-index a { font-size: 15px; }
  .npd-q-num { font-size: 72px; }
  .npd-q h2 { font-size: 30px; }
  .npd-q-lead { font-size: 17px; }
  .npd-need-grid { grid-template-columns: 1fr; }
  .npd-bilingual { grid-template-columns: 1fr 52px 1fr; padding: 16px; }
  .npd-sheet { padding: 12px 12px 16px; }
  .npd-match p { display: none; }
  .npd-ledger thead { display: none; }
  .npd-ledger tbody tr { display: block; padding: 14px 16px; border-top: 1px solid var(--border); }
  .npd-ledger tbody tr:first-child { border-top: 0; }
  .npd-ledger tbody th, .npd-ledger tbody td { display: block; width: auto; padding: 0; border: 0; }
  .npd-ledger tbody td, .npd-ledger tbody td:last-child { margin-top: 6px; width: auto; white-space: normal; }
  .npd-ledger tbody td::before { font-size: 13px; font-weight: 700; color: var(--muted); }
  .npd-ledger tbody td:nth-child(2)::before { content: "Our service: "; }
  .npd-ledger tbody td:nth-child(3)::before { content: "Government fee: "; }
  .npd-path { grid-template-columns: 1fr; row-gap: 0; }
  .npd-path-step { display: grid; grid-template-columns: 24px 1fr; column-gap: 16px; padding-bottom: 22px; }
  .npd-path-step::before { grid-row: span 2; margin: 0; }
  .npd-path-step::after { content: ""; position: absolute; left: 11px; top: 28px; bottom: 0; width: 2px; background: var(--border); }
  .npd-path-step:last-child::after { display: none; }
  .npd-faq-list summary { font-size: 18px; }
  .npd-foot-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ===== 20-borrowed.css ===== */
/* The borrowed sections, final/style.css lines 467 to 702: concept 1's hero (now the sample
   sheet section before the CTA) and closing CTA, and concept 2's Dubai Courts guides.
   Class names are the design's with the npd- prefix. Source element rules stay inside
   :where() so specificity is unchanged. Where the design had a span or a div that is now a
   paragraph block, the rule zeroes the paragraph margin the scope would otherwise add. */

/* ---------- From concept 1: hero, now a section before the closing CTA ---------- */
:root { --c1-hero-serif: "Playfair Display", Georgia, "Times New Roman", serif; --c1-hero-sans: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif; --c1-hero-wrap: 1240px; --c1-hero-gutter: clamp(16px, 4vw, 40px); --c1-hero-radius: 2px; --c1-hero-shadow-paper: 0 1px 2px rgb(34 38 62 / .06), 0 18px 40px -18px rgb(34 38 62 / .28); --c1-hero-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .13 0 0 0 0 .15 0 0 0 0 .24 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --c1-hero-notes-w: 184px; --c1-hero-notes-gap: 32px; }
:where(.npd-c1-hero-scope) { color: var(--text); font: 400 17px/1.65 var(--c1-hero-sans); }
:where(.npd-c1-hero-scope) img { max-width: 100%; height: auto; display: block; }
:where(.npd-c1-hero-scope) a { color: var(--blue); text-underline-offset: 3px; }
:where(.npd-c1-hero-scope) a:hover { color: var(--blue-dark); }
:where(.npd-c1-hero-scope) :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
:where(.npd-c1-hero-scope) h1, :where(.npd-c1-hero-scope) h2, :where(.npd-c1-hero-scope) h3 { font-family: var(--c1-hero-serif); font-weight: 700; color: var(--ink); margin: 0; line-height: 1.2; }
:where(.npd-c1-hero-scope) h2 { font-size: clamp(28px, 3.2vw, 40px); }
:where(.npd-c1-hero-scope) h3 { font-size: 21px; }
:where(.npd-c1-hero-scope) p { margin: 0; }
.npd-c1-hero-wrap { width: 100%; max-width: calc(var(--c1-hero-wrap) + var(--c1-hero-gutter) * 2); margin: 0 auto; padding: 0 var(--c1-hero-gutter); }
.npd-c1-hero-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.is-style-npd-c1-gold > .wp-block-button__link, .is-style-npd-c1-line > .wp-block-button__link, .npd-c1-cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 12px 24px; font: 700 16px/1.2 var(--c1-hero-sans); letter-spacing: normal; text-decoration: none; text-align: center; word-break: normal; border-radius: var(--c1-hero-radius); border: 1.5px solid transparent; transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease; cursor: pointer; }
.is-style-npd-c1-gold > .wp-block-button__link, .npd-c1-cta-btn--gold { background: var(--gold); color: var(--ink); border-color: var(--gold); box-shadow: inset 0 -3px 0 rgb(34 38 62 / .12); }
.is-style-npd-c1-gold > .wp-block-button__link:hover, .npd-c1-cta-btn--gold:hover { background: #F0C47E; color: var(--ink); }
.is-style-npd-c1-line > .wp-block-button__link { background: var(--white); color: var(--blue-dark); border-color: var(--blue); box-shadow: none; }
.is-style-npd-c1-line > .wp-block-button__link:hover { background: var(--tint); color: var(--blue-dark); }
.is-style-npd-c1-gold.npd-ico-wa > .wp-block-button__link::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.is-style-npd-c1-line.npd-ico-phone > .wp-block-button__link::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22%23000000%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-c1-hero-eyebrow { font: 700 13px/1.4 var(--c1-hero-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--blue); }
.npd-c1-hero-hero { padding: 72px 0 96px; background: var(--white); position: relative; overflow-x: clip; }
.npd-c1-hero-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--border); }
.npd-c1-hero-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.npd-c1-hero-hero__copy { display: grid; gap: 22px; }
.npd-c1-hero-hero h2 { font-size: clamp(34px, 3.7vw, 52px); line-height: 1.12; letter-spacing: -.005em; }
.npd-c1-hero-lede { font-size: 18px; color: var(--text); }
.wp-block-buttons.npd-c1-hero-cta-row { display: flex; flex-wrap: wrap; gap: 12px; }
.npd-c1-hero-hero__foot { font-size: 15px; color: var(--muted); padding-left: 16px; border-left: 2px solid var(--gold-deep); }
.npd-c1-hero-sheet { position: relative; margin: 0; isolation: isolate; padding: 0; }
.npd-c1-hero-sheet::before, .npd-c1-hero-sheet::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; right: calc(var(--c1-hero-notes-w) + var(--c1-hero-notes-gap)); border: 1px solid var(--border); }
.npd-c1-hero-sheet::before { background-color: var(--white); background-image: var(--c1-hero-noise), linear-gradient(170deg, var(--white) 0%, var(--surface) 100%); box-shadow: var(--c1-hero-shadow-paper); z-index: -1; }
.npd-c1-hero-sheet::after { background: var(--surface); transform: rotate(2.2deg) translate(12px, 10px); box-shadow: 0 10px 30px -18px rgb(34 38 62 / .3); z-index: -2; }
.npd-c1-hero-sheet__mark { position: absolute; z-index: 0; pointer-events: none; overflow: hidden; top: 0; bottom: 0; left: 0; right: calc(var(--c1-hero-notes-w) + var(--c1-hero-notes-gap)); display: grid; place-items: center; }
.npd-c1-hero-sheet__mark span { transform: rotate(-28deg); font: 700 clamp(56px, 7vw, 96px)/1 var(--c1-hero-serif); letter-spacing: .1em; text-transform: uppercase; color: rgb(41 85 171 / .06); }
.npd-c1-hero-ribbon { position: absolute; z-index: 2; top: -10px; right: calc(var(--c1-hero-notes-w) + var(--c1-hero-notes-gap) + 44px); width: 28px; height: 118px; background: linear-gradient(90deg, #E2A94F 0%, var(--gold) 45%, #F2C986 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%); box-shadow: 0 2px 4px rgb(34 38 62 / .2); }
.npd-c1-hero-ribbon::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 10px; background: var(--gold-deep); }
.npd-c1-hero-srow { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) var(--c1-hero-notes-w); column-gap: var(--c1-hero-notes-gap); align-items: start; }
.npd-c1-hero-srow__doc { padding: 0 48px 18px; }
.npd-c1-hero-srow--head .npd-c1-hero-srow__doc { padding-top: 44px; padding-bottom: 22px; margin-bottom: 20px; position: relative; }
.npd-c1-hero-srow--head .npd-c1-hero-srow__doc::after { content: ""; position: absolute; left: 48px; right: 48px; bottom: 0; height: 3px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.npd-c1-hero-sheet__kicker { font: 700 11px/1 var(--c1-hero-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.npd-c1-hero-sheet__title { font: 700 clamp(26px, 2.6vw, 34px)/1.1 var(--c1-hero-serif); color: var(--ink); margin-top: 10px; }
.npd-c1-hero-sheet__sub { font-size: 13px; color: var(--muted); margin-top: 8px; font-style: italic; }
.npd-c1-hero-clause { font: 400 16px/1.7 var(--c1-hero-sans); color: var(--ink); position: relative; padding-left: 26px; }
.npd-c1-hero-clause + .npd-c1-hero-clause { margin-top: 12px; }
.npd-c1-hero-clause__n { position: absolute; left: 0; top: 0; font-family: var(--c1-hero-serif); font-weight: 700; color: var(--blue); }
.npd-c1-hero-ph { background: var(--tint); color: var(--blue-dark); padding: 1px 5px; border-radius: 2px; font-weight: 700; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.npd-c1-hero-arabic { display: grid; gap: 9px; justify-items: end; padding: 6px 0 0 26px; }
.npd-c1-hero-arabic span { display: block; height: 6px; border-radius: 3px; background: var(--border); }
.npd-c1-hero-arabic span:nth-child(1) { width: 92%; }
.npd-c1-hero-arabic span:nth-child(2) { width: 78%; }
.npd-c1-hero-arabic span:nth-child(3) { width: 86%; }
.npd-c1-hero-arabic span:nth-child(4) { width: 54%; }
.npd-c1-hero-arabic__cap { font-size: 12px; color: var(--muted); text-align: right; margin-top: 8px; letter-spacing: .04em; }
.npd-c1-hero-srow--sign .npd-c1-hero-srow__doc { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; padding-top: 22px; padding-bottom: 44px; }
.npd-c1-hero-sign__line { border-bottom: 1px solid var(--ink); min-height: 40px; display: flex; align-items: flex-end; padding-bottom: 6px; }
.npd-c1-hero-sign__x { font: 700 18px/1 var(--c1-hero-serif); color: var(--blue); }
.npd-c1-hero-sign--date .npd-c1-hero-sign__line .npd-c1-hero-ph { font-size: 13px; }
.npd-c1-hero-sign__lab { font-size: 12px; color: var(--muted); margin-top: 6px; letter-spacing: .03em; }
.npd-c1-hero-note { position: relative; font-size: 14px; line-height: 1.45; color: var(--ink); padding: 2px 0 12px; display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 8px; }
.npd-c1-hero-note::before { content: ""; position: absolute; top: 12px; right: calc(100% + 6px); width: calc(var(--c1-hero-notes-gap) + 30px); height: 1px; background: var(--gold-deep); }
.npd-c1-hero-note::after { content: ""; position: absolute; top: 9px; right: calc(100% + var(--c1-hero-notes-gap) + 32px); width: 7px; height: 7px; border-radius: 50%; background: var(--gold-deep); }
.npd-c1-hero-srow--head .npd-c1-hero-note { margin-top: 44px; }
.npd-c1-hero-srow--sign .npd-c1-hero-note { margin-top: 30px; }
.npd-c1-hero-note__n { width: 24px; height: 24px; border: 1px solid var(--gold-deep); border-radius: 50%; display: inline-grid; place-items: center; font: 700 12px/1 var(--c1-hero-sans); color: var(--blue-dark); background: var(--white); }
.npd-c1-hero-note--empty::before, .npd-c1-hero-note--empty::after { display: none; }
@media (max-width: 1180px) {
  :root { --c1-hero-notes-w: 0px; --c1-hero-notes-gap: 0px; }
  .npd-c1-hero-srow { grid-template-columns: minmax(0, 1fr); }
  .npd-c1-hero-note { margin: -4px 48px 16px; padding: 8px 0 8px 12px; border-left: 2px solid var(--gold-deep); font-size: 13.5px; }
  .npd-c1-hero-note::before, .npd-c1-hero-note::after { display: none; }
  .npd-c1-hero-srow--head .npd-c1-hero-note, .npd-c1-hero-srow--sign .npd-c1-hero-note { margin-top: 0; }
  .npd-c1-hero-srow--sign .npd-c1-hero-note { margin-bottom: 36px; }
  .npd-c1-hero-srow--sign .npd-c1-hero-srow__doc { padding-bottom: 20px; }
  .npd-c1-hero-note--empty { display: none; }
  .npd-c1-hero-ribbon { right: 44px; }
}
@media (max-width: 960px) {
  .npd-c1-hero-hero { padding: 48px 0 72px; }
  .npd-c1-hero-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 720px) {
  :where(.npd-c1-hero-scope) { font-size: 16px; }
  .npd-c1-hero-srow__doc { padding-left: 24px; padding-right: 24px; }
  .npd-c1-hero-srow--head .npd-c1-hero-srow__doc { padding-top: 36px; }
  .npd-c1-hero-srow--head .npd-c1-hero-srow__doc::after { left: 24px; right: 24px; }
  .npd-c1-hero-note { margin-left: 24px; margin-right: 24px; }
  .npd-c1-hero-srow--sign .npd-c1-hero-srow__doc { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .npd-c1-hero-ribbon { right: 24px; width: 22px; height: 84px; }
  .npd-c1-hero-sheet::after { transform: rotate(1.6deg) translate(6px, 6px); }
  .npd-c1-hero-cta-row > .wp-block-button { flex: 1 1 auto; }
}
/* Concept 1 did not set lining numerals on headings; concept 5 does. Keep concept 1's look. */
:where(.npd-c1-hero-scope) :is(h2, h3), :where(.npd-c1-cta-scope) :is(h2, h3) { font-variant-numeric: normal; }

/* ---------- From concept 2: Dubai Courts guides (question 5 on the rail) ---------- */
:root { --c2-guides-serif: "Playfair Display", Georgia, serif; --c2-guides-sans: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif; --c2-guides-rail: 288px; --c2-guides-gutter: clamp(16px, 4.4vw, 72px); --c2-guides-radius: 2px; }
:where(.npd-c2-guides-scope) { font-family: var(--c2-guides-sans); font-size: 17px; line-height: 1.65; color: var(--text); -webkit-font-smoothing: antialiased; font-variant-numeric: lining-nums; }
:where(.npd-c2-guides-scope) img { display: block; max-width: 100%; height: auto; }
:where(.npd-c2-guides-scope) a { color: var(--blue); }
:where(.npd-c2-guides-scope) a:hover { color: var(--blue-dark); }
:where(.npd-c2-guides-scope) :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
:where(.npd-c2-guides-scope) h1, :where(.npd-c2-guides-scope) h2, :where(.npd-c2-guides-scope) h3, :where(.npd-c2-guides-scope) h4 { font-family: var(--c2-guides-serif); font-weight: 700; color: var(--ink); line-height: 1.2; margin: 0; }
:where(.npd-c2-guides-scope) p { margin: 0 0 1em; }
:where(.npd-c2-guides-scope) ul, :where(.npd-c2-guides-scope) ol { margin: 0; padding: 0; list-style: none; }
.npd-c2-guides-kicker { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin: 0 0 14px; }
.is-style-npd-c2-blue > .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 22px; font: 700 16px/1.2 var(--c2-guides-sans); letter-spacing: normal; text-decoration: none; text-align: center; word-break: normal; border: 1.5px solid transparent; border-radius: var(--c2-guides-radius); cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; box-shadow: none; }
.is-style-npd-c2-blue > .wp-block-button__link { background: var(--blue); color: var(--white); border-color: var(--blue); }
.is-style-npd-c2-blue > .wp-block-button__link:hover { background: var(--blue-dark); border-color: var(--blue-dark); color: var(--white); }
.is-style-npd-c2-blue.npd-ico-arrow > .wp-block-button__link::after { content: ""; width: 20px; height: 20px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h15M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h15M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-c2-guides-scope .npd-c2-guides-link { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-weight: 700; color: var(--blue); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.npd-c2-guides-link::after { content: ""; width: 18px; height: 18px; flex: none; background: currentColor; transition: transform .15s; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h15M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 12h15M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-c2-guides-guide:hover .npd-c2-guides-link::after { transform: translateX(3px); }
.npd-c2-guides-sec { padding: clamp(56px, 6vw, 96px) var(--c2-guides-gutter) 0; }
.npd-c2-guides-sec__rule { display: flex; align-items: center; gap: 18px; margin-bottom: 36px; }
.npd-c2-guides-sec__rule::after { content: ""; flex: 1; height: 1px; background: var(--gold-deep); }
.npd-c2-guides-sec__rule p { margin: 0; font-family: var(--c2-guides-serif); font-size: 15px; color: var(--blue-dark); width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--gold-deep); border-radius: 50%; }
.npd-c2-guides-sec__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 64px; align-items: end; margin-bottom: 40px; }
.npd-c2-guides-sec__head .npd-c2-guides-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.npd-c2-guides-sec__head h2 { font-size: clamp(30px, 3vw, 44px); }
.npd-c2-guides-sec__head p:last-child { margin: 0; color: var(--muted); }
.npd-c2-guides-guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.npd-c2-guides-guide { position: relative; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); border: 1px solid var(--border); background: var(--white); transition: border-color .15s; }
.npd-c2-guides-guide:hover { border-color: var(--blue); }
.npd-c2-guides-guide > .wp-block-image { height: 100%; }
.npd-c2-guides-guide > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; min-height: 220px; }
.npd-c2-guides-guide__body { padding: 24px 26px; display: flex; flex-direction: column; align-items: flex-start; }
.npd-c2-guides-guide__tag { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.npd-c2-guides-guide h3 { font-size: 22px; margin-bottom: 10px; }
.npd-c2-guides-guide h3 a { color: var(--ink); text-decoration: none; }
.npd-c2-guides-guide h3 a::after { content: ""; position: absolute; inset: 0; }
.npd-c2-guides-guide h3 a:focus-visible { outline: none; }
.npd-c2-guides-guide:focus-within { outline: 3px solid var(--blue); outline-offset: 3px; }
.npd-c2-guides-guide__body > p:not(.npd-c2-guides-guide__tag):not(.npd-c2-guides-link) { color: var(--muted); font-size: 15.5px; }
.npd-c2-guides-guide .npd-c2-guides-link { margin-top: auto; }
.npd-c2-guides-enotary { margin-top: 32px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--tint); }
.npd-c2-guides-enotary__photo > .wp-block-image { height: 100%; }
.npd-c2-guides-enotary__photo img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
.npd-c2-guides-enotary__text { padding: clamp(28px, 3.5vw, 52px); align-self: center; }
.npd-c2-guides-enotary__text h3 { font-size: clamp(26px, 2.4vw, 34px); margin-bottom: 16px; }
.npd-c2-guides-enotary__text p:not(.npd-c2-guides-kicker) { color: var(--text); margin-bottom: 24px; }
@media (max-width: 1280px) {
  .npd-c2-guides-guides { grid-template-columns: 1fr; }
}
@media (max-width: 1023px) {
  .npd-c2-guides-sec__head { grid-template-columns: 1fr; }
  .npd-c2-guides-enotary { grid-template-columns: 1fr; }
  .npd-c2-guides-enotary__photo img { min-height: 0; aspect-ratio: 16 / 9; }
}
@media (max-width: 640px) {
  :where(.npd-c2-guides-scope) { font-size: 16px; }
  .npd-c2-guides-guide { grid-template-columns: 1fr; }
  .npd-c2-guides-guide > .wp-block-image img { min-height: 0; aspect-ratio: 16 / 9; height: auto; }
}
/* Concept 2 sat in a content column beside its fixed 288px sidebar from 1024px up. The same
   column width is kept here so the section lays out exactly as it does in concept 2. */
@media (min-width: 1024px) { .npd-c2-guides-scope { max-width: calc(100% - var(--c2-guides-rail)); margin-inline: auto; } }
:where(.npd-c2-guides-scope) { font-variant-numeric: lining-nums; }

/* ---------- From concept 1: closing CTA ---------- */
:root { --c1-cta-serif: "Playfair Display", Georgia, "Times New Roman", serif; --c1-cta-sans: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif; --c1-cta-wrap: 1240px; --c1-cta-gutter: clamp(16px, 4vw, 40px); --c1-cta-radius: 2px; --c1-cta-shadow-paper: 0 1px 2px rgb(34 38 62 / .06), 0 18px 40px -18px rgb(34 38 62 / .28); --c1-cta-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .13 0 0 0 0 .15 0 0 0 0 .24 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --c1-cta-notes-w: 184px; --c1-cta-notes-gap: 32px; }
:where(.npd-c1-cta-scope) { color: var(--text); font: 400 17px/1.65 var(--c1-cta-sans); }
:where(.npd-c1-cta-scope) img { max-width: 100%; height: auto; display: block; }
:where(.npd-c1-cta-scope) a { color: var(--blue); text-underline-offset: 3px; }
:where(.npd-c1-cta-scope) a:hover { color: var(--blue-dark); }
:where(.npd-c1-cta-scope) :focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
:where(.npd-c1-cta-scope) h1, :where(.npd-c1-cta-scope) h2, :where(.npd-c1-cta-scope) h3 { font-family: var(--c1-cta-serif); font-weight: 700; color: var(--ink); margin: 0; line-height: 1.2; }
:where(.npd-c1-cta-scope) h2 { font-size: clamp(28px, 3.2vw, 40px); }
:where(.npd-c1-cta-scope) h3 { font-size: 21px; }
:where(.npd-c1-cta-scope) p { margin: 0; }
.npd-c1-cta-wrap { width: 100%; max-width: calc(var(--c1-cta-wrap) + var(--c1-cta-gutter) * 2); margin: 0 auto; padding: 0 var(--c1-cta-gutter); }
.npd-c1-cta-btn--block { width: 100%; }
.npd-c1-cta-folio { display: flex; align-items: center; gap: 18px; margin-bottom: 48px; }
.npd-c1-cta-folio::before, .npd-c1-cta-folio::after { content: ""; height: 1px; background: var(--gold-deep); flex: 1; }
.npd-c1-cta-folio::before { flex: 0 0 48px; }
.npd-c1-cta-folio p { font: 700 13px/1 var(--c1-cta-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--ink); display: inline-flex; align-items: center; gap: 12px; }
.npd-c1-cta-folio p::before { content: "\00A7"; font-family: var(--c1-cta-serif); font-size: 18px; color: var(--blue); letter-spacing: 0; }
.npd-c1-cta-section { padding: 88px 0 0; }
.npd-c1-cta-section--last { padding-bottom: 104px; }
.wp-block-buttons.npd-c1-cta-cta-row { display: flex; flex-wrap: wrap; gap: 12px; }
.npd-c1-cta-ribbon { position: absolute; z-index: 2; top: -10px; right: calc(var(--c1-cta-notes-w) + var(--c1-cta-notes-gap) + 44px); width: 28px; height: 118px; background: linear-gradient(90deg, #E2A94F 0%, var(--gold) 45%, #F2C986 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%); box-shadow: 0 2px 4px rgb(34 38 62 / .2); }
.npd-c1-cta-ribbon::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 10px; background: var(--gold-deep); }
.wp-block-image.npd-c1-cta-plate-fig { margin: 12px 0 0; }
.wp-block-image.npd-c1-cta-plate-fig img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--c1-cta-radius); border: 1px solid var(--border); }
.wp-block-image.npd-c1-cta-plate-fig figcaption { font-size: 14px; line-height: inherit; color: var(--muted); font-style: italic; text-align: left; margin: 10px 0 0; padding-left: 14px; border-left: 2px solid var(--gold-deep); }
.npd-c1-cta-letter { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; align-items: start; }
.npd-c1-cta-letter__from { display: grid; gap: 20px; }
.npd-c1-cta-letter__from > p { color: var(--muted); }
.npd-c1-cta-addr { font-style: normal; padding: 20px 0 20px 20px; border-left: 3px solid var(--blue); display: grid; gap: 4px; }
.npd-c1-cta-addr__name { font: 700 20px/1.3 var(--c1-cta-serif); color: var(--ink); margin-bottom: 4px; }
.npd-c1-cta-addr a { color: var(--ink); font-weight: 700; }
.npd-c1-cta-addr a:hover { color: var(--blue); }
.npd-c1-cta-form-sheet { position: relative; padding: 48px 48px 36px; background-color: var(--white); background-image: var(--c1-cta-noise); border: 1px solid var(--border); box-shadow: var(--c1-cta-shadow-paper); display: grid; gap: 22px; margin: 0; }
.npd-c1-cta-form-sheet .npd-c1-cta-ribbon { right: 40px; top: -10px; height: 96px; }
.npd-c1-cta-form-sheet__k { font: 700 11px/1 var(--c1-cta-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
.npd-c1-cta-form-sheet__t { font: 700 28px/1.1 var(--c1-cta-serif); color: var(--ink); margin-top: -12px; padding-bottom: 14px; border-bottom: 3px double var(--ink); }
.npd-c1-cta-field { display: grid; gap: 4px; }
.npd-c1-cta-field label { font: 700 12px/1.3 var(--c1-cta-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); }
.npd-c1-cta-field input, .npd-c1-cta-field select, .npd-c1-cta-field textarea { width: 100%; font: 400 17px/1.4 var(--c1-cta-sans); color: var(--ink); border: 0; border-bottom: 1.5px solid var(--plate); border-radius: 0; background: transparent; padding: 8px 2px; min-height: 44px; }
.npd-c1-cta-field textarea { resize: vertical; background-image: repeating-linear-gradient(transparent 0 31px, var(--border) 31px 32px); line-height: 32px; padding-top: 0; }
.npd-c1-cta-field input::placeholder { color: #767676; }
.npd-c1-cta-field input:focus, .npd-c1-cta-field select:focus, .npd-c1-cta-field textarea:focus { outline: none; border-bottom-color: var(--blue); box-shadow: 0 2px 0 0 var(--blue); background-color: var(--tint); }
.npd-c1-cta-field [aria-invalid="true"] { border-bottom-color: #B42318; }
.npd-c1-cta-field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.npd-c1-cta-form-sheet__small { font-size: 14px; color: var(--muted); text-align: center; }
.npd-c1-cta-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 1180px) {
  :root { --c1-cta-notes-w: 0px; --c1-cta-notes-gap: 0px; }
  .npd-c1-cta-ribbon { right: 44px; }
}
@media (max-width: 960px) {
  .npd-c1-cta-letter { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 720px) {
  :where(.npd-c1-cta-scope) { font-size: 16px; }
  .npd-c1-cta-section { padding-top: 64px; }
  .npd-c1-cta-folio { margin-bottom: 32px; }
  .npd-c1-cta-folio::before { flex-basis: 20px; }
  .npd-c1-cta-ribbon { right: 24px; width: 22px; height: 84px; }
  .npd-c1-cta-form-sheet { padding: 40px 22px 28px; }
  .npd-c1-cta-form-sheet .npd-c1-cta-ribbon { right: 22px; }
  .npd-c1-cta-field-pair { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .npd-c1-cta-cta-row > .wp-block-button { flex: 1 1 auto; }
}

/* ===== 50-inner.css ===== */
/* Inner pages. Built from the design's own tokens and components (question bands, ledger,
   routes, facts, the Dubai Courts guides panel, the FAQ list, the closing letter). Only the
   pieces the home page does not have are defined here. No text carries its own width cap:
   the column sets the measure. */

/* ---------- page heroes ---------- */
.npd-crumbs { font-size: 14px; color: var(--muted); margin-bottom: 18px; }
.npd-crumbs a { color: var(--blue-dark); text-decoration: none; font-weight: 700; }
.npd-crumbs a:hover { color: var(--blue); text-decoration: underline; }
.npd-hero-inner h1 { font-size: clamp(34px, 3.8vw, 50px); line-height: 1.12; }
.npd-ph { padding: 64px 0 72px; border-bottom: 1px solid var(--border); }
.npd-ph h1 { font-size: clamp(34px, 3.8vw, 50px); line-height: 1.12; margin-top: 14px; letter-spacing: -.01em; overflow-wrap: break-word; }
.npd-ph-lead { margin-top: 22px; font-size: 18px; color: var(--text); }
.npd-ph-plain .npd-ph-lead + .npd-prose, .npd-ph-plain > .npd-wrap > p:not(.npd-eyebrow):not(.npd-crumbs):not(.npd-ph-lead) { margin-top: 14px; }
.npd-ph-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: center; }
.npd-ph .wp-block-buttons.npd-hero-ctas { margin-top: 28px; }
.npd-ph-answer, .npd-ph-pricebox {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  border-top: 4px solid var(--gold); padding: 26px 26px 20px; box-shadow: 0 18px 40px -18px rgba(34, 38, 62, .35);
}
.npd-ph-pricebox .npd-approved { margin-top: 4px; padding: 0; background: none; border: 0; font-size: 17px; }
.npd-answer-list li { position: relative; padding: 10px 0 10px 24px; border-top: 1px solid var(--border); font-size: 15px; line-height: 1.5; }
.npd-answer-list li:first-child { border-top: 0; }
.npd-answer-list li::before { content: ""; position: absolute; left: 0; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); }
.npd-ph-answer > p:not(.npd-sa-label) { margin-top: 10px; font-size: 15px; color: var(--muted); }
.wp-block-image.npd-ph-media { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; }
.wp-block-image.npd-ph-media img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- reading type for draft copy ---------- */
.npd-prose > * + *, .npd-prose .npd-part > * + *, .npd-prose .npd-guide-part > * + * { margin-top: 16px; }
.npd-prose h2 { font-size: clamp(26px, 2.6vw, 34px); }
.npd-prose h3 { font-family: var(--font-body); font-size: 19px; margin-top: 26px; }
.npd-prose p a, .npd-prose li a, .npd-prose td a { color: var(--blue); text-underline-offset: 3px; }
.npd-prose .npd-list li, .npd-prose .npd-olist li { position: relative; padding-left: 26px; }
.npd-prose .npd-list li + li, .npd-prose .npd-olist li + li { margin-top: 8px; }
.npd-prose .npd-list li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.npd-prose .npd-olist { counter-reset: item; }
.npd-prose .npd-olist li { counter-increment: item; padding-left: 34px; }
.npd-prose .npd-olist li::before { content: counter(item); position: absolute; left: 0; top: 2px; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--gold-deep); display: grid; place-items: center; font: 700 12px/1 var(--font-body); color: var(--blue-dark); }
.npd-prose .npd-quote { margin: 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--gold); font-style: italic; }
.npd-src { font-size: 14px; color: var(--muted); }

/* tables in the copy: the design's ledger look */
.npd-prose .wp-block-table { margin: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow-x: auto; }
.npd-prose .wp-block-table thead, .npd-prose .wp-block-table tfoot { border: 0; }
.npd-prose .wp-block-table :is(th, td) { border: 0; }
.npd-prose .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.npd-prose .wp-block-table thead th { text-align: left; background: var(--tint); color: var(--ink); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; padding: 14px 16px; vertical-align: bottom; }
.npd-prose .wp-block-table tbody :is(th, td) { text-align: left; vertical-align: top; padding: 14px 16px; border-top: 1px solid var(--border); }
.npd-prose .wp-block-table tbody th { color: var(--ink); font-weight: 700; }
.npd-prose .wp-block-table figcaption { font-size: 14px; color: var(--muted); margin: 0; padding: 10px 16px; }
.npd-prose .npd-approved-note { margin-top: 18px; border-radius: 0 0 var(--radius) var(--radius); }
.npd-help-box { background: var(--surface); border-left: 3px solid var(--gold); border-radius: 0 var(--radius) var(--radius) 0; padding: 22px 24px; }

/* ---------- hub: glance band and numbered bands ---------- */
.npd-glance { padding: 72px 0; border-bottom: 1px solid var(--border); background: var(--surface); }
.npd-glance-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: start; }
.npd-glance-head .npd-eyebrow + * { margin-top: 12px; }
.npd-glance-head p:not(.npd-eyebrow) { font-size: 18px; }
.npd-facts-glance { margin-top: 0; }
.npd-facts-glance .npd-fact:first-child { border-top: 0; padding-top: 0; }
.npd-facts-glance .npd-fact:first-child::before { top: 9px; }
.npd-facts-glance .npd-fact p { margin: 0; font-size: 16px; }
.npd-glance-body > p { margin-top: 14px; font-size: 15px; color: var(--muted); }
.npd-q-inner .npd-q-num { font-size: clamp(64px, 6vw, 88px); }
.npd-q-inner h2 { font-size: clamp(28px, 2.8vw, 38px); }
.npd-q-inner .npd-q-answer { font-size: 17px; }
/* inner bands carry tables: the columns may shrink below their content, the table scrolls */
.npd-q-inner .npd-q-grid, .npd-faq-group .npd-faq-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.npd-c1-cta-letter__from.npd-prose { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.npd-about-rows .npd-route { grid-template-columns: 44px minmax(0, 1fr); }

/* ---------- service: contents column, reading column, mid panel, strip ---------- */
.npd-doc-band { padding: 72px 0 96px; }
.npd-doc-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 64px; align-items: start; }
.npd-toc { position: sticky; top: calc(var(--head-h) + 24px); max-height: calc(100vh - var(--head-h) - 48px); overflow-y: auto; }
.npd-toc-title { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.npd-toc-list { border-left: 2px solid var(--border); }
.npd-toc-list li a { display: block; padding: 7px 0 7px 14px; font-size: 14px; line-height: 1.35; font-weight: 700; color: var(--ink); text-decoration: none; }
.npd-toc-list li a:hover { color: var(--blue); }
.npd-read { min-width: 0; }
.npd-part { padding-top: 36px; margin-top: 36px; border-top: 1px solid var(--border); }
.npd-read > .npd-part:first-child, .npd-read > p:first-child + .npd-part { border-top: 0; }
.npd-part.npd-help-box { border-top: 0; padding: 26px 26px 24px; }
.npd-part-faq .npd-faq-list { margin-top: 10px; }
.npd-part-faq .npd-faq-list details p { padding-bottom: 18px; }
.npd-mid { margin-top: 40px; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); background: var(--tint); border-radius: var(--radius); overflow: hidden; }
.npd-mid-photo .wp-block-image { height: 100%; }
.npd-mid-photo img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.npd-mid-copy { padding: 28px; align-self: center; }
.npd-mid-text { font-weight: 700; color: var(--ink); font-size: 18px; }
.npd-mid .wp-block-buttons.npd-mid-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.npd-cta-strip { padding: 72px 0; background: var(--surface); border-top: 1px solid var(--border); }
.npd-strip-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 48px; align-items: center; }
.npd-strip-copy h2 { font-size: clamp(28px, 3vw, 40px); margin-top: 8px; }
.npd-strip-copy p:not(.npd-eyebrow) { margin-top: 12px; }
.npd-cta-strip .wp-block-buttons.npd-strip-ctas { display: flex; flex-direction: column; gap: 12px; }

/* ---------- guide: concept 2's look ---------- */
.npd-guide-top { padding-bottom: 8px; }
.npd-guide-head { grid-template-columns: 1fr; margin-bottom: 32px; }
.npd-guide-head .npd-crumbs { margin: 0; }
.npd-guide-head h1 { font-size: clamp(34px, 3.6vw, 50px); line-height: 1.12; }
.npd-c2-guides-sec__head .npd-guide-lead { margin: 0; color: var(--text); font-size: 18px; }
.npd-guide-glance-sec { padding-top: 0; }
.npd-guide-glance { margin-top: 0; }
.npd-guide-glance .npd-answer-list li { font-size: 16px; }
.npd-guide-body { padding-top: 0; padding-bottom: 88px; }
.npd-guide-read { margin-top: 48px; }
.npd-pillbar { padding: 18px 20px; background: var(--surface); border: 1px solid var(--border); }
.npd-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.npd-pills a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-pill); color: var(--blue-dark); font-weight: 700; font-size: 14px; text-decoration: none; }
.npd-pills a:hover { border-color: var(--blue); color: var(--blue); }
.npd-guide-part { padding-top: 40px; }
.npd-guide-part .npd-c2-guides-sec__rule { margin-bottom: 18px; }
.npd-guide-part h2 { font-size: clamp(26px, 2.6vw, 34px); }
.npd-guide-part.npd-help-box { margin-top: 40px; padding: 26px; }
.npd-c2-end { padding-bottom: 88px; }
.npd-c2-cta { margin-top: 0; }
.npd-c2-cta .npd-c2-cta-title { font-size: clamp(26px, 2.4vw, 34px); margin-bottom: 16px; }

/* ---------- about and contact ---------- */
.npd-about { padding: 72px 0 32px; }
.npd-about-intro { margin-bottom: 28px; font-size: 18px; }
.npd-about-rows .npd-route-body h2 { font-size: clamp(24px, 2.4vw, 30px); }
.npd-about-rows .npd-route { padding: 28px 0; }
.wp-block-image.npd-letter-photo img { aspect-ratio: 3 / 2; }
.npd-contact-table { margin-top: 4px; }
.npd-prose .npd-contact-table thead th { background: none; text-transform: none; letter-spacing: normal; font-size: 15px; color: var(--ink); vertical-align: top; padding: 14px 16px; }
.npd-ph-plain .npd-wrap > * + * { margin-top: 0; }

/* ---------- FAQ page ---------- */
.npd-faq-group .npd-q-num { font-size: clamp(56px, 5vw, 76px); }
.npd-faq-group .npd-faq-head h2 { margin-top: 12px; }

/* ---------- sources ---------- */
.npd-sources-band { padding: 28px 0 40px; background: var(--surface); border-top: 1px solid var(--border); }
.npd-sources summary { cursor: pointer; font-weight: 700; color: var(--ink); font-size: 15px; padding: 8px 0; }
.npd-src-list { margin-top: 8px; }
.npd-src-list li { font-size: 14px; color: var(--muted); padding: 6px 0; border-top: 1px solid var(--border); overflow-wrap: anywhere; }
.npd-src-list a { color: var(--blue); }

/* ---------- templates: archive, search, single post, 404 ---------- */
.npd-label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.npd-sec { padding: 72px 0; }
.npd-sec-white { background: var(--white); }
.npd-sec-surface { background: var(--surface); }
.npd-post-hero h1, .npd-ph .wp-block-post-title, .npd-ph .wp-block-query-title { font-size: clamp(34px, 3.8vw, 50px); line-height: 1.12; margin-top: 12px; }
.npd-read.npd-wrap { max-width: 820px; }
.npd-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.npd-post-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; height: 100%; }
.npd-post-card .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 9; }
.npd-post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.npd-post-body { padding: 20px 22px 24px; }
.npd-post-body h2 { font-size: 21px; margin-top: 6px; }
.npd-post-body h2 a { color: var(--ink); text-decoration: none; }
.npd-post-body .wp-block-post-excerpt { margin-top: 8px; font-size: 15px; }
.npd-post-body .wp-block-post-excerpt__more-link { font-weight: 700; color: var(--blue-dark); }
.npd-pager { margin-top: 36px; display: flex; gap: 12px; justify-content: center; font-weight: 700; }

/* ---------- inner pages: tablet and phone ---------- */
@media (max-width: 980px) {
  .npd-ph-grid, .npd-glance-grid, .npd-doc-grid, .npd-strip-grid, .npd-q-inner .npd-q-grid, .npd-faq-group .npd-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .npd-ph { padding: 40px 0 56px; }
  .npd-toc { position: static; max-height: none; }
  .npd-glance { padding: 56px 0; }
  .npd-doc-band { padding: 48px 0 72px; }
  .npd-cta-strip .wp-block-buttons.npd-strip-ctas { flex-direction: row; flex-wrap: wrap; }
  .npd-posts { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .npd-ph h1, .npd-hero-inner h1 { font-size: 32px; }
  .npd-ph-lead { font-size: 17px; }
  .npd-ph-answer, .npd-ph-pricebox { padding: 20px 18px 16px; }
  .npd-mid { grid-template-columns: 1fr; }
  .npd-mid-photo img { min-height: 0; aspect-ratio: 16 / 9; height: auto; }
  .npd-mid-copy { padding: 22px 18px; }
  .npd-mid-ctas > .wp-block-button, .npd-strip-ctas > .wp-block-button { flex: 1 1 100%; }
  .npd-prose .wp-block-table table { font-size: 14px; }
  .npd-prose .wp-block-table :is(thead th, tbody th, tbody td) { padding: 10px 12px; }
  .npd-help-box, .npd-part.npd-help-box { padding: 20px 18px; }
  .npd-q-inner .npd-q-num { font-size: 60px; }
  .npd-crumbs, .npd-q-of { overflow-wrap: anywhere; }
  .npd-q-inner h2 { font-size: 28px; }
  .npd-posts { grid-template-columns: 1fr; }
}
.npd-main :is(h1, h2, h3), .npd-c1-cta-addr__name { overflow-wrap: break-word; }
.npd-guide-top .npd-c2-guides-sec__rule p { font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* ---------- 359px and narrower (phones in a 320px browser with a scrollbar, and 300px) ----------
   375px and wider are unchanged. The header row is tightened so the Menu button fits, and
   tables in the copy stack: each row becomes a card and each cell carries its column name
   (data-label, set by npd.js from the table head). Without JavaScript the table keeps its
   horizontal scroll inside the figure. */
@media (max-width: 359px) {
  .npd-head-row { gap: 6px; }
  .npd-q-grid, .npd-faq-grid, .npd-hero-grid, .npd-c2-guides-enotary, .npd-c2-guides-guides, .npd-c2-guides-sec__head, .npd-c2-guides-guide { grid-template-columns: minmax(0, 1fr); }
  .npd-ledger table, .npd-ledger tbody { display: block; width: auto; }
  .npd-main :is(p, li, h1, h2, h3, summary, strong, a, td, th) { overflow-wrap: anywhere; }
  .npd-hero h1, .npd-ph h1, .npd-hero-inner h1, .npd-guide-head h1 { font-size: 29px; }
  .npd-q h2, .npd-q-inner h2, .npd-how-head h2, .npd-faq-head h2, .npd-strip-copy h2, .npd-prose h2, .npd-guide-part h2, .npd-c2-guides-sec__head h2 { font-size: 26px; }
  .npd-c1-hero-hero h2, .npd-c1-cta-scope h2 { font-size: 28px; }
  .npd-q-num, .npd-q-inner .npd-q-num { font-size: 60px; }
  .npd-logo-plate.wp-block-image { padding: 5px 8px; }
  .npd-logo-plate.wp-block-image img { height: 32px; }
  .npd-head-quick { gap: 6px; }
  .npd-quick a { width: 40px; height: 40px; }
  .npd-quick a::before { width: 17px; height: 17px; }
  .npd-site-head .npd-site-nav .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open,
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { min-height: 40px; padding: 0 11px; }
  .npd-site-head .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: calc((var(--head-h) + 40px) / -2); }
  .npd-site-head:has(.npd-q-bar.is-on) .npd-site-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: calc((var(--head-h) + 40px) / -2 - 47px); }

  .npd-prose .wp-block-table.npd-stack { overflow: visible; border: 0; border-radius: 0; }
  .npd-prose .npd-stack table, .npd-prose .npd-stack tbody, .npd-prose .npd-stack tr, .npd-prose .npd-stack tbody :is(th, td) { display: block; width: auto; }
  .npd-prose .npd-stack thead { display: none; }
  .npd-prose .npd-stack tr { border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; }
  .npd-prose .npd-stack tr + tr { margin-top: 10px; }
  .npd-prose .npd-stack tbody :is(th, td) { padding: 0; border: 0; overflow-wrap: anywhere; }
  .npd-prose .npd-stack tbody :is(th, td) + :is(th, td) { margin-top: 8px; }
  .npd-prose .npd-stack tbody [data-label]::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
  .npd-prose .npd-stack figcaption { padding: 8px 0 0; }
}

/* ===== 60-sections.css ===== */
/* Typed section library (tools/sections.py). Each section type has its own design, built from
   the locked design's tokens and components: question band numbers, the path steps, the
   lettered routes, the facts dots, the ledger, the c2 tint panel. Surfaces are set by the
   builder (npd-band--white, --surface, --tint) so neighbours never share one. No text carries
   its own width cap: the column sets the measure. */

.npd-band { padding: 88px 0; border-bottom: 1px solid var(--border); }
.npd-band--white { background: var(--white); }
.npd-band--surface { background: var(--surface); }
.npd-band--tint { background: var(--tint); }
.npd-band h2 { font-size: clamp(28px, 2.8vw, 38px); line-height: 1.18; }
.npd-band h3 { font-family: var(--font-body); font-size: 18px; line-height: 1.35; }
.npd-band p a, .npd-band li a, .npd-band td a { color: var(--blue); text-underline-offset: 3px; }
.npd-band .npd-list li, .npd-band .npd-olist li { position: relative; padding-left: 26px; }
.npd-band .npd-list li + li, .npd-band .npd-olist li + li { margin-top: 8px; }
.npd-band .npd-list li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); }
.npd-sec-head > * + * { margin-top: 14px; }
.npd-sec-head .npd-eyebrow + h2 { margin-top: 10px; }
.npd-sec-head p:not(.npd-eyebrow) { font-size: 17px; }

/* ---------- answer: facts tiles ---------- */
.npd-answer-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.npd-answer-head > * + * { margin-top: 14px; }
.npd-answer-head p:not(.npd-eyebrow) { font-size: 18px; color: var(--text); }
.npd-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; counter-reset: tile; }
.npd-tile {
  position: relative; counter-increment: tile; background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 20px 20px 18px 58px; font-size: 16px; line-height: 1.5;
}
.npd-tile::before {
  content: counter(tile); position: absolute; left: 18px; top: 18px; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; background: var(--ink); color: var(--gold); font: 700 14px/1 var(--font-head);
}
.npd-tiles--5 .npd-tile:last-child, .npd-tiles--3 .npd-tile:last-child { grid-column: 1 / -1; }
.npd-answer-foot { grid-column: 2; font-size: 15px; color: var(--muted); }
.npd-answer-foot > * + * { margin-top: 10px; }

/* ---------- steps: path cards ---------- */
.npd-steps-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.npd-steps-head { position: sticky; top: calc(var(--head-h) + 32px); }
.npd-steps-head > * + * { margin-top: 14px; }
.npd-steps-head .wp-block-image { margin-top: 26px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; }
.npd-steps-head .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.npd-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.npd-steps--3 { grid-template-columns: minmax(0, 1fr); }
.npd-step {
  position: relative; counter-increment: step; background: var(--white); border: 1px solid var(--border);
  border-top: 3px solid var(--gold); border-radius: var(--radius); padding: 20px 22px 22px;
}
.npd-step::before { content: "Step " counter(step); display: block; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.npd-step h3 + p { margin-top: 6px; }
.npd-step p { font-size: 15px; }
.npd-steps-foot { grid-column: 2; font-size: 15px; color: var(--muted); }
.npd-steps-foot > * + * { margin-top: 10px; }

/* ---------- timeline: a second sequence ---------- */
.npd-tl-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.npd-tl { position: relative; }
.npd-tl::before { content: ""; position: absolute; left: 21px; top: 8px; bottom: 8px; width: 2px; background: var(--border); }
.npd-tl-item { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding-bottom: 22px; }
.npd-tl-num {
  position: relative; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: var(--white); border: 2px solid var(--gold); font: 700 16px/1 var(--font-head); color: var(--blue-dark);
}
.npd-tl .npd-step { border: 0; background: none; padding: 8px 0 0; border-radius: 0; }
.npd-tl .npd-step::before { display: none; }
.npd-tl-grid > p, .npd-tl-grid > .wp-block-list { grid-column: 2; }

/* ---------- checklist: a document sheet ---------- */
.npd-check-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.npd-docsheet {
  position: relative; background: var(--white); border: 1px solid var(--border); border-radius: 4px;
  padding: 30px 32px 28px; box-shadow: 0 18px 40px -22px rgba(34, 38, 62, .35);
}
.npd-docsheet::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--blue-dark), var(--blue)); border-radius: 4px 4px 0 0; }
.npd-docsheet-title { font: 700 13px/1.3 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-bottom: 14px; border-bottom: 1px dashed var(--border); }
.npd-check { margin-top: 6px; }
.npd-check li { position: relative; padding: 13px 0 13px 38px; border-bottom: 1px dashed var(--border); font-size: 16px; line-height: 1.5; }
.npd-check li:last-child { border-bottom: 0; }
.npd-check li::before { content: ""; position: absolute; left: 0; top: 13px; width: 22px; height: 22px; border: 2px solid var(--blue-dark); border-radius: 4px; }
.npd-check li::after { content: ""; position: absolute; left: 7px; top: 16px; width: 7px; height: 12px; border: solid var(--gold-deep); border-width: 0 3px 3px 0; transform: rotate(45deg); }
.npd-docsheet > p:not(.npd-docsheet-title) { margin-top: 14px; font-size: 15px; color: var(--muted); }

/* ---------- warnings ---------- */
.npd-warn { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }
.npd-warn-head { background: var(--ink); color: var(--white); padding: 36px 32px; }
.npd-warn-head h2 { color: var(--white); margin-top: 10px; }
.npd-warn-head p:not(.npd-warn-kicker) { margin-top: 12px; color: rgba(255, 255, 255, .85); font-size: 16px; }
.npd-warn-head a { color: var(--gold); }
.npd-warn-kicker { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.npd-warn-body { background: var(--white); padding: 28px 32px; }
.npd-warn-list { counter-reset: warn; }
.npd-warn-list li { position: relative; counter-increment: warn; padding: 14px 0 14px 46px; border-top: 1px solid var(--border); font-size: 16px; line-height: 1.5; }
.npd-warn-list li:first-child { border-top: 0; }
.npd-warn-list li::before {
  content: "!"; position: absolute; left: 0; top: 13px; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; background: var(--gold); color: var(--ink); font: 700 16px/1 var(--font-head);
}
.npd-warn-body > p { margin-top: 12px; font-size: 15px; color: var(--muted); }

/* ---------- tables: ledger (fees), comparison, definitions ---------- */
.npd-fees-grid, .npd-compare-grid, .npd-deflist-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.npd-fees-grid .npd-sec-head, .npd-compare-grid .npd-sec-head, .npd-deflist-grid .npd-sec-head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 56px; align-items: end; }
.npd-fees-grid .npd-sec-head > *, .npd-compare-grid .npd-sec-head > *, .npd-deflist-grid .npd-sec-head > * { grid-column: 1; }
.npd-fees-grid .npd-sec-head > p:not(.npd-eyebrow), .npd-compare-grid .npd-sec-head > p:not(.npd-eyebrow), .npd-deflist-grid .npd-sec-head > p:not(.npd-eyebrow) { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; align-self: end; }
.npd-fees-grid .npd-sec-head > p:not(.npd-eyebrow) + p:not(.npd-eyebrow) { grid-row: auto; margin-top: 12px; }
.npd-ledger.npd-prose > p:not(.npd-approved) { padding: 12px 18px 0; font-size: 15px; color: var(--muted); }
.npd-ledger.npd-prose > p:last-child:not(.npd-approved) { padding-bottom: 16px; }
.npd-ledger.npd-prose .wp-block-table { border: 0; border-radius: 0; }
.npd-ledger .npd-ledger-table thead th { background: var(--ink); color: var(--white); }
.npd-compare, .npd-deflist { min-width: 0; }
.npd-compare .wp-block-table thead th { background: var(--blue-dark); color: var(--white); }
.npd-compare .wp-block-table tbody tr:nth-child(even) :is(th, td) { background: var(--surface); }
.npd-compare .wp-block-table tbody th { width: 22%; }
.npd-deflist .wp-block-table thead th { background: none; border-bottom: 2px solid var(--gold); color: var(--muted); }
.npd-deflist .wp-block-table tbody th { width: 36%; font-family: var(--font-head); font-size: 17px; color: var(--blue-dark); }
.npd-deflist .wp-block-table { border: 0; border-top: 1px solid var(--border); border-radius: 0; }
.npd-compare > p, .npd-deflist > p { font-size: 15px; color: var(--muted); }

/* ---------- minis: labelled cards ---------- */
.npd-t-minis .npd-sec-head { margin-bottom: 32px; }
.npd-minis { display: grid; gap: 18px; }
.npd-minis--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.npd-minis--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.npd-mini { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px 24px 22px; border-left: 4px solid var(--blue); }
.npd-band--white .npd-mini { background: var(--surface); }
.npd-mini h3 { color: var(--ink); }
.npd-mini h3 + p { margin-top: 8px; font-size: 16px; }
.npd-minis-foot { margin-top: 22px; font-size: 16px; }
.npd-minis-foot > * + * { margin-top: 10px; }

/* ---------- routes: lettered options ---------- */
.npd-routes-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.npd-routes-col > * + * { margin-top: 16px; }
.npd-routes-col > p { font-size: 15px; color: var(--muted); }

/* ---------- links: link cards ---------- */
.npd-t-links .npd-sec-head { margin-bottom: 28px; }
.npd-linkcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.npd-linkcard {
  position: relative; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 18px 56px 18px 20px; font-size: 16px; line-height: 1.5; transition: border-color .15s, box-shadow .15s;
}
.npd-band--white .npd-linkcard { background: var(--surface); }
.npd-linkcard::after { content: ""; position: absolute; right: 20px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: var(--blue); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-linkcard:hover { border-color: var(--blue); box-shadow: 0 10px 26px -16px rgba(28, 61, 117, .45); }
.npd-linkcard a { font-weight: 700; color: var(--blue-dark); }
.npd-linkcard--out::after { transform: rotate(-45deg); }
.npd-t-links .npd-wrap > p { margin-top: 18px; font-size: 15px; color: var(--muted); }

/* ---------- ticks ---------- */
.npd-ticks-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.npd-ticks-box { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 22px 26px; }
.npd-band--white .npd-ticks-box { background: var(--surface); }
.npd-ticks { display: grid; gap: 0 28px; }
.npd-ticks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.npd-ticks li { position: relative; padding: 12px 0 12px 30px; border-top: 1px solid var(--border); font-size: 16px; line-height: 1.5; }
.npd-ticks li::before { content: ""; position: absolute; left: 0; top: 17px; width: 12px; height: 12px; background: var(--gold); border-radius: 2px; }
.npd-ticks-box > p { margin-top: 14px; font-size: 15px; color: var(--muted); }

/* ---------- split: prose beside a photo ---------- */
.npd-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: center; }
.npd-split .npd-split-media { order: 2; }
.npd-split--flip { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.npd-split.npd-split--flip .npd-split-media { order: 0; }
.npd-split-copy > * + * { margin-top: 16px; }
.npd-split-copy h2 + p { margin-top: 18px; }
.npd-split-copy p { font-size: 17px; }
.npd-split-media .wp-block-image { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 18px 18px 0 var(--tint); }
.npd-band--tint .npd-split-media .wp-block-image, .npd-band--surface .npd-split-media .wp-block-image { box-shadow: 18px 18px 0 var(--white); }
.npd-split-media .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- band: the numbered question band on inner pages ---------- */
.npd-t-band.npd-q { padding: 88px 0; }

/* ---------- statement and aside ---------- */
.npd-stmt { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.npd-stmt-head h2 { margin-top: 10px; }
.npd-stmt-text { font-family: var(--font-head); font-size: clamp(21px, 1.9vw, 25px); line-height: 1.45; color: var(--ink); padding-left: 28px; border-left: 3px solid var(--gold); }
.npd-stmt-text a { color: var(--blue); }
.npd-stmt-body > * + * { margin-top: 16px; }
.npd-aside-wrap { display: block; }
.npd-aside { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 16px 56px; align-items: start; padding: 32px 0 4px; border-top: 3px double var(--gold-deep); }
.npd-aside > h2 { grid-column: 1; grid-row: 1 / span 4; font-size: clamp(24px, 2.3vw, 30px); }
.npd-aside > :not(h2) { grid-column: 2; font-size: 17px; }

/* ---------- price card ---------- */
.npd-price-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.npd-pricecard { background: var(--white); border: 1px solid var(--border); border-top: 4px solid var(--gold); border-radius: var(--radius); padding: 26px 26px 24px; box-shadow: 0 18px 40px -18px rgba(34, 38, 62, .3); }
.npd-pricecard > * + * { margin-top: 12px; }
.npd-pricecard .npd-approved { margin-top: 18px; }
.npd-pricecard .wp-block-buttons.npd-price-ctas { display: flex; margin-top: 20px; }

/* ---------- quote ---------- */
.npd-quote-wrap > * + * { margin-top: 18px; }
.npd-quote-wrap .npd-quote { margin: 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--gold); font-family: var(--font-head); font-size: 22px; font-style: italic; }

/* ---------- help: the tint panel ---------- */
.npd-t-help { padding: 0 0 88px; }
.npd-t-help .npd-c2-guides-enotary { margin-top: 88px; background: var(--white); border: 1px solid var(--border); }
.npd-t-help .npd-helppanel.npd-c2-guides-scope { max-width: none; }
.npd-help-title { font-size: clamp(26px, 2.4vw, 34px); margin-bottom: 16px; }
.npd-helppanel .wp-block-buttons.npd-help-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.npd-helppanel--nophoto { grid-template-columns: minmax(0, 1fr); }

/* ---------- page intro and page map ---------- */
.npd-intro { padding: 56px 0; border-bottom: 1px solid var(--border); background: var(--surface); }
.npd-intro-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.npd-intro-text { font-size: 18px; color: var(--text); }
.npd-intro-copy > * + * { margin-top: 14px; }
.npd-intro .npd-pillbar { background: var(--white); border-radius: var(--radius); }
.npd-intro--guide { background: var(--white); }
.npd-intro--guide .npd-pillbar { background: var(--surface); }

/* ---------- sub-service hero ---------- */
.npd-sub-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: center; }
.npd-sub-media .wp-block-image { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 1 / 1; }
.npd-sub-media .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.npd-sub-parent { display: inline-block; margin-top: 4px; }
.npd-sub-parent a { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px; border-radius: var(--radius-pill); background: var(--tint); color: var(--blue-dark); font-weight: 700; font-size: 14px; text-decoration: none; }
.npd-sub-parent a::before { content: ""; width: 16px; height: 16px; background: currentColor; transform: rotate(180deg); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-sub-parent a:hover { background: var(--blue); color: var(--white); }
.npd-ph-sub h1 { margin-top: 18px; }
.npd-sub-copy .npd-ph-lead { margin-top: 18px; }

/* ---------- location hero ---------- */
.npd-ph-loc { position: relative; padding: 0 0 72px; }
.npd-loc-media .wp-block-image { margin: 0; height: clamp(220px, 32vw, 420px); }
.npd-loc-media .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.npd-loc-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.npd-loc-copy { margin-top: 48px; }
.npd-loc-copy > p:not(.npd-eyebrow):not(.npd-ph-lead) { margin-top: 14px; font-size: 17px; }
.npd-visit {
  position: relative; margin-top: -96px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: 0 24px 50px -24px rgba(34, 38, 62, .45); padding: 26px 26px 18px;
}
.npd-visit::before { content: ""; position: absolute; left: 26px; right: 26px; top: 0; height: 4px; background: var(--gold); }
.npd-visit-title { font: 700 13px/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin-bottom: 6px; }
.npd-visit-list li { position: relative; padding: 12px 0 12px 30px; border-top: 1px dashed var(--border); font-size: 15px; line-height: 1.5; }
.npd-visit-list li:first-child { border-top: 0; }
.npd-visit-list li::before { content: ""; position: absolute; left: 0; top: 15px; width: 16px; height: 16px; background: var(--blue); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.npd-visit > p:not(.npd-visit-title) { font-size: 14px; color: var(--muted); padding-top: 8px; }

/* ---------- guides index hero ---------- */
.npd-ph-guides { padding-bottom: 40px; }
.npd-guides-band { padding-top: 48px; }
.npd-ph-faq .npd-pillbar { margin-top: 28px; }

/* ---------- tablet ---------- */
@media (max-width: 980px) {
  .npd-band, .npd-t-band.npd-q { padding: 64px 0; }
  .npd-answer-grid, .npd-steps-grid, .npd-tl-grid, .npd-check-grid, .npd-routes-grid, .npd-ticks-grid, .npd-split, .npd-split--flip,
  .npd-stmt, .npd-price-grid, .npd-intro-grid, .npd-sub-grid, .npd-loc-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .npd-fees-grid .npd-sec-head, .npd-compare-grid .npd-sec-head, .npd-deflist-grid .npd-sec-head { grid-template-columns: minmax(0, 1fr); }
  .npd-fees-grid .npd-sec-head > p:not(.npd-eyebrow), .npd-compare-grid .npd-sec-head > p:not(.npd-eyebrow), .npd-deflist-grid .npd-sec-head > p:not(.npd-eyebrow) { grid-column: 1; grid-row: auto; margin-top: 12px; }
  .npd-answer-foot, .npd-steps-foot, .npd-tl-grid > p, .npd-tl-grid > .wp-block-list { grid-column: 1; }
  .npd-steps-head { position: static; }
  .npd-steps-head .wp-block-image { aspect-ratio: 16 / 9; }
  .npd-split .npd-split-media, .npd-split.npd-split--flip .npd-split-media { order: 0; }
  .npd-split-media .wp-block-image { aspect-ratio: 16 / 10; box-shadow: none; }
  .npd-band--tint .npd-split-media .wp-block-image, .npd-band--surface .npd-split-media .wp-block-image { box-shadow: none; }
  .npd-warn { grid-template-columns: minmax(0, 1fr); }
  .npd-minis--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .npd-aside { grid-template-columns: minmax(0, 1fr); }
  .npd-aside > h2, .npd-aside > :not(h2) { grid-column: 1; grid-row: auto; }
  .npd-t-help { padding-bottom: 64px; }
  .npd-t-help .npd-c2-guides-enotary { margin-top: 64px; }
  .npd-intro { padding: 44px 0; }
  .npd-sub-media .wp-block-image { aspect-ratio: 16 / 9; }
  .npd-visit { margin-top: 0; }
  .npd-loc-copy { margin-top: 36px; }
}

/* ---------- phone ---------- */
@media (max-width: 640px) {
  .npd-band, .npd-t-band.npd-q { padding: 52px 0; }
  .npd-band h2 { font-size: 28px; }
  .npd-tiles, .npd-steps, .npd-minis--2, .npd-minis--3, .npd-linkcards, .npd-ticks--2 { grid-template-columns: minmax(0, 1fr); }
  .npd-tiles--5 .npd-tile:last-child, .npd-tiles--3 .npd-tile:last-child { grid-column: auto; }
  .npd-warn-head, .npd-warn-body { padding: 24px 20px; }
  .npd-docsheet { padding: 24px 18px 20px; }
  .npd-ticks-box { padding: 16px 18px; }
  .npd-stmt-text { padding-left: 18px; font-size: 21px; }
  .npd-pricecard { padding: 20px 18px; }
  .npd-t-help { padding-bottom: 52px; }
  .npd-t-help .npd-c2-guides-enotary { margin-top: 52px; }
  .npd-compare .wp-block-table tbody th, .npd-deflist .wp-block-table tbody th { width: auto; }
  .npd-visit { padding: 22px 18px 14px; }
  .npd-visit::before { left: 18px; right: 18px; }
}
@media (max-width: 359px) {
  .npd-tile { padding: 18px 16px 16px 50px; }
  .npd-tile::before { left: 12px; }
  .npd-linkcard { padding-right: 46px; }
  .npd-stmt-text { font-size: 19px; }
}

/* ===== 70-tree.css ===== */
/* Pieces fed by the site tree (plugin npd-tools, data/site-tree.json): the header mega menu,
   breadcrumbs, the cluster lists, "more in this cluster", guide cards, the guides hub and the
   blog post template. */

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- mega menu (npd/mega-menu keeps core Navigation's class names) ---------- */
.npd-site-head .npd-mega .npd-mega-item { position: static; display: flex; align-items: center; flex-wrap: nowrap; }
.npd-mega-toggle {
  display: inline-grid; place-items: center; width: 22px; height: 30px; margin-left: 2px; padding: 0;
  background: none; border: 0; cursor: pointer; color: var(--ink);
}
.npd-mega-toggle::before { content: ""; width: 10px; height: 10px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
.npd-mega-item.is-open .npd-mega-toggle::before { transform: translateY(2px) rotate(225deg); }
.npd-mega-toggle:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 4px; }
.npd-mega-panel { display: none; }
.npd-mega-kicker { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.npd-mega-title { margin-top: 8px; font: 700 22px/1.25 var(--font-head); color: var(--ink); }
.npd-mega-links { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.npd-mega-all { font-weight: 700; font-size: 15px; color: var(--blue-dark); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.npd-mega-list { columns: 2; column-gap: 28px; }
.npd-mega-l2 { break-inside: avoid; }
.npd-mega-l2 > a { display: block; padding: 9px 0; font-weight: 700; font-size: 15px; line-height: 1.35; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--border); }
.npd-mega-l2 > a:hover, .npd-mega-l3 a:hover { color: var(--blue); }
.npd-mega .npd-mega-l3 { margin: 4px 0 8px; padding-left: 14px; border-left: 2px solid var(--gold); }
.npd-mega-l3 a { display: block; padding: 5px 0; font-size: 14px; color: var(--text); text-decoration: none; }
.npd-mega a[aria-current="page"] { color: var(--blue); }

@media (min-width: 981px) {
  .npd-site-head .npd-mega .wp-block-navigation-item__content { white-space: nowrap; flex: none; }
  .npd-site-head .npd-mega .npd-mega-toggle { width: 18px; margin-left: 3px; }
  .npd-mega-panel {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 55;
    background: var(--white); border-top: 1px solid var(--border); border-bottom: 3px solid var(--gold);
    box-shadow: 0 24px 40px -24px rgba(34, 38, 62, .4);
  }
  .npd-mega-item:hover > .npd-mega-panel, .npd-mega-item:focus-within > .npd-mega-panel, .npd-mega-item.is-open > .npd-mega-panel { display: block; }
  .npd-mega-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px; padding-top: 32px; padding-bottom: 36px; }
  .npd-mega-item:hover > .npd-mega-toggle::before { transform: translateY(2px) rotate(225deg); }
}
@media (min-width: 981px) and (max-width: 1100px) {
  .npd-site-head .npd-mega .wp-block-navigation__container { gap: 14px; }
  .npd-site-head .npd-mega .npd-mega-toggle { margin-left: 1px; }
}
@media (min-width: 981px) and (max-width: 1040px) {
  .npd-site-head .npd-mega .wp-block-navigation__container { gap: 10px; }
  .npd-site-head .npd-mega.wp-block-navigation { gap: 18px; }
}
@media (max-width: 980px) {
  .npd-site-head .npd-mega .is-menu-open .npd-mega-item { display: flex; flex-wrap: wrap; }
  .npd-site-head .npd-mega .is-menu-open .npd-mega-item > .wp-block-navigation-item__content { flex: 1; }
  .npd-mega-toggle { width: 44px; height: 44px; margin-left: auto; }
  .npd-mega-item.is-open > .npd-mega-panel { display: block; flex-basis: 100%; }
  .npd-mega-grid { padding: 0 0 14px; }
  .npd-mega-intro { display: none; }
  .npd-mega-list { columns: 1; padding-left: 14px; border-left: 2px solid var(--gold); }
  .npd-mega-l2 > a { padding: 11px 0; }
  .npd-site-head .is-menu-open .wp-block-navigation__responsive-container-content { max-height: calc(100vh - var(--head-h) - 20px); overflow-y: auto; }
}

/* ---------- breadcrumbs ---------- */
nav.npd-crumbs { margin-bottom: 18px; }
.npd-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 14px; color: var(--muted); }
.npd-crumbs li { display: inline-flex; align-items: center; }
.npd-crumbs li + li::before { content: "/"; margin: 0 8px; color: var(--border); font-weight: 700; }
.npd-crumbs li[aria-current] { color: var(--ink); }
.npd-guide-head nav.npd-crumbs { margin: 0; }

/* ---------- cluster lists ---------- */
.npd-cluster { padding: 80px 0; background: var(--white); border-bottom: 1px solid var(--border); }
.npd-cluster--hub { background: var(--white); }
.npd-cluster--location, .npd-cluster--fees { background: var(--surface); }
.npd-cluster__head { margin-bottom: 30px; }
.npd-cluster__title { margin-top: 10px; font-size: clamp(28px, 2.8vw, 38px); }
.npd-cgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.npd-cgrid--subs, .npd-cgrid--parent { grid-template-columns: minmax(0, 1fr); }
.npd-ccard {
  position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 22px 22px 20px; transition: border-color .15s, box-shadow .15s;
}
.npd-cluster--location .npd-ccard, .npd-cluster--fees .npd-ccard { background: var(--white); }
.npd-ccard:hover { border-color: var(--blue); box-shadow: 0 10px 26px -16px rgba(28, 61, 117, .45); }
.npd-ccard__kind { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.npd-ccard__title { margin-top: 6px; font-size: 21px; line-height: 1.25; }
.npd-ccard .npd-ccard__title a { color: var(--ink); text-decoration: none; }
.npd-ccard__title a::after { content: ""; position: absolute; inset: 0; }
.npd-ccard__sum { margin-top: 8px; font-size: 15px; color: var(--text); }
.npd-ccard__subs { position: relative; z-index: 1; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border); }
.npd-ccard__subs a { display: inline-flex; align-items: center; gap: 8px; padding: 4px 0; font-weight: 700; font-size: 14px; color: var(--blue-dark); }
.npd-ccard__subs a::before { content: ""; width: 12px; height: 2px; background: var(--gold); }
.npd-ccard--parent, .npd-ccard--sub { flex-direction: column; border-left: 4px solid var(--gold); }
.npd-csibs { margin-top: 26px; }
.npd-csibs__label { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.npd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.npd-chips a, .npd-chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 16px; border-radius: var(--radius-pill);
  background: var(--white); border: 1px solid var(--border); color: var(--blue-dark); font-weight: 700; font-size: 14px; text-decoration: none;
}
.npd-chips a:hover { border-color: var(--blue); color: var(--blue); }
.npd-chip.is-on { background: var(--ink); border-color: var(--ink); color: var(--white); }
.npd-chip__n { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--tint); color: var(--blue-dark); font-size: 12px; }
.npd-chip.is-on .npd-chip__n { background: var(--gold); color: var(--ink); }
.npd-cback { margin-top: 24px; }
.npd-cback a { font-weight: 700; color: var(--blue-dark); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }

/* ---------- more in this cluster ---------- */
.npd-more { padding: 48px 0; background: var(--ink); color: var(--white); }
.npd-more__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 16px 48px; align-items: start; }
.npd-more__title { font: 700 22px/1.3 var(--font-head); color: var(--white); }
.npd-more__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 28px; }
.npd-more__list li { padding: 8px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 15px; }
.npd-more__list a { color: var(--white); text-decoration: none; }
.npd-more__list a:hover { text-decoration: underline; }
.npd-more__list .npd-more__hub a { color: var(--gold); font-weight: 700; }
.npd-more__list .npd-more__sub { padding-left: 14px; }
.npd-more__list .is-current span { color: var(--gold); font-weight: 700; }
.npd-more__all { grid-column: 2; }
.npd-more__all a { font-weight: 700; color: var(--gold); }

/* ---------- guide cards ---------- */
.npd-gcards { padding: 88px 0; background: var(--surface); border-bottom: 1px solid var(--border); }
.npd-gcards__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px 32px; margin-bottom: 30px; }
.npd-gcards__title { margin-top: 10px; font-size: clamp(28px, 2.8vw, 38px); }
.npd-gcards__all a, .npd-ghub__all, .npd-ghub__hub { font-weight: 700; color: var(--blue-dark); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.npd-gcards__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.npd-gcard { position: relative; display: flex; flex-direction: column; height: 100%; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.npd-gcard:hover { border-color: var(--blue); box-shadow: 0 12px 28px -18px rgba(28, 61, 117, .5); }
.npd-gcard:focus-within { outline: 3px solid var(--blue); outline-offset: 3px; }
.npd-gcard__media { aspect-ratio: 16 / 10; background: var(--tint); overflow: hidden; }
.npd-gcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.npd-gcard__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.npd-gcard__tag { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.npd-gcard__title { margin-top: 8px; font-size: 21px; line-height: 1.25; }
.npd-gcard .npd-gcard__title a { color: var(--ink); text-decoration: none; }
.npd-gcard__title a::after { content: ""; position: absolute; inset: 0; }
.npd-gcard__title a:focus-visible { outline: none; }
.npd-gcard__sum { margin-top: 10px; font-size: 15px; color: var(--text); flex: 1; }
.npd-gcard__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-weight: 700; font-size: 15px; color: var(--blue-dark); }
.npd-gcard__more::after { content: ""; width: 18px; height: 18px; background: var(--blue); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22%3E%3Cpath d=%22M5 12h13M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s; }
.npd-gcard:hover .npd-gcard__more::after { transform: translateX(4px); }
.npd-gcards--related { background: var(--white); }

/* ---------- guides hub ---------- */
.npd-ghub__chips { margin-bottom: 40px; padding: 18px 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.npd-ghub__group + .npd-ghub__group { margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--border); }
.npd-ghub__group.is-hidden { display: none; }
.npd-ghub__group:not(.is-open) .npd-is-extra { display: none; }
.npd-ghub__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 28px; margin-bottom: 24px; }
.npd-ghub__title { font-size: clamp(26px, 2.6vw, 34px); }
.npd-ghub__links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.npd-ghub__group.is-open .npd-ghub__all { display: none; }

/* ---------- blog post template ---------- */
.npd-post-hero .npd-wrap > * + * { margin-top: 12px; }
.npd-post-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 18px; }
.npd-post-meta__item { font-size: 14px; font-weight: 700; color: var(--muted); }
.npd-post-meta__item + .npd-post-meta__item::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 20px; border-radius: 50%; background: var(--gold); vertical-align: middle; }
.npd-post-band { padding: 64px 0 88px; }
.npd-post-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 64px; align-items: start; }
.npd-post-side { position: sticky; top: calc(var(--head-h) + 24px); }
.npd-post-article { min-width: 0; }
.npd-post-article .wp-block-post-featured-image { margin: 0 0 32px; border-radius: var(--radius); overflow: hidden; aspect-ratio: 16 / 9; }
.npd-post-article .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.npd-post-article .npd-prose > h2 { margin-top: 40px; }

@media (max-width: 980px) {
  .npd-cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .npd-more__grid { grid-template-columns: minmax(0, 1fr); }
  .npd-more__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .npd-more__all { grid-column: 1; }
  .npd-gcards { padding: 64px 0; }
  .npd-gcards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .npd-cluster { padding: 64px 0; }
  .npd-post-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .npd-post-side { position: static; }
}
@media (max-width: 640px) {
  .npd-cgrid, .npd-gcards__grid, .npd-more__list { grid-template-columns: minmax(0, 1fr); }
  .npd-cluster, .npd-gcards { padding: 52px 0; }
  .npd-ghub__chips { padding: 14px; }
  .npd-post-band { padding: 40px 0 64px; }
}
