/* dnc-2026. Generated by tools/build_css.py from assets/css/src. Edit the sources, not this file. */
/* ===== 00-base.css ===== */
/* Tokens and base, from concept 3 style.css lines 1 to 50. Values unchanged. */
:root {
  --gold: #E3A138;
  --gold-light: #EAAD41;
  --navy: #1A2A45;
  --navy-mid: #29395B;
  --heading: #1A3A5D;
  --text: #111111;
  --muted: #495057;
  --surface: #F4F7F9;
  --border: #E9ECEF;
  --tint: #FBF3E4;
  --white: #FFFFFF;
  --wa: #25D366;
  --font: "League Spartan", system-ui, sans-serif;
  --wrap: 1240px;
  --gutter: 20px;
  --radius: 4px;
  --shadow-card: 0 18px 40px -18px rgb(26 42 69 / 0.35);
  --shadow-soft: 0 10px 30px -16px rgb(26 42 69 / 0.25);
  --ease: 180ms ease;
  --hd-h: 76px;
}
@media (min-width: 768px) { :root { --gutter: 32px; } }
@media (min-width: 1200px) { :root { --gutter: 40px; --hd-h: 88px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font); font-size: 17px; line-height: 1.6; color: var(--text); background: var(--white); overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--font); color: var(--heading); margin: 0; line-height: 1.12; letter-spacing: -0.01em; font-weight: 700; }
h1 { font-size: 2em; } h2 { font-size: 1.5em; } h3 { font-size: 1.17em; } h4 { font-size: 1em; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
figure { margin: 0; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- WordPress defaults that the concept does not have ---------- */
.wp-site-blocks, .wp-site-blocks > *, .dnc-main, .wp-block-post-content { margin: 0; padding: 0; }
.wp-block-post-content > *, .dnc-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); }
mark.has-inline-color { background: none; padding: 0; }
.wp-block-template-part:has(> .dnc-topbar), .wp-block-template-part:has(> .dnc-site-footer) { display: contents; }
.skip-link.screen-reader-text:focus { background: var(--gold); color: var(--text); font: 700 16px var(--font); }

.dnc-wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Icons: [class*=dnc-i-] carries the icon in --i, components draw it ---------- */
.dnc-i-phone { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z%22/%3E%3C/svg%3E"); }
.dnc-i-mail { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%224%22 width=%2220%22 height=%2216%22 rx=%221%22/%3E%3Cpath d=%22m22 6-10 7L2 6%22/%3E%3C/svg%3E"); }
.dnc-i-pin { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E"); }
.dnc-i-route { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%226%22 cy=%2219%22 r=%223%22/%3E%3Ccircle cx=%2218%22 cy=%225%22 r=%223%22/%3E%3Cpath d=%22M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15%22/%3E%3C/svg%3E"); }
.dnc-i-receipt { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 2v20l3-2 3 2 2-2 2 2 3-2 3 2V2l-3 2-3-2-2 2-2-2-3 2z%22/%3E%3Cpath d=%22M8 9h8M8 13h8%22/%3E%3C/svg%3E"); }
.dnc-i-layers { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m12 2 10 5-10 5L2 7z%22/%3E%3Cpath d=%22m2 17 10 5 10-5M2 12l10 5 10-5%22/%3E%3C/svg%3E"); }
.dnc-i-file { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z%22/%3E%3Cpath d=%22M14 2v6h6M9 13h6M9 17h6%22/%3E%3C/svg%3E"); }
.dnc-i-check { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E"); }
.dnc-i-camera { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z%22/%3E%3Ccircle cx=%2212%22 cy=%2213%22 r=%224%22/%3E%3C/svg%3E"); }
.dnc-i-clock { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%22/%3E%3C/svg%3E"); }
.dnc-i-info { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 16v-4M12 8h.01%22/%3E%3C/svg%3E"); }
.dnc-i-alert { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%22/%3E%3Cpath d=%22M12 9v4M12 17h.01%22/%3E%3C/svg%3E"); }
.dnc-i-globe { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M2 12h20M12 2a15 15 0 0 1 4 10 15 15 0 0 1-4 10 15 15 0 0 1-4-10 15 15 0 0 1 4-10z%22/%3E%3C/svg%3E"); }
.dnc-i-award { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%226%22/%3E%3Cpath d=%22M15.5 13 17 22l-5-3-5 3 1.5-9%22/%3E%3C/svg%3E"); }
.dnc-i-landmark { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 22h18M6 18v-7M10 18v-7M14 18v-7M18 18v-7M12 2l9 5H3z%22/%3E%3C/svg%3E"); }

/* ---------- Buttons: the concept's .btn on core/button ---------- */
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  font: 600 16px/1.2 var(--font); letter-spacing: 0.01em;
  text-decoration: none; border: 2px solid transparent; border-radius: var(--radius);
  cursor: pointer; transition: background-color var(--ease), color var(--ease), border-color var(--ease), transform var(--ease), box-shadow var(--ease);
  white-space: nowrap; word-break: normal; box-shadow: none; text-align: center;
}
.is-style-dnc-gold .wp-block-button__link { background: var(--gold); color: var(--text); border-color: var(--gold); }
.is-style-dnc-gold .wp-block-button__link:hover { background: var(--gold-light); border-color: var(--gold-light); color: var(--text); transform: translateY(-1px); box-shadow: 0 10px 22px -12px rgb(227 161 56 / 0.9); }
.is-style-dnc-ghost-light .wp-block-button__link { color: var(--white); border-color: rgb(255 255 255 / 0.85); background: transparent; }
.is-style-dnc-ghost-light .wp-block-button__link:hover { background: var(--white); color: var(--navy); }
.is-style-dnc-ghost-dark .wp-block-button__link { color: var(--navy); border-color: var(--navy); background: transparent; }
.is-style-dnc-ghost-dark .wp-block-button__link:hover { background: var(--navy); color: var(--white); }
.is-style-dnc-navy .wp-block-button__link { background: var(--navy); color: var(--white); border-color: var(--navy); }
.is-style-dnc-navy .wp-block-button__link:hover { background: var(--navy-mid); border-color: var(--navy-mid); color: var(--white); }
.dnc-btn-lg .wp-block-button__link { min-height: 56px; padding: 14px 28px; font-size: 17px; }
.dnc-btn-sm .wp-block-button__link { min-height: 42px; padding: 8px 16px; font-size: 15px; }
.dnc-ico-wa .wp-block-button__link::before { content: ""; width: 20px; height: 20px; flex: none; background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 32 32%22%3E%3Ccircle fill=%22%2325D366%22 cx=%2216%22 cy=%2216%22 r=%2216%22/%3E%3Cpath fill=%22%23FFFFFF%22 d=%22M16.1 7.2a8.8 8.8 0 0 0-7.6 13.2l-1.2 4.3 4.4-1.2a8.8 8.8 0 1 0 4.4-16.3zm0 16.1a7.3 7.3 0 0 1-3.7-1l-.3-.2-2.6.7.7-2.5-.2-.3a7.3 7.3 0 1 1 6.1 3.3zm4-5.5c-.2-.1-1.3-.6-1.5-.7-.2-.1-.4-.1-.5.1l-.7.9c-.1.2-.3.2-.5.1a6 6 0 0 1-3-2.6c-.2-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.7-1.6c-.2-.4-.4-.4-.5-.4h-.4a.8.8 0 0 0-.6.3 2.5 2.5 0 0 0-.8 1.9 4.4 4.4 0 0 0 .9 2.3 10 10 0 0 0 3.8 3.4c1.4.6 2 .7 2.7.6a2.3 2.3 0 0 0 1.5-1.1 1.9 1.9 0 0 0 .1-1.1c0-.1-.2-.2-.5-.3z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-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=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 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=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-ico-arrow .wp-block-button__link::after { 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=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------- Arrow link: the concept's a.link-arrow, as p.dnc-go > a ---------- */
.dnc-go { display: flex; }
.dnc-go a {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 15px; text-decoration: none; color: var(--heading);
  border-bottom: 2px solid transparent; padding-bottom: 2px; transition: border-color var(--ease), gap var(--ease);
}
.dnc-go a:hover { border-bottom-color: currentColor; gap: 12px; }
.dnc-go a::after { content: ""; width: 16px; height: 16px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------- Eyebrow and section heads ---------- */
.dnc-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 13px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--heading);
  margin-bottom: 16px;
}
.dnc-eyebrow::before { content: ""; width: 28px; height: 3px; background: var(--gold); flex: none; }
.dnc-on-dark .dnc-eyebrow { color: var(--white); }

.dnc-sec { padding: 72px 0; }
@media (min-width: 1024px) { .dnc-sec { padding: 104px 0; } }
.dnc-sec-white { background: var(--white); }
.dnc-sec-tint { background: var(--tint); }
.dnc-sec-surface { background: var(--surface); }
.dnc-sec-navy { background: var(--navy); color: var(--white); }
.dnc-sec-navy h2, .dnc-sec-navy h3 { color: var(--white); }

.dnc-sec-head { display: grid; gap: 18px; margin-bottom: 44px; }
.dnc-sec-head h2 { font-size: clamp(32px, 4.2vw, 50px); font-weight: 800; }
.dnc-sec-head .dnc-lead { font-size: 18px; color: var(--muted); }
.dnc-sec-navy .dnc-sec-head .dnc-lead { color: rgb(255 255 255 / 0.82); }
@media (min-width: 1024px) {
  .dnc-sec-head { grid-template-columns: repeat(12, 1fr); column-gap: 32px; align-items: end; margin-bottom: 56px; }
  .dnc-sec-head > .dnc-sec-title { grid-column: 1 / span 7; }
  .dnc-sec-head > .dnc-lead { grid-column: 8 / span 5; padding-bottom: 8px; }
}
.dnc-label { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.dnc-tag { position: absolute; top: 28px; left: 28px; background: var(--gold); color: var(--text); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; padding: 7px 12px; border-radius: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* ===== 20-header.css ===== */
/* Top bar and header, from concept 3 style.css lines 111 to 178, on core blocks.
   The menu is the theme's dnc/mega-menu block (site tree): inline from 1100px, the concept's
   white panel under the header below 1100px. */

/* ---------- Top bar ---------- */
.dnc-topbar { background: var(--navy); color: rgb(255 255 255 / 0.88); font-size: 14px; }
.dnc-topbar .dnc-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; }
.dnc-topbar a { text-decoration: none; }
.dnc-topbar a:hover { color: var(--gold); }
.dnc-tb-item { display: inline-flex; align-items: center; gap: 8px; }
.dnc-tb-item::before { content: ""; width: 15px; height: 15px; flex: none; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-tb-right { display: flex; gap: 28px; }
.dnc-tb-email { display: none; }
@media (min-width: 640px) { .dnc-tb-email { display: inline-flex; } }

/* ---------- Header ---------- */
.dnc-site-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: 1px solid var(--border); box-shadow: 0 6px 20px -16px rgb(26 42 69 / 0.4); }
.dnc-site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--gold); }
.admin-bar .dnc-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dnc-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .dnc-site-header { top: 0; } }
.dnc-hd { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.dnc-brand { flex: none; line-height: 0; }
.dnc-brand img { width: 190px; height: auto; }
@media (min-width: 1200px) { .dnc-brand img { width: 214px; } .dnc-hd { min-height: 88px; } }
.dnc-hd .wp-block-buttons.dnc-hd-ctas { display: none; }

/* ---------- Mega menu: dnc/mega-menu, built from the site tree ----------
   1100px and up: Services opens a panel under the header, one column per hub with its services
   and their sub-services. Below 1100px: the concept's white panel under the header, with an
   accordion for Services, each hub and its services. */
.dnc-mm { font: 600 17px var(--font); color: var(--heading); }
.dnc-mm a { text-decoration: none; color: inherit; }
.dnc-mm ul { list-style: none; margin: 0; padding: 0; }
.dnc-mm-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 8px 14px; background: var(--navy); color: var(--white);
  border: 0; border-radius: var(--radius); font: 600 15px var(--font); cursor: pointer;
}
.dnc-mm-bars { width: 18px; height: 14px; flex: none; background: linear-gradient(currentColor 0 0) 0 0 / 100% 2px no-repeat, linear-gradient(currentColor 0 0) 0 6px / 100% 2px no-repeat, linear-gradient(currentColor 0 0) 0 12px / 100% 2px no-repeat; }
.dnc-mm-open .dnc-mm-bars { background: linear-gradient(45deg, transparent calc(50% - 1px), currentColor calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)), linear-gradient(-45deg, transparent calc(50% - 1px), currentColor calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)); }
.dnc-mm-caret { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--heading); cursor: pointer; }
.dnc-mm-caret::before { content: ""; width: 16px; height: 16px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m6 9 6 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m6 9 6 6 6-6%22/%3E%3C/svg%3E") center / contain no-repeat; transition: transform var(--ease); }
.dnc-mm-caret[aria-expanded="true"]::before { transform: rotate(180deg); }

@media (max-width: 1099px) {
  .dnc-mm { flex: none; }
  .dnc-mm-panel {
    display: none; position: absolute; top: 100%; left: 0; right: 0; z-index: 60;
    background: var(--white); border-top: 1px solid var(--border); box-shadow: var(--shadow-card);
    max-height: calc(100vh - 120px); overflow-y: auto; padding: 8px var(--gutter) 20px;
  }
  .dnc-mm-open .dnc-mm-panel { display: block; }
  .dnc-mm-top > li { border-bottom: 1px solid var(--border); }
  .dnc-mm-item { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; }
  .dnc-mm-top-a { grid-column: 1; display: flex; align-items: center; padding: 14px 0; font: 600 17px var(--font); color: var(--heading); }
  .dnc-mm-item > .dnc-mm-caret { grid-column: 2; grid-row: 1; }
  .dnc-mm-mega { grid-column: 1 / -1; display: none; }
  .dnc-mm-has.dnc-open > .dnc-mm-mega { display: block; }
  .dnc-mm-mega .dnc-wrap { padding: 0; }
  .dnc-mm-grid { border-left: 3px solid var(--gold); padding: 0 0 6px 14px; }
  .dnc-mm-hub + .dnc-mm-hub { border-top: 1px solid var(--border); }
  .dnc-mm-hubhead { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; }
  .dnc-mm-a1 { display: block; padding: 10px 0; font-weight: 600; font-size: 16px; color: var(--heading); }
  .dnc-mm .dnc-mm-l2 { display: none; padding: 0 0 10px 12px; }
  .dnc-mm-hub.dnc-open > .dnc-mm-l2 { display: block; }
  .dnc-mm-a2 { display: block; padding: 8px 0; font-weight: 500; font-size: 15px; color: var(--text); }
  .dnc-mm .dnc-mm-l3 { margin: 0 0 6px 2px; padding-left: 14px; border-left: 2px solid var(--border); }
  .dnc-mm-a3 { display: block; padding: 6px 0; font-weight: 500; font-size: 14px; color: var(--muted); }
  .dnc-mm-all .dnc-mm-a2, .dnc-mm-foot-a { font-weight: 700; color: var(--heading); }
  .dnc-mm-foot { padding: 6px 0 14px; }
  .dnc-mm-foot-a { display: block; padding: 8px 0; font-size: 15px; }
  .dnc-mm-ctas { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 18px; }
  .dnc-mm-btn { flex: 1 1 140px; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border: 2px solid var(--navy); border-radius: var(--radius); font: 600 16px var(--font); }
  .dnc-mm .dnc-mm-wa { background: var(--gold); border-color: var(--gold); color: var(--text); }
  .dnc-mm .dnc-mm-call { color: var(--navy); }
}

@media (min-width: 1100px) {
  .dnc-mm { align-self: stretch; display: flex; }
  .dnc-mm-toggle, .dnc-mm-ctas, .dnc-mm-hubhead .dnc-mm-caret { display: none; }
  .dnc-mm-panel, .dnc-mm-top { display: flex; align-items: stretch; }
  .dnc-mm-top { gap: 4px; }
  .dnc-mm-item { display: flex; align-items: center; }
  .dnc-mm-top-a { padding: 10px 12px; font-size: 16px; white-space: nowrap; color: var(--heading); }
  .dnc-mm-has > .dnc-mm-top-a { padding-right: 0; }
  .dnc-mm-item > .dnc-mm-caret { width: auto; height: auto; padding: 10px 12px 10px 6px; }
  .dnc-mm-top-a:hover, .dnc-mm-has:hover > .dnc-mm-top-a, .dnc-mm-has:hover > .dnc-mm-caret, .dnc-mm-has.dnc-open > .dnc-mm-top-a { color: var(--gold); }
  .dnc-mm-mega {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 60;
    background: var(--white); border-top: 3px solid var(--gold); box-shadow: var(--shadow-card);
    padding: 30px 0 22px; max-height: calc(100vh - 110px); overflow-y: auto;
    visibility: hidden; opacity: 0; transform: translateY(6px); transition: opacity var(--ease), transform var(--ease), visibility var(--ease);
  }
  .dnc-mm-has:hover > .dnc-mm-mega, .dnc-mm-has:focus-within > .dnc-mm-mega, .dnc-mm-has.dnc-open > .dnc-mm-mega { visibility: visible; opacity: 1; transform: none; }
  .dnc-mm-has.dnc-shut > .dnc-mm-mega { visibility: hidden; opacity: 0; }
  .dnc-mm-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 32px; }
  .dnc-mm-a1 { display: inline-block; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 2px solid var(--gold); font-weight: 700; font-size: 16px; color: var(--heading); }
  .dnc-mm-a1:hover { color: var(--gold); }
  .dnc-mm-a2 { display: block; padding: 5px 0; font-weight: 500; font-size: 15px; line-height: 1.35; color: var(--text); }
  .dnc-mm .dnc-mm-l3 { margin: 2px 0 4px; padding-left: 12px; border-left: 2px solid var(--border); }
  .dnc-mm-a3 { display: block; padding: 4px 0; font-weight: 500; font-size: 14px; line-height: 1.35; color: var(--muted); }
  .dnc-mm-a2:hover, .dnc-mm-a3:hover { color: var(--heading); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
  .dnc-mm-all .dnc-mm-a2 { font-weight: 700; color: var(--heading); }
  .dnc-mm-foot { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--border); }
  .dnc-mm-foot-a { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--heading); }
  .dnc-mm-foot-a::after { content: ""; width: 16px; height: 16px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
  .dnc-hd .wp-block-buttons.dnc-hd-ctas { display: flex; gap: 10px; flex: none; }
}

/* Below 375px (narrower than the concept was drawn for): the 190px logo, the gap and the menu
   button no longer fit inside the gutters, so the logo and the gap shrink. 375px and up unchanged. */
@media (max-width: 374px) {
  .dnc-hd { gap: 12px; }
  .dnc-brand { flex: 1 1 auto; min-width: 0; }
  .dnc-brand img { width: min(190px, 100%); }
  .dnc-mm { flex: none; }
}

/* ===== 30-home.css ===== */
/* Home sections, from concept 3 style.css lines 180 to 535. Values unchanged; selectors point at
   the block markup. Where the concept had a span or an svg and the block has a paragraph or a
   pseudo-element, the rule says so. */

/* ---------- Hero ---------- */
.dnc-hero { position: relative; color: var(--white); isolation: isolate; text-align: center; }
.dnc-hero-bg { position: absolute; inset: 0; z-index: -2; }
.dnc-hero-bg figure { position: absolute; inset: 0; }
.dnc-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.dnc-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(26 42 69 / 0.84); }
.dnc-hero-inner { padding-block: 64px 150px; display: grid; justify-items: center; }
@media (min-width: 768px) { .dnc-hero-inner { padding-block: 96px 190px; } }
@media (min-width: 1200px) { .dnc-hero-inner { padding-block: 120px 210px; } }
.dnc-hero .dnc-eyebrow { color: var(--white); }
.dnc-hero .dnc-eyebrow::after { content: ""; width: 28px; height: 3px; background: var(--gold); flex: none; }
.dnc-hero h1 { color: var(--white); font-weight: 800; font-size: clamp(36px, 6.2vw, 72px); line-height: 1.04; letter-spacing: -0.02em; text-wrap: balance; }
.dnc-hero h1 mark { color: var(--gold); }
.dnc-hero-copy { width: 100%; }
@media (min-width: 1024px) { .dnc-hero-copy { width: 80%; } }
.dnc-hero-intro { margin-top: 24px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.6; color: rgb(255 255 255 / 0.9); }
.dnc-hero-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 34px; }
/* concept p.hero-strip with three spans: a list with three items */
.dnc-hero-strip { margin-top: 36px; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 28px; padding: 14px 24px; border-top: 1px solid rgb(255 255 255 / 0.22); font-size: 15px; color: rgb(255 255 255 / 0.85); }
.dnc-hero-strip li { display: inline-flex; align-items: center; gap: 8px; }
.dnc-hero-strip li::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-hero-strip li:nth-child(1) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z%22/%3E%3Ccircle cx=%2212%22 cy=%2213%22 r=%224%22/%3E%3C/svg%3E"); }
.dnc-hero-strip li:nth-child(2) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%226%22 cy=%2219%22 r=%223%22/%3E%3Ccircle cx=%2218%22 cy=%225%22 r=%223%22/%3E%3Cpath d=%22M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15%22/%3E%3C/svg%3E"); }
.dnc-hero-strip li:nth-child(3) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 2v20l3-2 3 2 2-2 2 2 3-2 3 2V2l-3 2-3-2-2 2-2-2-3 2z%22/%3E%3Cpath d=%22M8 9h8M8 13h8%22/%3E%3C/svg%3E"); }

/* ---------- Overlap cards ---------- */
.dnc-overlap { position: relative; z-index: 2; margin-top: -110px; }
@media (min-width: 768px) { .dnc-overlap { margin-top: -130px; } }
.dnc-ov-grid { display: grid; gap: 20px; }
@media (min-width: 900px) { .dnc-ov-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.dnc-ov-card {
  position: relative; display: flex; flex-direction: column; gap: 12px;
  background: var(--white); border: 1px solid var(--border); border-top: 5px solid var(--gold);
  border-radius: var(--radius); padding: 30px 28px 28px; box-shadow: var(--shadow-card);
  transition: transform var(--ease), box-shadow var(--ease);
}
.dnc-ov-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -20px rgb(26 42 69 / 0.45); }
.dnc-ov-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
/* concept span.ov-mark with an svg: a pseudo-element with the icon in gold on navy */
.dnc-ov-top::before { content: ""; width: 48px; height: 48px; flex: none; background: var(--navy) center / 22px 22px no-repeat; border-radius: var(--radius); }
.dnc-mark-landmark::before { background-image: 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%23E3A138%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 22h18M6 18v-7M10 18v-7M14 18v-7M18 18v-7M12 2l9 5H3z%22/%3E%3C/svg%3E"); }
.dnc-mark-globe::before { background-image: 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%23E3A138%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M2 12h20M12 2a15 15 0 0 1 4 10 15 15 0 0 1-4 10 15 15 0 0 1-4-10 15 15 0 0 1 4-10z%22/%3E%3C/svg%3E"); }
.dnc-mark-award::before { background-image: 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%23E3A138%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%226%22/%3E%3Cpath d=%22M15.5 13 17 22l-5-3-5 3 1.5-9%22/%3E%3C/svg%3E"); }
.dnc-ov-card h3 { font-size: 25px; font-weight: 700; }
.dnc-ov-card p { color: var(--muted); font-size: 16px; }
/* concept span.ov-num: a paragraph, so it must outrank ".dnc-ov-card p" */
.dnc-ov-card .dnc-ov-num { font-size: 44px; font-weight: 800; line-height: 1; color: var(--border); }
.dnc-ov-card .dnc-go { margin-top: auto; padding-top: 6px; align-self: flex-start; }
.dnc-ov-card .dnc-card-link a::after, .dnc-tile .dnc-card-link a::after, .dnc-fam .dnc-card-link a::after { content: ""; position: absolute; inset: 0; background: none; -webkit-mask: none; mask: none; width: auto; height: auto; }
/* the arrow is drawn by a::after in .dnc-go; a card link keeps its arrow as a background */
.dnc-card-link a { position: static; }
.dnc-card-link a::before { content: ""; order: 2; width: 16px; height: 16px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }

/* ---------- Services bento ---------- */
.dnc-services { padding-top: 88px; }
@media (min-width: 1024px) { .dnc-services { padding-top: 110px; } }
.dnc-bento { display: grid; gap: 20px; }
@media (min-width: 768px) {
  .dnc-bento { grid-template-columns: repeat(2, 1fr); }
  .dnc-b-photo { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .dnc-bento { grid-template-columns: repeat(12, 1fr); grid-template-rows: minmax(250px, auto) minmax(250px, auto) auto; gap: 24px; }
  .dnc-b-photo { grid-column: 1 / span 7; grid-row: span 2; }
  .dnc-b-navy { grid-column: 8 / span 5; }
  .dnc-b-tint { grid-column: 8 / span 5; }
  .dnc-b-wide { grid-column: 1 / -1; }
}
.dnc-tile {
  position: relative; display: flex; flex-direction: column; gap: 12px;
  padding: 32px 30px; border-radius: var(--radius); overflow: hidden;
  transition: transform var(--ease), box-shadow var(--ease);
}
.dnc-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.dnc-tile h3 { font-size: 27px; font-weight: 700; }
.dnc-tile p { font-size: 16px; }
.dnc-tile .dnc-go { margin-top: auto; align-self: flex-start; }

.dnc-b-photo { min-height: 440px; justify-content: flex-end; color: var(--white); padding: 88px 24px 32px; }
@media (min-width: 768px) { .dnc-b-photo { padding: 96px 40px 40px; } }
.dnc-b-photo > figure { position: absolute; inset: 0; z-index: -2; }
.dnc-b-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 600ms ease; }
.dnc-b-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(26 42 69 / 0.15) 0%, rgb(26 42 69 / 0.55) 45%, rgb(26 42 69 / 0.94) 100%); }
.dnc-b-photo { isolation: isolate; }
.dnc-b-photo:hover img { transform: scale(1.04); }
.dnc-b-photo h3 { color: var(--white); font-size: clamp(30px, 3vw, 40px); }
.dnc-b-photo p { color: rgb(255 255 255 / 0.88); font-size: 17px; }
.dnc-b-photo .dnc-go { margin-top: 8px; }
.dnc-b-photo .dnc-go a { color: var(--gold); }
/* concept span.tag: a paragraph, so it must outrank ".dnc-tile p" and ".dnc-b-photo p" */
.dnc-b-photo .dnc-tag, .dnc-fam-img .dnc-tag { color: var(--text); font-size: 12px; }

.dnc-b-navy { background: var(--navy); color: var(--white); }
.dnc-b-navy h3 { color: var(--white); }
.dnc-b-navy p { color: rgb(255 255 255 / 0.82); }
.dnc-b-navy .dnc-label { color: var(--gold); }
.dnc-b-navy .dnc-go a { color: var(--gold); }

.dnc-b-tint { background: var(--tint); border: 2px solid var(--gold); }
.dnc-b-tint p { color: var(--muted); }

.dnc-b-wide { background: var(--white); border: 2px solid var(--navy); }
.dnc-b-wide p { color: var(--muted); }
@media (min-width: 1024px) {
  .dnc-b-wide { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 24px; align-items: center; padding: 34px 40px; }
  .dnc-b-wide .dnc-bw-a { grid-column: 1 / span 5; display: grid; gap: 10px; }
  .dnc-b-wide .dnc-bw-b { grid-column: 6 / span 5; }
  .dnc-b-wide .dnc-bw-c { grid-column: 11 / span 2; justify-self: end; }
}
.dnc-b-wide .dnc-bw-b p { font-size: 17px; }
/* concept: a.link-arrow sat inline in div.bw-c, so keep it inline here too */
.dnc-b-wide .dnc-bw-c .dnc-go { display: block; }
.dnc-b-wide .dnc-go a { margin-top: 12px; }
.dnc-svc-note { margin-top: 28px; color: var(--muted); font-size: 16px; font-weight: 500; }

/* ---------- Chain section ---------- */
.dnc-chain-grid { display: grid; gap: 40px; }
@media (min-width: 1024px) { .dnc-chain-grid { grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: stretch; } .dnc-chain-photo { grid-column: 1 / span 5; } .dnc-chain-body { grid-column: 7 / span 6; } }
.dnc-chain-photo { position: relative; min-height: 360px; }
.dnc-chain-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
@media (min-width: 1024px) { .dnc-chain-photo img { position: absolute; inset: 0; } }
.dnc-chain-photo::before { content: ""; position: absolute; left: -14px; top: -14px; width: 42%; height: 42%; border-left: 5px solid var(--gold); border-top: 5px solid var(--gold); pointer-events: none; z-index: 1; }
.dnc-chain-photo figcaption {
  position: absolute; right: 0; bottom: 0; left: 0; margin: 0 16px 16px auto; max-width: none; width: calc(100% - 32px);
  background: var(--navy); color: var(--white); padding: 22px 24px; border-left: 5px solid var(--gold); font-size: 16px; line-height: 1.5; text-align: left;
}
@media (min-width: 640px) { .dnc-chain-photo figcaption { width: 72%; margin: 0 24px 24px auto; } }
.dnc-chain-photo figcaption strong { display: block; color: var(--gold); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 6px; }
.dnc-chain-body h2 { font-size: clamp(32px, 4vw, 48px); font-weight: 800; }
.dnc-chain-body > .dnc-lead { margin-top: 18px; color: var(--muted); font-size: 18px; }

.dnc-steps { margin-top: 36px; }
.dnc-step { position: relative; display: grid; grid-template-columns: 56px 1fr; column-gap: 22px; padding-bottom: 26px; }
.dnc-step:last-child { padding-bottom: 0; }
.dnc-step::before { content: ""; position: absolute; left: 27px; top: 56px; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--gold) 0 6px, transparent 6px 11px); }
.dnc-step:last-child::before { display: none; }
/* concept span.step-n: a paragraph, so it must outrank ".dnc-step p" */
.dnc-step .dnc-step-n {
  width: 56px; height: 56px; display: grid; place-items: center; font-size: 22px; font-weight: 800; margin: 0;
  background: var(--white); color: var(--heading); border: 2px solid var(--navy); border-radius: var(--radius);
}
.dnc-step.is-final .dnc-step-n { background: var(--navy); color: var(--gold); }
.dnc-step-card { background: var(--white); border: 1px solid rgb(227 161 56 / 0.35); border-radius: var(--radius); padding: 18px 22px; box-shadow: 0 8px 20px -18px rgb(26 42 69 / 0.5); }
.dnc-step-where { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.dnc-step h3 { font-size: 21px; font-weight: 700; margin-top: 4px; }
.dnc-step p { font-size: 16px; color: var(--muted); margin-top: 6px; }
.dnc-chain-foot { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; }
.dnc-chain-foot p { color: var(--muted); font-size: 16px; flex: 1 1 260px; }

/* ---------- Comparison table (core/table: the figure is .cmp-wrap, the table is .cmp) ---------- */
.dnc-cmp { border: 1px solid rgb(255 255 255 / 0.18); border-radius: var(--radius); overflow: hidden; margin: 0; }
.dnc-cmp table { width: 100%; border-collapse: collapse; }
.dnc-cmp thead { border: 0; }
.dnc-cmp th, .dnc-cmp td { text-align: left; vertical-align: top; padding: 24px 26px; font-size: 16px; line-height: 1.6; border: 0; }
.dnc-cmp thead th { background: rgb(0 0 0 / 0.22); color: var(--gold); font-size: 24px; font-weight: 700; border-bottom: 3px solid var(--gold); }
.dnc-cmp thead th:first-child { color: transparent; }
.dnc-cmp tbody th { color: var(--gold); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; width: 17%; }
.dnc-cmp tbody td { color: rgb(255 255 255 / 0.86); }
.dnc-cmp tbody td strong { color: var(--white); font-weight: 700; }
.dnc-cmp tbody tr + tr > * { border-top: 1px solid rgb(255 255 255 / 0.14); }
.dnc-cmp td + td, .dnc-cmp th + td, .dnc-cmp th + th { border-left: 1px solid rgb(255 255 255 / 0.1); }
.dnc-cmp .wp-element-caption { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 899px) {
  .dnc-cmp thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .dnc-cmp table, .dnc-cmp tbody, .dnc-cmp tr, .dnc-cmp th, .dnc-cmp td { display: block; width: 100%; }
  .dnc-cmp tbody tr { padding: 8px 0; }
  .dnc-cmp tbody th { padding: 22px 20px 6px; width: 100%; }
  .dnc-cmp tbody td { padding: 10px 20px 10px; border-left: 0 !important; }
  /* concept: td::before { content: attr(data-col) }; core/table has no data attributes */
  .dnc-cmp tbody td::before { display: block; color: var(--white); font-weight: 700; font-size: 17px; margin-bottom: 2px; }
  .dnc-cmp tbody td:nth-child(2)::before { content: "Notarisation"; }
  .dnc-cmp tbody td:nth-child(3)::before { content: "MOFA attestation"; }
  .dnc-cmp tbody td:nth-child(4)::before { content: "Embassy attestation"; }
  .dnc-cmp tbody tr + tr > * { border-top: 0; }
  .dnc-cmp tbody tr + tr { border-top: 1px solid rgb(255 255 255 / 0.14); }
}
.dnc-cmp-foot { margin-top: 26px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.dnc-cmp-foot p { color: rgb(255 255 255 / 0.82); font-size: 16px; }
.dnc-cmp-foot .dnc-go a { color: var(--white); border-bottom-color: var(--gold); }
.dnc-cmp-foot .dnc-go a:hover { color: var(--gold); }

/* ---------- Countries (concept a.cty: a card with a link overlay) ---------- */
.dnc-cty-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 640px) { .dnc-cty-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-cty-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 519px) { .dnc-cty { padding: 14px; gap: 10px; } .dnc-cty-code { width: 34px; height: 34px; font-size: 12px; } .dnc-cty-sub { display: none; } .dnc-cty-name { font-size: 16px; } }
.dnc-cty {
  position: relative; align-self: start;
  display: flex; align-items: center; gap: 14px; padding: 16px 18px; min-height: 72px;
  background: var(--white); border: 1px solid var(--border); border-left: 4px solid var(--navy);
  border-radius: var(--radius); text-decoration: none; transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.dnc-cty:hover { border-left-color: var(--gold); box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.dnc-cty-code { flex: none; width: 42px; height: 42px; display: grid; place-items: center; background: var(--surface); color: var(--heading); font-weight: 800; font-size: 14px; letter-spacing: 0.06em; border-radius: 2px; }
.dnc-cty:hover .dnc-cty-code { background: var(--gold); color: var(--text); }
.dnc-cty-txt { display: grid; min-width: 0; }
.dnc-cty-name { font-weight: 700; font-size: 17px; color: var(--heading); line-height: 1.25; }
.dnc-cty-name a { color: inherit; text-decoration: none; }
.dnc-cty-name a::after { content: ""; position: absolute; inset: 0; }
.dnc-cty-sub { font-size: 13px; color: var(--muted); line-height: 1.3; }
.dnc-cty-more { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; padding: 22px 26px; background: var(--surface); border-radius: var(--radius); }
.dnc-cty-more p { color: var(--muted); font-size: 16px; flex: 1 1 320px; }

/* ---------- Family documents ---------- */
.dnc-fam-grid { display: grid; gap: 24px; }
@media (min-width: 900px) { .dnc-fam-grid { grid-template-columns: repeat(2, 1fr); } }
.dnc-fam {
  position: relative; display: flex; flex-direction: column; background: var(--white);
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); border-bottom: 5px solid var(--navy);
  transition: transform var(--ease);
}
.dnc-fam:hover { transform: translateY(-4px); }
.dnc-fam-img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; }
.dnc-fam-img figure { position: absolute; inset: 0; }
.dnc-fam-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.dnc-fam:hover .dnc-fam-img img { transform: scale(1.04); }
.dnc-fam-img .dnc-tag { top: 20px; left: 20px; }
.dnc-fam-body { display: flex; flex-direction: column; gap: 12px; padding: 30px 32px 32px; flex: 1; }
.dnc-fam-body h3 { font-size: 28px; font-weight: 700; }
.dnc-fam-body p { color: var(--muted); font-size: 16px; }
.dnc-fam-list { display: grid; gap: 8px; margin: 4px 0 6px; }
.dnc-fam-list li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-size: 16px; color: var(--text); }
.dnc-fam-list li::before { content: ""; width: 20px; height: 20px; margin-top: 2px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-fam-body .dnc-go { margin-top: auto; }
.dnc-fam-price { display: inline-flex; align-self: flex-start; gap: 6px; align-items: baseline; font-size: 14px; color: var(--muted); border: 1px solid var(--border); padding: 6px 12px; border-radius: 2px; }
.dnc-fam-price strong { color: var(--heading); font-size: 18px; }

/* ---------- Prices, layout from concept 1 ---------- */
.dnc-p1-prices { display: grid; gap: 24px; }
@media (min-width: 1024px) { .dnc-p1-prices { grid-template-columns: 4fr 8fr; align-items: stretch; } }
.dnc-p1-panel { background: var(--navy); color: rgb(255 255 255 / 0.84); padding: clamp(28px, 3vw, 40px); display: flex; flex-direction: column; gap: 18px; border-radius: var(--radius); position: relative; overflow: hidden; }
.dnc-p1-panel::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 4px; background: var(--gold); }
.dnc-p1-panel h3 { color: var(--white); font-size: 1.6rem; margin: 0; }
.dnc-p1-panel p { margin: 0; }
.dnc-p1-panel .dnc-p1-approved { font-size: 1.02rem; color: var(--white); border-left: 3px solid var(--gold); padding-left: 16px; }
.dnc-p1-panel .wp-block-buttons { margin-top: auto; align-self: flex-start; }
.dnc-p1-grid { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .dnc-p1-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .dnc-p1-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dnc-p1-card { display: flex; flex-direction: column; gap: 8px; background: var(--white); border: 1px solid #D5DCE3; border-radius: var(--radius); padding: 24px; height: 100%; transition: border-color var(--ease), box-shadow var(--ease); }
.dnc-p1-card:hover { border-color: var(--gold); box-shadow: var(--shadow-soft); }
.dnc-p1-card .dnc-cat { font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.dnc-p1-card h3 { font-size: 1.15rem; margin: 0; }
/* concept: <p class="amt"><span>from</span><b>AED 150</b></p>; the text node takes the span's look */
.dnc-p1-card .dnc-amt { display: flex; align-items: baseline; gap: 8px; margin: 6px 0 2px; padding-top: 12px; border-top: 1px solid var(--border); font-size: .9rem; color: var(--muted); font-weight: 500; }
.dnc-p1-card .dnc-amt strong { font-size: 1.9rem; font-weight: 800; color: var(--heading); line-height: 1; }
.dnc-p1-card .dnc-gov { font-size: .9rem; color: var(--muted); margin: 0; }

/* ---------- Why us ---------- */
.dnc-why-grid { display: grid; gap: 40px; }
@media (min-width: 1024px) { .dnc-why-grid { grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: center; } .dnc-why-body { grid-column: 1 / span 6; } .dnc-why-photo { grid-column: 8 / span 5; } }
.dnc-why-body h2 { font-size: clamp(32px, 4vw, 48px); font-weight: 800; }
.dnc-why-body > .dnc-lead { margin-top: 18px; font-size: 18px; color: rgb(255 255 255 / 0.84); }
.dnc-why-list { display: grid; gap: 16px; margin-top: 34px; }
@media (min-width: 640px) { .dnc-why-list { grid-template-columns: repeat(2, 1fr); } }
.dnc-why-item { padding: 24px; background: var(--navy-mid); border: 1px solid rgb(255 255 255 / 0.1); border-top: 3px solid var(--gold); border-radius: var(--radius); }
.dnc-why-item::before { content: ""; display: inline-block; vertical-align: baseline; width: 26px; height: 26px; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-why-item h3 { font-size: 20px; font-weight: 700; margin-top: 14px; color: var(--white); }
.dnc-why-item p { font-size: 16px; margin-top: 8px; color: rgb(255 255 255 / 0.8); }
.dnc-why-photo { position: relative; margin: 0; }
.dnc-why-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
.dnc-why-photo::after { content: ""; position: absolute; right: -14px; bottom: -14px; width: 45%; height: 45%; border-right: 5px solid var(--gold); border-bottom: 5px solid var(--gold); pointer-events: none; }
@media (max-width: 639px) { .dnc-why-photo img { aspect-ratio: 4 / 3; } .dnc-why-photo::after { right: -8px; bottom: -8px; } }

/* ---------- FAQ (core/details; the plus box is drawn by the summary's pseudo-elements) ---------- */
.dnc-faq-grid { display: grid; gap: 40px; }
@media (min-width: 1024px) { .dnc-faq-grid { grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; } .dnc-faq-main { grid-column: 1 / span 8; } .dnc-contact-card { grid-column: 9 / span 4; position: sticky; top: 120px; } }
.dnc-faq-list { border-top: 2px solid var(--navy); }
.dnc-faq { border-bottom: 1px solid var(--border); }
.dnc-faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; position: relative;
  padding: 22px 4px; font-size: 20px; font-weight: 700; color: var(--heading); line-height: 1.3;
}
.dnc-faq summary::-webkit-details-marker { display: none; }
.dnc-faq summary:hover { color: var(--navy-mid); }
.dnc-faq summary::after { content: ""; flex: none; width: 36px; height: 36px; border: 2px solid var(--navy); border-radius: var(--radius); transition: background-color var(--ease), border-color var(--ease); }
.dnc-faq summary::before { content: ""; position: absolute; right: 14px; top: 50%; width: 16px; height: 16px; margin-top: -8px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 5v14M5 12h14%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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 5v14M5 12h14%22/%3E%3C/svg%3E") center / contain no-repeat; transition: transform var(--ease); }
.dnc-faq[open] summary::after { background: var(--gold); border-color: var(--gold); }
.dnc-faq[open] summary::before { background: var(--text); transform: rotate(45deg); }
.dnc-faq-a { padding: 0 60px 24px 4px; color: var(--muted); font-size: 17px; }
@media (max-width: 639px) { .dnc-faq summary { font-size: 18px; } .dnc-faq-a { padding-right: 4px; } }

.dnc-contact-card { background: var(--navy); color: var(--white); border-radius: var(--radius); overflow: hidden; border-top: 5px solid var(--gold); }
.dnc-cc-body { padding: 32px 30px 30px; display: grid; gap: 16px; }
.dnc-cc-body h3 { color: var(--white); font-size: 28px; font-weight: 800; }
.dnc-cc-body > p { color: rgb(255 255 255 / 0.85); font-size: 16px; }
.dnc-cc-lines { display: grid; gap: 0; margin-top: 4px; }
/* concept li > a > svg + span > small: a line with a label paragraph and a value paragraph */
.dnc-cc-line { position: relative; display: grid; grid-template-columns: 20px 1fr; column-gap: 14px; align-items: center; padding: 14px 0; font-size: 16px; border-top: 1px solid rgb(255 255 255 / 0.14); }
.dnc-cc-line::before { content: ""; grid-row: 1 / span 2; width: 20px; height: 20px; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-cc-k { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.6); }
.dnc-cc-v a { color: inherit; text-decoration: none; }
.dnc-cc-v a::after { content: ""; position: absolute; inset: 0; }
.dnc-cc-line:hover .dnc-cc-v a { color: var(--gold); }
.wp-block-buttons.dnc-cc-btns { display: grid; gap: 10px; margin-top: 8px; }
.dnc-cc-btns .wp-block-button, .dnc-cc-btns .wp-block-button__link { width: 100%; }

/* ---------- Closing CTA, layout from concept 1 ---------- */
.dnc-c1-cta { padding: 0 0 clamp(64px, 8vw, 104px); background: var(--surface); }
.dnc-c1-cta-box { display: grid; background: var(--navy); color: rgb(255 255 255 / 0.84); border-radius: var(--radius); overflow: hidden; }
@media (min-width: 960px) { .dnc-c1-cta-box { grid-template-columns: 7fr 5fr; } }
.dnc-c1-cta-copy { padding: clamp(32px, 5vw, 64px); border-left: 6px solid var(--gold); }
.dnc-c1-cta-copy h2 { color: var(--white); margin: 0 0 16px; }
.dnc-c1-cta-copy p { font-size: 1.12rem; margin: 0 0 28px; }
.dnc-c1-cta-copy p.dnc-eyebrow { font-size: .8rem; margin-bottom: 16px; }
.dnc-c1-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.dnc-c1-cta-media { position: relative; min-height: 260px; }
.dnc-c1-cta-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dnc-c1-cta-media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgb(26 42 69 / 0.55) 0%, rgb(26 42 69 / 0) 45%); }

/* ===== 40-footer.css ===== */
/* Footer and mobile bar, from concept 3 style.css lines 472 to 495. */
.dnc-site-footer { background: var(--navy); color: rgb(255 255 255 / 0.8); font-size: 15px; }
.dnc-ft-grid { display: grid; gap: 36px; padding-block: 72px 48px; }
@media (min-width: 640px) { .dnc-ft-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dnc-ft-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; } }
.dnc-ft-logo { line-height: 0; }
.dnc-ft-brand img { width: 210px; }
.dnc-ft-brand p { margin-top: 18px; font-size: 15px; line-height: 1.65; }
.dnc-ft-contact { display: grid; gap: 10px; margin-top: 20px; }
/* concept a/span with an svg: the list item draws the icon */
.dnc-ft-contact li { display: flex; align-items: center; gap: 10px; min-height: 28px; padding-bottom: 4px; }
.dnc-ft-contact li::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-ft-contact li:nth-child(1) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z%22/%3E%3C/svg%3E"); }
.dnc-ft-contact li:nth-child(2) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%222%22 y=%224%22 width=%2220%22 height=%2216%22 rx=%221%22/%3E%3Cpath d=%22m22 6-10 7L2 6%22/%3E%3C/svg%3E"); }
.dnc-ft-contact li:nth-child(3) { --i: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E"); }
.dnc-ft-col h2 { color: var(--white); font-size: 14px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 2px solid var(--gold); display: inline-block; }
.dnc-ft-col ul { display: grid; gap: 10px; }
.dnc-ft-col a, .dnc-ft-contact a { text-decoration: none; }
.dnc-ft-col a:hover, .dnc-ft-contact a:hover { color: var(--gold); }
.dnc-ft-bottom { border-top: 1px solid rgb(255 255 255 / 0.12); }
.dnc-ft-bottom .dnc-wrap { display: flex; flex-wrap: wrap; gap: 10px 28px; justify-content: space-between; padding-top: 22px; padding-bottom: 22px; font-size: 14px; color: rgb(255 255 255 / 0.65); }
/* Developer credit in the bottom bar: the bar's own colour, smaller text, links underlined. */
.dnc-ft-bottom .dnc-credit { font-size: 13px; overflow-wrap: anywhere; }
.dnc-ft-bottom .dnc-credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.dnc-ft-bottom .dnc-credit a:hover, .dnc-ft-bottom .dnc-credit a:focus-visible { color: var(--gold); }

/* Mobile floating bar */
.dnc-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; grid-template-columns: 1fr 1fr; background: var(--navy); box-shadow: 0 -8px 20px -10px rgb(0 0 0 / 0.4); }
.dnc-mbar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; font-weight: 700; text-decoration: none; }
.dnc-mbar-wa a { background: var(--gold); color: var(--text); }
.dnc-mbar-wa a::before { content: ""; width: 20px; height: 20px; flex: none; background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 32 32%22%3E%3Ccircle fill=%22%2325D366%22 cx=%2216%22 cy=%2216%22 r=%2216%22/%3E%3Cpath fill=%22%23FFFFFF%22 d=%22M16.1 7.2a8.8 8.8 0 0 0-7.6 13.2l-1.2 4.3 4.4-1.2a8.8 8.8 0 1 0 4.4-16.3zm0 16.1a7.3 7.3 0 0 1-3.7-1l-.3-.2-2.6.7.7-2.5-.2-.3a7.3 7.3 0 1 1 6.1 3.3zm4-5.5c-.2-.1-1.3-.6-1.5-.7-.2-.1-.4-.1-.5.1l-.7.9c-.1.2-.3.2-.5.1a6 6 0 0 1-3-2.6c-.2-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.7-1.6c-.2-.4-.4-.4-.5-.4h-.4a.8.8 0 0 0-.6.3 2.5 2.5 0 0 0-.8 1.9 4.4 4.4 0 0 0 .9 2.3 10 10 0 0 0 3.8 3.4c1.4.6 2 .7 2.7.6a2.3 2.3 0 0 0 1.5-1.1 1.9 1.9 0 0 0 .1-1.1c0-.1-.2-.2-.5-.3z%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-mbar-call a { color: var(--white); }
.dnc-mbar-call a::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=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 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=%22none%22 stroke=%22%23000000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z%22/%3E%3C/svg%3E") center / contain no-repeat; }
@media (min-width: 768px) { .dnc-mbar { display: none; } }
@media (max-width: 767px) { .dnc-site-footer { padding-bottom: 54px; } }

/* ===== 50-inner.css ===== */
/* Inner pages. Same tokens, type scale and components as the home page; each page type has
   its own hero and body layout. No text is capped narrower than its container. */

/* ---------- Page heroes ---------- */
.dnc-ph { position: relative; padding-block: 56px 64px; }
@media (min-width: 1024px) { .dnc-ph { padding-block: 80px 88px; } }
.dnc-ph h1 { font-weight: 800; font-size: clamp(34px, 4.6vw, 56px); line-height: 1.06; letter-spacing: -0.02em; text-wrap: balance; }
.dnc-ph-lead { margin-top: 20px; font-size: clamp(17px, 1.5vw, 19px); line-height: 1.6; }
.dnc-ph .wp-block-buttons.dnc-ph-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.dnc-crumbs { font-size: 14px; margin-bottom: 18px; color: var(--muted); }
.dnc-crumbs a { text-decoration: none; color: inherit; font-weight: 600; }
.dnc-crumbs a:hover { color: var(--gold); }
.dnc-on-dark .dnc-crumbs { color: rgb(255 255 255 / 0.7); }
.dnc-ph.dnc-on-dark { background: var(--navy); color: var(--white); }
.dnc-ph.dnc-on-dark h1 { color: var(--white); }
.dnc-ph.dnc-on-dark .dnc-ph-lead { color: rgb(255 255 255 / 0.9); }
.dnc-ph-plain { background: var(--surface); }
.dnc-ph-plain .dnc-ph-lead { color: var(--muted); }
.dnc-ph-plain .dnc-ph-lead a { color: var(--heading); font-weight: 600; }
.dnc-post-hero h1 { font-size: clamp(30px, 3.8vw, 46px); }

/* split hero: copy beside a framed photo (hubs, about) */
.dnc-ph-grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1024px) { .dnc-ph-grid { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-ph-grid > .dnc-ph-copy { grid-column: 1 / span 7; } .dnc-ph-grid > .dnc-ph-media { grid-column: 9 / span 4; } }
.dnc-ph-media { position: relative; }
.dnc-ph-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
.dnc-ph-media::before { content: ""; position: absolute; left: -14px; top: -14px; width: 45%; height: 45%; border-left: 5px solid var(--gold); border-top: 5px solid var(--gold); pointer-events: none; z-index: 1; }
@media (max-width: 1023px) { .dnc-ph-media img { aspect-ratio: 16 / 10; } .dnc-ph-media::before { left: -8px; top: -8px; } }

/* country hero: the country code tile and the four stamps */
.dnc-ph-country { background: var(--surface); border-bottom: 1px solid var(--border); }
.dnc-ph-country .dnc-ph-lead { color: var(--muted); }
.dnc-ph-country-top { display: grid; gap: 24px; align-items: start; }
@media (min-width: 768px) { .dnc-ph-country-top { grid-template-columns: 120px 1fr; gap: 36px; } }
.dnc-ph-code { width: 96px; height: 96px; display: grid; place-items: center; background: var(--navy); color: var(--gold); font-size: 30px; font-weight: 800; letter-spacing: 0.06em; border-radius: var(--radius); border-bottom: 5px solid var(--gold); }
@media (min-width: 768px) { .dnc-ph-code { width: 120px; height: 120px; font-size: 36px; } }
.dnc-route { display: grid; gap: 12px; margin-top: 40px; counter-reset: route; }
@media (min-width: 768px) { .dnc-route { grid-template-columns: repeat(4, 1fr); gap: 0; } }
.dnc-route-step { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: center; padding: 16px 18px; background: var(--white); border: 1px solid var(--border); }
@media (min-width: 768px) { .dnc-route-step + .dnc-route-step { border-left: 0; } .dnc-route-step:first-child { border-radius: var(--radius) 0 0 var(--radius); } .dnc-route-step:last-child { border-radius: 0 var(--radius) var(--radius) 0; background: var(--navy); } }
@media (max-width: 767px) { .dnc-route-step:last-child { background: var(--navy); } }
.dnc-route-n { width: 44px; height: 44px; display: grid; place-items: center; border: 2px solid var(--navy); border-radius: var(--radius); font-weight: 800; font-size: 18px; color: var(--heading); }
.dnc-route-step:last-child .dnc-route-n { border-color: var(--gold); color: var(--gold); }
.dnc-route-where { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.dnc-route-t { font-weight: 700; font-size: 16px; line-height: 1.3; color: var(--heading); }
.dnc-route-step:last-child .dnc-route-where { color: rgb(255 255 255 / 0.7); }
.dnc-route-step:last-child .dnc-route-t { color: var(--white); }

/* guide hero: the short answer card beside the title */
.dnc-ph-guide { background: var(--tint); }
.dnc-ph-guide .dnc-ph-lead { color: var(--muted); }
.dnc-ph-guide-grid { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .dnc-ph-guide-grid { grid-template-columns: repeat(12, 1fr); } .dnc-ph-guide-grid > .dnc-ph-copy { grid-column: 1 / span 7; } .dnc-ph-guide-grid > .dnc-ph-answer { grid-column: 8 / span 5; } }
.dnc-ph-answer { background: var(--navy); color: rgb(255 255 255 / 0.88); border-top: 5px solid var(--gold); border-radius: var(--radius); padding: 28px 28px 24px; font-size: 16px; box-shadow: var(--shadow-card); }
.dnc-ph-answer .dnc-label { color: var(--gold); margin-bottom: 12px; }
.dnc-ph-answer a { color: var(--white); }
.dnc-answer-list { display: grid; gap: 12px; }
.dnc-answer-list li { position: relative; padding-left: 30px; }
.dnc-answer-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E") center / contain no-repeat; }

/* photo hero (locations) */
.dnc-ph-photo { isolation: isolate; }
.dnc-ph-bg { position: absolute; inset: 0; z-index: -2; }
.dnc-ph-bg figure { position: absolute; inset: 0; }
.dnc-ph-bg img { width: 100%; height: 100%; object-fit: cover; }
.dnc-ph-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(26 42 69 / 0.94) 0%, rgb(26 42 69 / 0.8) 55%, rgb(26 42 69 / 0.55) 100%); }
.dnc-ph-photo.dnc-on-dark { background: transparent; }

/* fees hero: the approved price wording beside the title */
.dnc-ph-fees-grid { display: grid; gap: 32px; align-items: end; }
@media (min-width: 1024px) { .dnc-ph-fees-grid { grid-template-columns: repeat(12, 1fr); } .dnc-ph-fees-grid > .dnc-ph-copy { grid-column: 1 / span 7; } .dnc-ph-fees-grid > .dnc-ph-pricebox { grid-column: 9 / span 4; } }
.dnc-ph-pricebox { background: var(--navy-mid); border-top: 4px solid var(--gold); border-radius: var(--radius); padding: 26px 28px; display: grid; gap: 12px; }
.dnc-ph-pricebox .dnc-label { color: var(--gold); }
.dnc-ph-pricebox .dnc-p1-approved { color: var(--white); border-left: 3px solid var(--gold); padding-left: 16px; font-size: 1.02rem; }

/* ---------- Reading content ---------- */
.dnc-prose { font-size: 17px; }
.dnc-prose > * + * { margin-top: 18px; }
.dnc-prose h2 { font-size: clamp(26px, 2.8vw, 34px); font-weight: 800; }
.dnc-prose h3 { font-size: 21px; font-weight: 700; margin-top: 30px; }
.dnc-prose h2 + *, .dnc-prose h3 + * { margin-top: 12px; }
.dnc-prose a { color: var(--heading); font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.dnc-prose a:hover { color: var(--navy-mid); }
.dnc-prose strong { color: var(--heading); }
.dnc-list { display: grid; gap: 10px; }
.dnc-list li { position: relative; padding-left: 26px; }
.dnc-list li::before { content: ""; position: absolute; left: 4px; top: 11px; width: 9px; height: 9px; background: var(--gold); border-radius: 2px; }
.dnc-check-list { display: grid; gap: 10px; }
.dnc-check-list li { position: relative; padding-left: 32px; }
.dnc-check-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-olist { display: grid; gap: 12px; counter-reset: dnc-ol; }
.dnc-olist li { position: relative; padding-left: 46px; counter-increment: dnc-ol; min-height: 32px; }
.dnc-olist li::before { content: counter(dnc-ol); position: absolute; left: 0; top: -2px; width: 32px; height: 32px; display: grid; place-items: center; background: var(--navy); color: var(--gold); font-weight: 800; font-size: 15px; border-radius: var(--radius); }
.dnc-src { font-size: 14px; color: var(--muted); }
.dnc-prose .dnc-src a { font-weight: 500; text-decoration-thickness: 1px; }
.dnc-quote { margin: 0; padding: 18px 22px; border-left: 5px solid var(--gold); background: var(--tint); }
.dnc-quote p { margin: 0; }

/* tables (core/table) */
.dnc-table { margin: 0; overflow-x: auto; border: 1px solid #D5DCE3; border-radius: var(--radius); }
.dnc-table table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.dnc-table thead { border: 0; }
.dnc-table th, .dnc-table td { border: 0; border-bottom: 1px solid var(--border); padding: 14px 16px; text-align: left; vertical-align: top; }
.dnc-table thead th { background: var(--navy); color: var(--white); font-weight: 700; font-size: 14px; letter-spacing: 0.02em; border-bottom: 3px solid var(--gold); }
.dnc-table tbody th { color: var(--heading); font-weight: 700; background: var(--surface); }
.dnc-table tbody tr:last-child > * { border-bottom: 0; }
.dnc-table td + td, .dnc-table th + td { border-left: 1px solid var(--border); }
@media (max-width: 767px) {
  .dnc-table table, .dnc-table tbody, .dnc-table tr, .dnc-table th, .dnc-table td { display: block; width: 100%; }
  .dnc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .dnc-table tbody tr { border-bottom: 3px solid var(--border); }
  .dnc-table tbody th { border-bottom: 0; }
  .dnc-table td + td, .dnc-table th + td { border-left: 0; }
}
.dnc-fee-table tbody td:nth-child(2) { font-weight: 700; color: var(--heading); white-space: nowrap; }
@media (max-width: 767px) { .dnc-fee-table tbody td:nth-child(2) { white-space: normal; } }

.dnc-price-note { margin-top: 22px; padding: 22px 24px; background: var(--navy); color: var(--white); border-left: 5px solid var(--gold); border-radius: var(--radius); display: grid; gap: 8px; }
.dnc-price-note .dnc-label { color: var(--gold); }
.dnc-price-note p { margin: 0; }
.dnc-answer-box { padding: 26px 28px; background: var(--tint); border: 2px solid var(--gold); border-radius: var(--radius); }
.dnc-answer-box > * + * { margin-top: 14px; }
.dnc-answer-box h2 { font-size: 24px; }

/* ---------- Hub: at a glance cards, spoke cards, split sections ---------- */
.dnc-glance-head { display: grid; gap: 12px; margin-bottom: 28px; }
.dnc-glance-head > p:not(.dnc-label) { font-size: 18px; color: var(--muted); }
.dnc-glance-grid { display: grid; gap: 16px; }
@media (min-width: 640px) { .dnc-glance-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dnc-glance-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.dnc-glance-card { background: var(--white); border: 1px solid rgb(227 161 56 / 0.35); border-top: 4px solid var(--gold); border-radius: var(--radius); padding: 22px 22px 20px; font-size: 16px; box-shadow: 0 8px 20px -18px rgb(26 42 69 / 0.5); }
.dnc-glance-card a { color: var(--heading); font-weight: 600; }
.dnc-glance-card .dnc-src, .dnc-glance-card p { font-size: 16px; }

.dnc-spoke-grid { display: grid; gap: 16px; }
@media (min-width: 640px) { .dnc-spoke-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-spoke-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
.dnc-spoke { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 24px 24px 22px; background: var(--white); border: 1px solid var(--border); border-left: 4px solid var(--navy); border-radius: var(--radius); transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease); }
.dnc-spoke:hover { border-left-color: var(--gold); box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.dnc-spoke-tag { align-self: flex-start; font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; background: var(--surface); color: var(--heading); padding: 4px 10px; border-radius: 2px; }
.dnc-spoke h3 { font-size: 20px; }
.dnc-spoke h3 a { text-decoration: none; color: inherit; }
.dnc-spoke h3 a::after { content: ""; position: absolute; inset: 0; }
.dnc-spoke p:not(.dnc-spoke-tag) { font-size: 15px; color: var(--muted); }

.dnc-split { display: grid; gap: 20px; }
@media (min-width: 1024px) { .dnc-split { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-split-head { grid-column: 1 / span 4; position: sticky; top: 120px; align-self: start; } .dnc-split-body { grid-column: 5 / span 8; } }
.dnc-split-num { font-size: 44px; font-weight: 800; line-height: 1; color: var(--gold); margin-bottom: 12px; }
.dnc-split-head h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 800; }

/* ---------- Service: contents aside and reading column ---------- */
.dnc-doc { display: grid; gap: 32px; }
@media (min-width: 1024px) { .dnc-doc { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-doc > .dnc-toc { grid-column: 1 / span 3; } .dnc-doc > .dnc-read { grid-column: 4 / span 9; } }
.dnc-toc { align-self: start; background: var(--surface); border-radius: var(--radius); border-top: 4px solid var(--navy); padding: 22px 22px 18px; }
@media (min-width: 1024px) { .dnc-toc { position: sticky; top: 120px; } }
.dnc-toc .dnc-label { margin-bottom: 10px; }
.dnc-toc-list { display: grid; gap: 2px; }
.dnc-toc-list a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--border); font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; color: var(--heading); }
.dnc-toc-list a:hover { border-left-color: var(--gold); color: var(--navy-mid); }
.dnc-read > .dnc-part + .dnc-part, .dnc-read > * + .dnc-part, .dnc-read-one > * + .dnc-part, .dnc-fees > * + .dnc-fee-part { margin-top: 48px; }
.dnc-part > * + *, .dnc-fee-part > * + * { margin-top: 16px; }
.dnc-part { scroll-margin-top: 120px; }
.dnc-read-one { max-width: 860px; margin-inline: auto; }
.dnc-part-faq .dnc-faq-list { margin-top: 20px; }
.dnc-faq > :not(summary) { padding: 0 60px 0 4px; color: var(--muted); font-size: 17px; }
.dnc-faq > :not(summary) + :not(summary) { margin-top: 12px; }
.dnc-faq > :last-child:not(summary) { padding-bottom: 24px; }
.dnc-faq .dnc-faq-a { padding-bottom: 24px; }
@media (max-width: 639px) { .dnc-faq > :not(summary) { padding-right: 4px; } }

.dnc-mid { display: grid; background: var(--navy); color: rgb(255 255 255 / 0.86); border-radius: var(--radius); overflow: hidden; border-left: 6px solid var(--gold); margin-top: 48px; }
@media (min-width: 768px) { .dnc-mid { grid-template-columns: 5fr 7fr; } }
.dnc-mid-media { position: relative; min-height: 200px; }
.dnc-mid-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dnc-mid-copy { padding: 28px 30px; display: grid; gap: 14px; align-content: center; }
.dnc-mid-title { font-size: 24px; font-weight: 800; color: var(--white); line-height: 1.15; }

/* guide body: pills, column and a side photo */
.dnc-guide-grid { display: grid; gap: 40px; }
@media (min-width: 1100px) { .dnc-guide-grid { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-guide-grid > .dnc-read-one { grid-column: 1 / span 8; max-width: none; margin: 0; } .dnc-guide-aside { grid-column: 10 / span 3; } }
.dnc-guide-aside { align-self: start; }
@media (min-width: 1100px) { .dnc-guide-aside { position: sticky; top: 120px; } }
@media (max-width: 1099px) { .dnc-guide-aside { display: none; } }
.dnc-guide-photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--radius); border-bottom: 5px solid var(--gold); }
.dnc-pillbar { padding-bottom: 24px; border-bottom: 1px solid var(--border); }
.dnc-pillbar .dnc-label { margin-bottom: 10px; }
.dnc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.dnc-prose .dnc-pills a { display: inline-block; padding: 7px 14px; border: 1px solid #D5DCE3; border-radius: 999px; font-size: 14px; font-weight: 600; text-decoration: none; background: var(--white); }
.dnc-prose .dnc-pills a:hover { border-color: var(--gold); background: var(--tint); }

/* ---------- Closing CTA strip (service, country, guide pages) ---------- */
.dnc-cta-strip { background: var(--navy); color: rgb(255 255 255 / 0.86); border-top: 5px solid var(--gold); padding-block: 56px; }
.dnc-cta-strip-in { display: grid; gap: 24px; align-items: center; }
@media (min-width: 1024px) { .dnc-cta-strip-in { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-strip-copy { grid-column: 1 / span 7; } .dnc-strip-ctas { grid-column: 8 / span 5; justify-content: flex-end; } }
.dnc-strip-copy h2 { color: var(--white); font-size: clamp(26px, 3vw, 36px); font-weight: 800; }
.dnc-strip-copy > * + * { margin-top: 12px; }
.dnc-strip-copy a { color: var(--white); }
.dnc-cta-strip .wp-block-buttons.dnc-strip-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.dnc-c1-inner { padding-top: clamp(64px, 8vw, 104px); }
.dnc-c1-cta-copy a { color: var(--white); }

/* ---------- Sources ---------- */
.dnc-sources-band { background: var(--surface); border-top: 1px solid var(--border); padding-block: 28px; }
.dnc-sources summary { cursor: pointer; font-weight: 700; color: var(--heading); font-size: 15px; }
.dnc-src-list { display: grid; gap: 6px; margin-top: 12px; font-size: 14px; color: var(--muted); }
.dnc-src-list a { color: var(--heading); overflow-wrap: anywhere; }

/* ---------- About ---------- */
.dnc-rule-grid { display: grid; gap: 20px; }
@media (min-width: 768px) { .dnc-rule-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .dnc-rule-grid { grid-template-columns: repeat(3, 1fr); } }
.dnc-rule { padding: 26px 26px 24px; background: var(--white); border: 1px solid var(--border); border-top: 5px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow-card); }
.dnc-rule h3 { font-size: 21px; }
.dnc-rule p { margin-top: 10px; font-size: 16px; color: var(--muted); }
.dnc-about-reach { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .dnc-about-reach { grid-template-columns: repeat(12, 1fr); } .dnc-about-reach > .dnc-about-body { grid-column: 1 / span 7; } .dnc-about-reach > .dnc-contact-card { grid-column: 9 / span 4; } }

/* ---------- Contact ---------- */
.dnc-contact-grid { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .dnc-contact-grid { grid-template-columns: repeat(12, 1fr); } .dnc-contact-grid > .dnc-ways { grid-column: 1 / span 4; } .dnc-contact-grid > .dnc-form-card { grid-column: 5 / span 8; } }
.dnc-ways { display: grid; gap: 16px; }
.dnc-way { position: relative; display: grid; gap: 6px; padding: 24px 24px 22px 72px; background: var(--white); border: 1px solid var(--border); border-left: 4px solid var(--navy); border-radius: var(--radius); }
.dnc-way::before { content: ""; position: absolute; left: 22px; top: 24px; width: 34px; height: 34px; border-radius: var(--radius); background: var(--navy); }
.dnc-way::after { content: ""; position: absolute; left: 30px; top: 32px; width: 18px; height: 18px; background: var(--gold); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-way-v { font-size: 19px; font-weight: 700; color: var(--heading); overflow-wrap: anywhere; }
.dnc-way-v a { text-decoration: none; color: inherit; }
.dnc-way .wp-block-buttons { margin-top: 8px; }
.dnc-form-card { background: var(--white); border-top: 5px solid var(--gold); border-radius: var(--radius); padding: clamp(24px, 3vw, 40px); box-shadow: var(--shadow-card); }
.dnc-form-card > h2 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; }
.dnc-form-card > p { margin: 10px 0 24px; color: var(--muted); }

/* ---------- News ---------- */
.dnc-news-list { display: grid; gap: 20px; margin-top: 24px; }
@media (min-width: 900px) { .dnc-news-list { grid-template-columns: repeat(2, 1fr); } }
.dnc-news-item { padding: 26px 26px 24px; border: 1px solid var(--border); border-top: 4px solid var(--navy); border-radius: var(--radius); background: var(--white); }
.dnc-news-item > * + * { margin-top: 12px; }
.dnc-news-item h3 { font-size: 20px; }
.dnc-news-item p, .dnc-news-item li { font-size: 16px; color: var(--muted); }
.dnc-news-item a { color: var(--heading); font-weight: 600; }

/* ---------- Service index: one row per hub ---------- */
.dnc-hubrows { display: grid; gap: 0; border-top: 2px solid var(--navy); }
.dnc-hubrow { display: grid; gap: 16px; padding: 36px 0; border-bottom: 1px solid var(--border); scroll-margin-top: 120px; }
@media (min-width: 1024px) { .dnc-hubrow { grid-template-columns: repeat(12, 1fr); gap: 32px; } .dnc-hubrow-head { grid-column: 1 / span 4; } .dnc-hubrow-body { grid-column: 5 / span 8; } }
.dnc-hubrow-n { font-size: 14px; font-weight: 800; letter-spacing: 0.16em; color: var(--gold); margin-bottom: 8px; }
.dnc-hubrow-head h2 { font-size: clamp(26px, 2.6vw, 32px); font-weight: 800; }
.dnc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dnc-prose .dnc-chips a { display: inline-block; padding: 7px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 2px; font-size: 14px; font-weight: 600; text-decoration: none; }
.dnc-prose .dnc-chips a:hover { background: var(--gold); border-color: var(--gold); color: var(--text); }

/* ---------- Guides and news listing templates ---------- */
.dnc-posts { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .dnc-posts { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .dnc-posts { grid-template-columns: repeat(3, 1fr); } }
.dnc-post-card { height: 100%; background: var(--white); border: 1px solid var(--border); border-bottom: 4px solid var(--navy); border-radius: var(--radius); overflow: hidden; }
.dnc-post-card .wp-block-post-featured-image { margin: 0; }
.dnc-post-card .wp-block-post-featured-image img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.dnc-post-body { padding: 22px; display: grid; gap: 10px; }
.dnc-post-body h2 { font-size: 21px; }
.dnc-post-body h2 a { text-decoration: none; }
.dnc-post-body .wp-block-post-excerpt { font-size: 16px; color: var(--muted); }
.dnc-post-list .wp-block-query-pagination.dnc-pager { margin-top: 32px; gap: 12px; font-weight: 600; }
.dnc-post-list .dnc-pager a { color: var(--heading); }
.dnc-read { min-width: 0; }

/* single column grids must not grow to a table's min-content width */
:where(.dnc-doc, .dnc-guide-grid, .dnc-ph-grid, .dnc-ph-guide-grid, .dnc-split, .dnc-contact-grid, .dnc-hubrow, .dnc-ph-fees-grid, .dnc-about-reach) { grid-template-columns: minmax(0, 1fr); }
/* long official URLs in the drafts must wrap, not widen the page */
:is(.dnc-prose, .dnc-ph, .dnc-glance-card, .dnc-news-item, .dnc-answer-box, .dnc-sources) a { overflow-wrap: anywhere; }
.dnc-ph-grid > *, .dnc-ph-guide-grid > *, .dnc-guide-grid > *, .dnc-doc > *, .dnc-split > *, .dnc-glance-grid > *, .dnc-news-list > *, .dnc-hubrow > *, .dnc-contact-grid > * { min-width: 0; }
.dnc-list, .dnc-check-list, .dnc-olist, .dnc-answer-list, .dnc-src-list, .dnc-toc-list { grid-template-columns: minmax(0, 1fr); }
:is(.dnc-prose, .dnc-ph, .dnc-glance-card, .dnc-news-item, .dnc-answer-box, .dnc-sources, .dnc-spoke) { overflow-wrap: break-word; }
/* Below 360px (narrower than the concept was drawn for; the concept's own CTA box is 2px too
   wide at 320): one country per row on country pages, and CTA buttons may wrap. */
@media (max-width: 359px) {
  .dnc-cty-others .dnc-cty-grid { grid-template-columns: minmax(0, 1fr); }
  .dnc-c1-cta-actions .wp-block-button__link, .dnc-c1-cta-actions .wp-block-button { white-space: normal; max-width: 100%; }
  .dnc-c1-cta-box { grid-template-columns: minmax(0, 1fr); }
}
/* Below 359px: long country names and contact values wrap instead of widening a tile. */
@media (max-width: 358px) {
  .dnc-cty-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dnc-cty-name, .dnc-cty-name a, .dnc-way, .dnc-way-v, .dnc-way-v a { overflow-wrap: anywhere; min-width: 0; }
  .dnc-cty-txt { min-width: 0; }
  .dnc-cty-others .dnc-cty-grid { grid-template-columns: minmax(0, 1fr); }
  .dnc-contact-grid, .dnc-ways { grid-template-columns: minmax(0, 1fr); }
  .dnc-way { padding-left: 64px; padding-right: 18px; }
}

/* ===== 60-sections.css ===== */
/* The typed section library (tools/sections.py). One band per draft section; each type has its
   own component, drawn in the home page's language: gold rules, navy panels, numbered marks,
   cards with the soft shadow. The container sets every measure; no text is capped. */

.dnc-x .dnc-sec-head { margin-bottom: 36px; }
@media (min-width: 1024px) { .dnc-x .dnc-sec-head { margin-bottom: 48px; } }
.dnc-x .dnc-sec-head h2 { font-size: clamp(28px, 3.4vw, 42px); }
.dnc-x-lead { font-size: 18px; color: var(--muted); }
.dnc-sec-navy .dnc-x-lead { color: rgb(255 255 255 / 0.82); }
.dnc-sec-navy .dnc-x-lead a, .dnc-sec-navy .dnc-x-foot a { color: var(--white); }
@media (min-width: 1024px) {
  .dnc-x .dnc-sec-head > .dnc-x-lead { grid-column: 8 / span 5; padding-bottom: 8px; }
}
.dnc-x-foot { margin-top: 28px; }
.dnc-x-foot > * + * { margin-top: 14px; }
.dnc-sec-navy .dnc-x-foot { color: rgb(255 255 255 / 0.85); }
.dnc-x .dnc-sec-head + .dnc-prose, .dnc-x-lead + * { margin-top: 0; }
.dnc-x-item-body > * + * { margin-top: 8px; }
.dnc-x-item-body h3 { font-size: 19px; font-weight: 700; line-height: 1.25; }

/* ---------- intro: the rest of the page introduction, set large ---------- */
.dnc-x-intro { padding-block: 56px; }
@media (min-width: 1024px) { .dnc-x-intro { padding-block: 72px; } }
.dnc-x-intro-body { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.6; color: var(--text); border-left: 5px solid var(--gold); padding-left: clamp(18px, 3vw, 32px); }
.dnc-x-intro-body > * + * { margin-top: 16px; }

/* ---------- answer: At a glance as tick cards beside the heading ---------- */
.dnc-x-answer-grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .dnc-x-answer-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; } .dnc-x-answer-head { grid-column: 1 / span 4; } .dnc-x-answer-body { grid-column: 5 / span 8; } }
.dnc-x-answer-head h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; }
.dnc-x-answer-head h2::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 18px; background: var(--gold); }
.dnc-x-answer-list { display: grid; gap: 14px; }
@media (min-width: 768px) { .dnc-x-answer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dnc-x-answer-list li { position: relative; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 20px 20px 56px; font-size: 16px; line-height: 1.55; box-shadow: var(--shadow-soft); overflow-wrap: anywhere; }
.dnc-x-answer-list li::before { content: ""; position: absolute; left: 18px; top: 20px; width: 24px; height: 24px; border-radius: 50%; background: var(--navy); }
.dnc-x-answer-list li::after { content: ""; position: absolute; left: 23px; top: 25px; width: 14px; height: 14px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-x-answer-list a { color: var(--heading); font-weight: 600; }

/* ---------- steps: a timeline, a row of step cards, or steps beside a photo ---------- */
.dnc-x-steps-list { counter-reset: none; }
.dnc-x-steps-list.is-line { display: grid; gap: 0; position: relative; }
.dnc-x-steps-list.is-line .dnc-x-step { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 20px; position: relative; padding-bottom: 26px; }
.dnc-x-steps-list.is-line .dnc-x-step:last-child { padding-bottom: 0; }
.dnc-x-steps-list.is-line .dnc-x-step::before { content: ""; position: absolute; left: 27px; top: 56px; bottom: 0; width: 2px; background: linear-gradient(var(--gold), rgb(227 161 56 / 0.25)); }
.dnc-x-steps-list.is-line .dnc-x-step:last-child::before { display: none; }
.dnc-x-step h3, .dnc-x-step p { overflow-wrap: anywhere; }
.dnc-x-steps-list.is-line .dnc-x-item-body { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 22px; box-shadow: var(--shadow-soft); }
.dnc-sec-white .dnc-x-steps-list.is-line .dnc-x-item-body { background: var(--surface); box-shadow: none; }
.dnc-x-n { width: 56px; height: 56px; display: grid; place-items: center; background: var(--navy); color: var(--gold); font-weight: 800; font-size: 18px; border-radius: var(--radius); border-bottom: 4px solid var(--gold); }
.dnc-x-steps-list.is-row { display: grid; gap: 16px; }
@media (min-width: 768px) { .dnc-x-steps-list.is-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-x-steps-list.is-row { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; } }
.dnc-x-steps-list.is-row .dnc-x-step { background: var(--white); border: 1px solid var(--border); padding: 24px 22px 26px; display: grid; gap: 16px; align-content: start; }
@media (min-width: 1024px) { .dnc-x-steps-list.is-row .dnc-x-step + .dnc-x-step { border-left: 0; } .dnc-x-steps-list.is-row .dnc-x-step:last-child { background: var(--navy); color: rgb(255 255 255 / 0.88); } .dnc-x-steps-list.is-row .dnc-x-step:last-child h3 { color: var(--white); } .dnc-x-steps-list.is-row .dnc-x-step:last-child .dnc-x-n { background: var(--gold); color: var(--navy); border-color: var(--white); } .dnc-x-steps-list.is-row .dnc-x-step:last-child a { color: var(--white); } }
.dnc-x-steps-list.is-row .dnc-x-n { width: 44px; height: 44px; font-size: 16px; }
.dnc-x-steps-grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .dnc-x-steps-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .dnc-x-steps-media { grid-column: 1 / span 5; } .dnc-x-steps-grid > .dnc-x-steps-list { grid-column: 6 / span 7; } .dnc-x-steps-media { align-self: start; } }
.dnc-x-steps-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 1023px) { .dnc-x-steps-media img { aspect-ratio: 16 / 9; } }
.dnc-x-steps-media { position: relative; }
.dnc-x-steps-media::after { content: ""; position: absolute; right: -12px; bottom: -12px; width: 40%; height: 40%; border-right: 5px solid var(--gold); border-bottom: 5px solid var(--gold); pointer-events: none; }
@media (max-width: 1023px) { .dnc-x-steps-media::after { right: -6px; bottom: -6px; } }

/* ---------- checks: numbered question cards ---------- */
.dnc-x-checks-grid { display: grid; gap: 18px; }
@media (min-width: 768px) { .dnc-x-checks-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
.dnc-x-check { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: start; background: var(--white); border: 1px solid var(--border); border-top: 4px solid var(--gold); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow-soft); }
.dnc-sec-white .dnc-x-check { background: var(--surface); box-shadow: none; }
.dnc-x-check .dnc-x-n { width: 44px; height: 44px; font-size: 15px; border-radius: 50%; border-bottom: 0; }

/* ---------- feats: bold lead items as an icon grid (navy band) ---------- */
.dnc-x-feats-grid { display: grid; gap: 18px; }
@media (min-width: 768px) { .dnc-x-feats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1024px) { .dnc-x-feats-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dnc-x-feat { position: relative; padding: 26px 24px 24px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--border); }
.dnc-x-feat::before { content: ""; display: block; width: 44px; height: 44px; margin-bottom: 16px; border-radius: var(--radius); background: var(--tint); -webkit-mask: none; }
.dnc-x-feat::after { content: ""; position: absolute; left: 34px; top: 36px; width: 24px; height: 24px; background: var(--heading); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.dnc-sec-navy .dnc-x-feat { background: rgb(255 255 255 / 0.06); border-color: rgb(255 255 255 / 0.14); color: rgb(255 255 255 / 0.86); }
.dnc-sec-navy .dnc-x-feat::before { background: rgb(227 161 56 / 0.16); }
.dnc-sec-navy .dnc-x-feat::after { background: var(--gold); }
.dnc-sec-navy .dnc-x-feat h3 { color: var(--white); }
.dnc-sec-navy .dnc-x-feat a { color: var(--white); }

/* ---------- docs: the document checklist card ---------- */
.dnc-x-docs-card { background: var(--white); border: 1px solid var(--border); border-left: 6px solid var(--navy); border-radius: var(--radius); padding: clamp(22px, 3vw, 36px); box-shadow: var(--shadow-card); }
.dnc-x-doclist { display: grid; gap: 4px; }
@media (min-width: 768px) { .dnc-x-doclist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; } }
.dnc-x-doclist li { position: relative; padding: 14px 0 14px 40px; border-bottom: 1px dashed var(--border); overflow-wrap: anywhere; }
.dnc-x-doclist li::before { content: ""; position: absolute; left: 0; top: 14px; width: 24px; height: 24px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z%22/%3E%3Cpath d=%22M14 2v6h6M9 13h6M9 17h6%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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z%22/%3E%3Cpath d=%22M14 2v6h6M9 13h6M9 17h6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-x-doclist a { color: var(--heading); font-weight: 600; }

/* ---------- warn: mistakes on a navy panel ---------- */
.dnc-x-warn-panel { background: var(--navy); border-radius: var(--radius); padding: clamp(22px, 3.2vw, 40px); border-top: 5px solid var(--gold); box-shadow: var(--shadow-card); }
.dnc-x-warnlist { display: grid; gap: 14px; }
@media (min-width: 768px) { .dnc-x-warnlist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 36px; } }
.dnc-x-warnlist li { position: relative; padding-left: 40px; color: rgb(255 255 255 / 0.9); overflow-wrap: anywhere; }
.dnc-x-warnlist li::before { content: ""; position: absolute; left: 0; top: 1px; width: 26px; height: 26px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%22/%3E%3Cpath d=%22M12 9v4M12 17h.01%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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z%22/%3E%3Cpath d=%22M12 9v4M12 17h.01%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-x-warnlist strong { color: var(--white); }
.dnc-x-warnlist a { color: var(--white); }

/* ---------- table: comparison tables use the site table, with a gold head rule ---------- */
.dnc-x-table .dnc-table { box-shadow: var(--shadow-soft); background: var(--white); }

/* ---------- fees: the fee table beside the pricing panel ---------- */
.dnc-x-fees-grid { display: grid; gap: 24px; }
@media (min-width: 1100px) { .dnc-x-fees-grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 32px; align-items: start; } }
.dnc-x-fees-table .dnc-table { background: var(--white); box-shadow: var(--shadow-soft); }
.dnc-x-fees-aside { background: var(--navy); color: rgb(255 255 255 / 0.88); border-top: 5px solid var(--gold); border-radius: var(--radius); padding: 26px 26px 24px; display: grid; gap: 14px; font-size: 16px; }
.dnc-x-fees-aside .dnc-label { color: var(--gold); }
.dnc-x-fees-aside a { color: var(--white); }
.dnc-x-fees-aside .dnc-src { color: rgb(255 255 255 / 0.7); }
@media (min-width: 1100px) { .dnc-x-fees-aside { position: sticky; top: 120px; } }

/* ---------- tiles: bold lead paragraphs as a bento ---------- */
.dnc-x-tiles-grid { display: grid; gap: 18px; }
@media (min-width: 768px) { .dnc-x-tiles-grid.is-2, .dnc-x-tiles-grid.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1024px) { .dnc-x-tiles-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dnc-x-tile { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px 26px; box-shadow: var(--shadow-soft); display: grid; gap: 12px; align-content: start; }
.dnc-x-tile h3 { font-size: 20px; font-weight: 700; }
.dnc-x-tile h3::before { content: ""; display: block; width: 36px; height: 4px; margin-bottom: 16px; background: var(--gold); }
.dnc-sec-white .dnc-x-tile:not(.is-navy) { background: var(--surface); box-shadow: none; }
.dnc-x-tile.is-navy { background: var(--navy); border-color: var(--navy); color: rgb(255 255 255 / 0.88); }
.dnc-x-tile.is-navy h3 { color: var(--white); }
.dnc-x-tile.is-navy a { color: var(--white); }
.dnc-x-tile.is-plain { background: transparent; border: 0; box-shadow: none; padding: 0; }

/* ---------- panels: ### subsections side by side ---------- */
.dnc-x-panels-grid { display: grid; gap: 20px; }
@media (min-width: 900px) { .dnc-x-panels-grid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-x-panels-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dnc-x-panel { background: var(--white); border: 1px solid var(--border); border-top: 4px solid var(--navy); border-radius: var(--radius); padding: clamp(22px, 2.6vw, 32px); min-width: 0; }
.dnc-sec-white .dnc-x-panel { background: var(--surface); }
.dnc-x-panel h3 { margin-top: 0; font-size: 21px; }

/* ---------- ticks: a two column tick list card ---------- */
.dnc-x-ticks-card { background: var(--white); border-radius: var(--radius); padding: clamp(22px, 3vw, 36px); border: 1px solid var(--border); }
.dnc-sec-white .dnc-x-ticks-card { background: var(--surface); }
.dnc-x-ticklist { display: grid; gap: 14px; }
@media (min-width: 768px) { .dnc-x-ticklist.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 36px; } }
.dnc-x-ticklist li { position: relative; padding-left: 34px; overflow-wrap: anywhere; }
.dnc-x-ticklist li::before { content: ""; position: absolute; left: 0; top: 3px; width: 22px; height: 22px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m8 12 3 3 5-6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-x-ticklist a { color: var(--heading); font-weight: 600; }

/* ---------- chips ---------- */
.dnc-x-chiplist { display: flex; flex-wrap: wrap; gap: 10px; }
.dnc-x-chiplist li { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 14px; font-weight: 600; font-size: 15px; }

/* ---------- callout: one short paragraph ---------- */
.dnc-x-callout { padding-block: 56px; }
@media (min-width: 1024px) { .dnc-x-callout { padding-block: 72px; } }
.dnc-x-callout-box { position: relative; background: var(--white); border: 1px solid var(--border); border-left: 6px solid var(--gold); border-radius: var(--radius); padding: clamp(24px, 3.4vw, 44px); box-shadow: var(--shadow-soft); }
.dnc-sec-white .dnc-x-callout-box { background: var(--tint); border-color: rgb(227 161 56 / 0.35); border-left-color: var(--gold); box-shadow: none; }
.dnc-x-callout-box h2 { font-size: clamp(24px, 2.6vw, 32px); font-weight: 800; }
.dnc-x-callout-box p { font-size: clamp(17px, 1.4vw, 19px); }
.dnc-x-callout-q { font-size: clamp(19px, 1.8vw, 23px); font-weight: 600; color: var(--heading); }

/* ---------- split: text beside a photo ---------- */
.dnc-x-split { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) {
  .dnc-x-split { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; }
  .dnc-x-split-copy { grid-column: 1 / span 7; }
  .dnc-x-split-media { grid-column: 9 / span 4; }
  .dnc-x-split.is-rev .dnc-x-split-copy { grid-column: 6 / span 7; grid-row: 1; }
  .dnc-x-split.is-rev .dnc-x-split-media { grid-column: 1 / span 4; grid-row: 1; }
}
.dnc-x-split-copy h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; }
.dnc-x-split-copy h2::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 18px; background: var(--gold); }
.dnc-x-split-media { position: relative; }
.dnc-x-split-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 1023px) { .dnc-x-split-media img { aspect-ratio: 16 / 10; } }
.dnc-x-split-media::before { content: ""; position: absolute; left: -12px; top: -12px; width: 42%; height: 42%; border-left: 5px solid var(--gold); border-top: 5px solid var(--gold); pointer-events: none; }
@media (max-width: 1023px) { .dnc-x-split-media::before { left: -6px; top: -6px; } }

/* ---------- numbered: heading and number beside the text (dnc-split in 50-inner.css) ---------- */
.dnc-x-numbered .dnc-split-head h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 800; }
.dnc-x-numbered .dnc-split-body { background: var(--white); border: 1px solid var(--border); border-left: 5px solid var(--gold); border-radius: var(--radius); padding: clamp(22px, 3vw, 34px); }
.dnc-sec-white.dnc-x-numbered .dnc-split-body { background: var(--surface); }

/* ---------- topics: short prose sections as cards in one band ---------- */
.dnc-x-topics-grid { display: grid; gap: 18px; }
@media (min-width: 768px) { .dnc-x-topics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1024px) { .dnc-x-topics-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dnc-x-topic { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px 26px 26px; position: relative; box-shadow: var(--shadow-soft); min-width: 0; scroll-margin-top: 110px; }
.dnc-sec-white .dnc-x-topic { background: var(--surface); box-shadow: none; }
.dnc-x-topic::before { content: ""; position: absolute; left: 0; top: 0; width: 64px; height: 4px; background: var(--gold); }
.dnc-x-topic h2.dnc-x-topic-h { font-size: 22px; font-weight: 700; line-height: 1.2; }
.dnc-x-topics-grid.is-2 .dnc-x-topic:first-child { background: var(--navy); border-color: var(--navy); color: rgb(255 255 255 / 0.88); }
.dnc-x-topics-grid.is-2 .dnc-x-topic:first-child h2 { color: var(--white); }
.dnc-x-topics-grid.is-2 .dnc-x-topic:first-child a { color: var(--white); }

/* ---------- guide article: the typed components inside a reading column ---------- */
.dnc-art-grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .dnc-art-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; } .dnc-art-grid > .dnc-toc { grid-column: 1 / span 3; } .dnc-art-grid > .dnc-art { grid-column: 4 / span 9; } }
.dnc-art { min-width: 0; }
.dnc-art > * + * { margin-top: 48px; }
.dnc-art-part { scroll-margin-top: 110px; }
.dnc-art-part > * + * { margin-top: 18px; }
.dnc-art-part > h2 { font-size: clamp(26px, 2.8vw, 34px); font-weight: 800; }
.dnc-art-part > .dnc-eyebrow { margin-bottom: -6px; }
.dnc-art-intro { font-size: 19px; border-left: 5px solid var(--gold); padding-left: 24px; }
.dnc-art-photo img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; border-radius: var(--radius); }
.dnc-art .dnc-x-tiles-grid.is-3, .dnc-art .dnc-x-feats-grid.is-3, .dnc-art .dnc-x-panels-grid.is-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.dnc-art .dnc-x-steps-list.is-row { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.dnc-art .dnc-x-steps-grid { grid-template-columns: 1fr; }
.dnc-art .dnc-x-steps-grid > * { grid-column: auto; }
.dnc-art .dnc-x-steps-media { position: relative; top: auto; }
.dnc-art .dnc-x-steps-media img { aspect-ratio: 16 / 8; }
.dnc-art .dnc-x-fees-grid { grid-template-columns: 1fr; }
.dnc-art .dnc-x-fees-aside { position: static; }
.dnc-art .dnc-x-feat, .dnc-art .dnc-x-tile, .dnc-art .dnc-x-check { box-shadow: none; }
.dnc-art .dnc-x-feat { background: var(--surface); }
.dnc-art .dnc-x-tile:not(.is-navy) { background: var(--surface); }
.dnc-art .dnc-x-ticks-card, .dnc-art .dnc-x-panel { background: var(--surface); }
.dnc-art .dnc-x-steps-list.is-line .dnc-x-item-body { background: var(--surface); box-shadow: none; }
.dnc-art .dnc-x-check { background: var(--surface); }
.dnc-art-card { background: var(--surface); border-radius: var(--radius); border-top: 4px solid var(--navy); padding: clamp(22px, 3vw, 34px); }
.dnc-art-card > h2 { font-size: clamp(24px, 2.4vw, 30px); }

/* ---------- services index: each hub row's facts (Use it when, We need, You get back, From) ---------- */
.dnc-facts { display: grid; gap: 12px; }
@media (min-width: 768px) { .dnc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
.dnc-fact { background: var(--white); border: 1px solid var(--border); border-top: 3px solid var(--gold); border-radius: var(--radius); padding: 16px 18px; display: grid; gap: 6px; align-content: start; }
.dnc-sec-white .dnc-fact { background: var(--surface); }
.dnc-fact-k { font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--heading); }
.dnc-fact p:not(.dnc-fact-k) { font-size: 16px; }
.dnc-x-fees-grid > *, .dnc-x-steps-grid > *, .dnc-x-answer-grid > *, .dnc-art-grid > * { min-width: 0; }

/* ===== 70-tree.css ===== */
/* The site tree blocks (theme blocks/*): breadcrumbs, where a page sits in its cluster, more in
   this cluster, guide cards, the Guides hub and the blog post template. Plus the heroes added in
   the upgrade: service with its answer, sub-service with its parent, Guides hub. */

/* ---------- breadcrumbs (dnc/breadcrumbs) ---------- */
.dnc-bc { margin-bottom: 18px; font-size: 14px; color: var(--muted); }
.dnc-bc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; row-gap: 4px; }
.dnc-bc li { display: inline-flex; align-items: center; min-width: 0; }
.dnc-bc li + li::before { content: ""; width: 12px; height: 12px; margin: 0 8px; flex: none; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m6 9 6 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m6 9 6 6 6-6%22/%3E%3C/svg%3E") center / contain no-repeat; transform: rotate(-90deg); }
.dnc-bc a { color: inherit; font-weight: 600; text-decoration: none; }
.dnc-bc a:hover { color: var(--gold); }
.dnc-bc [aria-current] { color: var(--heading); font-weight: 600; overflow-wrap: anywhere; }
.dnc-on-dark .dnc-bc { color: rgb(255 255 255 / 0.7); }
.dnc-on-dark .dnc-bc [aria-current] { color: var(--white); }

/* ---------- service hero: the short answer beside the title ---------- */
.dnc-ph-svc-grid { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1100px) { .dnc-ph-svc-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .dnc-ph-svc-grid > .dnc-ph-copy { grid-column: 1 / span 7; } .dnc-ph-svc-grid > .dnc-ph-answer { grid-column: 8 / span 5; } }
.dnc-ph-answer-dark { background: var(--navy-mid); box-shadow: none; border: 1px solid rgb(255 255 255 / 0.12); border-top: 5px solid var(--gold); }
.dnc-ph-answer .dnc-answer-list { font-size: 15px; }
.dnc-ph-answer .dnc-src { color: rgb(255 255 255 / 0.7); font-size: 13px; }

/* ---------- sub-service hero: parent card, title, photo ---------- */
.dnc-ph-sub { background: var(--surface); border-bottom: 1px solid var(--border); }
.dnc-ph-sub .dnc-ph-lead { color: var(--muted); }
.dnc-ph-sub-grid { display: grid; gap: 36px; align-items: center; }
@media (min-width: 1024px) { .dnc-ph-sub-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; } .dnc-ph-sub-grid > .dnc-ph-copy { grid-column: 1 / span 7; } .dnc-ph-sub-media { grid-column: 8 / span 5; } }
.dnc-ph-parent { display: inline-grid; gap: 2px; margin-bottom: 22px; padding: 12px 18px 12px 16px; background: var(--white); border: 1px solid var(--border); border-left: 5px solid var(--gold); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.dnc-ph-parent-a { font-weight: 700; font-size: 17px; }
.dnc-ph-parent-a a { color: var(--heading); text-decoration: none; }
.dnc-ph-parent-a a:hover { color: var(--gold); }
.dnc-ph-sub-media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow-card); border-bottom: 6px solid var(--gold); }

/* ---------- Guides hub hero ---------- */
.dnc-ph-gx-grid { display: grid; gap: 32px; align-items: end; }
@media (min-width: 1024px) { .dnc-ph-gx-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .dnc-ph-gx-grid > .dnc-ph-copy { grid-column: 1 / span 8; } .dnc-gx-stats { grid-column: 10 / span 3; } }
.dnc-gx-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dnc-gx-stat { background: var(--navy); border-radius: var(--radius); border-bottom: 4px solid var(--gold); padding: 18px 18px 16px; display: grid; gap: 4px; }
.dnc-gx-num { font-size: 40px; font-weight: 800; line-height: 1; color: var(--gold); }
.dnc-gx-stat .dnc-label { color: rgb(255 255 255 / 0.8); }

/* ---------- tree cards (dnc_node_card) ---------- */
.dnc-tc { position: relative; display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: box-shadow var(--ease), transform var(--ease), border-color var(--ease); min-width: 0; }
.dnc-tc:hover { box-shadow: var(--shadow-card); transform: translateY(-2px); border-color: #D5DCE3; }
.dnc-tc-media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface); }
.dnc-tc-media img { width: 100%; height: 100%; object-fit: cover; }
.dnc-tc-body { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 22px; flex: 1; }
.dnc-tc-tag { align-self: flex-start; font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; background: var(--tint); color: var(--heading); padding: 4px 10px; border-radius: 2px; }
.dnc-tc-title { font-size: 20px; line-height: 1.2; }
.dnc-tc-title a { color: var(--heading); text-decoration: none; }
.dnc-tc-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dnc-tc-sum { font-size: 15px; color: var(--muted); }
.dnc-tc-more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: var(--heading); }
.dnc-tc-more::after { content: ""; width: 16px; height: 16px; 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=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; transition: transform var(--ease); }
.dnc-tc:hover .dnc-tc-more::after { transform: translateX(4px); }
.dnc-sec-white .dnc-tc:not(.has-media) { background: var(--surface); }

/* ---------- cluster-nav: a hub's pages, or where a page sits ---------- */
.dnc-cn-grid { display: grid; gap: 18px; }
@media (min-width: 640px) { .dnc-cn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-cn-grid:not(.dnc-cn-grid-2) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
.dnc-cn-card { border-left: 4px solid var(--navy); }
.dnc-cn-card.is-guide { border-left-color: var(--gold); }
.dnc-cn-subs { position: relative; z-index: 2; list-style: none; margin: 4px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--border); display: grid; gap: 6px; }
.dnc-cn-subs a { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--heading); text-decoration: none; }
.dnc-cn-subs a::before { content: ""; width: 14px; height: 14px; flex: none; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14M13 6l6 6-6 6%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-cn-subs a:hover { text-decoration: underline; text-decoration-color: var(--gold); }
.dnc-cn-countries { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.dnc-cn-cty { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 10px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); min-width: 0; transition: border-color var(--ease), box-shadow var(--ease); }
.dnc-sec-white .dnc-cn-cty { background: var(--surface); }
.dnc-cn-cty:hover { border-color: var(--gold); box-shadow: var(--shadow-soft); }
.dnc-cn-code { flex: none; width: 44px; height: 36px; display: grid; place-items: center; background: var(--navy); color: var(--gold); font-weight: 800; font-size: 13px; letter-spacing: 0.04em; border-radius: 2px; }
.dnc-cn-cty a { font-weight: 700; color: var(--heading); text-decoration: none; overflow-wrap: anywhere; }
.dnc-cn-cty a::after { content: ""; position: absolute; inset: 0; }
.dnc-cn-block + .dnc-cn-rel { margin-top: 36px; }
.dnc-cn-block > .dnc-label { margin-bottom: 14px; }
.dnc-cn-rel { display: grid; gap: 20px; }
@media (min-width: 900px) { .dnc-cn-rel { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px; align-items: start; } }
.dnc-cn-parent { background: var(--navy); color: rgb(255 255 255 / 0.86); border-radius: var(--radius); border-top: 5px solid var(--gold); padding: 24px 24px 22px; display: grid; gap: 10px; }
.dnc-cn-parent .dnc-label { color: var(--gold); }
.dnc-cn-parent-a { font-size: 22px; font-weight: 800; line-height: 1.2; }
.dnc-cn-parent-a a { color: var(--white); text-decoration: none; }
.dnc-cn-parent-a a:hover { color: var(--gold); }
.dnc-cn-parent-s { font-size: 15px; }
.dnc-cn-parent .dnc-go a { color: var(--white); }
.dnc-cn-sibs > .dnc-label { margin-bottom: 12px; }
.dnc-cn-siblist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.dnc-cn-siblist a { position: relative; display: flex; align-items: center; gap: 10px; height: 100%; padding: 12px 14px; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius); font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--heading); text-decoration: none; transition: border-color var(--ease); }
.dnc-sec-white .dnc-cn-siblist a { background: var(--surface); }
.dnc-cn-siblist a::before { content: ""; width: 8px; height: 8px; flex: none; border-radius: 2px; background: var(--navy); }
.dnc-cn-siblist .is-guide a::before { background: var(--gold); }
.dnc-cn-siblist .is-all a { font-weight: 800; }
.dnc-cn-siblist a:hover { border-color: var(--gold); }
.dnc-cn-chips { margin-top: 18px; }
.dnc-cn-chips .is-l3 a { font-weight: 500; border-style: dashed; }

/* ---------- cluster-more: the foot of every inner page ---------- */
.dnc-cm-band { padding-block: 64px; }
@media (min-width: 1024px) { .dnc-cm-band { padding-block: 80px; } }
.dnc-cm { display: grid; gap: 24px; }
@media (min-width: 900px) { .dnc-cm:has(> .dnc-cm-hub) { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px; align-items: start; } }
.dnc-cm-hub { background: var(--white); border: 1px solid var(--border); border-left: 5px solid var(--gold); border-radius: var(--radius); padding: 22px 22px 20px; display: grid; gap: 8px; }
.dnc-sec-white .dnc-cm-hub { background: var(--surface); }
.dnc-cm-hub-a { font-size: 22px; font-weight: 800; line-height: 1.2; }
.dnc-cm-hub-a a { color: var(--heading); text-decoration: none; }
.dnc-cm-hub-a a:hover { color: var(--gold); }
.dnc-cm-hub p:not(.dnc-label):not(.dnc-cm-hub-a) { font-size: 15px; color: var(--muted); }
.dnc-cm-lists > .dnc-label { margin-bottom: 10px; }
.dnc-cm-lists > ul + .dnc-label { margin-top: 22px; }
.dnc-cm-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.dnc-cm-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; background: var(--white); border: 1px solid #D5DCE3; border-radius: var(--radius); font-weight: 600; font-size: 15px; line-height: 1.25; color: var(--heading); text-decoration: none; transition: border-color var(--ease), background-color var(--ease); }
.dnc-sec-white .dnc-cm-chips a { background: var(--surface); }
.dnc-cm-chips a:hover { border-color: var(--gold); background: var(--tint); }
.dnc-cm-chip.is-l3 a { border-style: dashed; font-weight: 500; }
.dnc-cm-chips.is-guides a { border-left: 4px solid var(--gold); }
.dnc-cm-chip.is-hub a { min-height: 48px; padding: 10px 18px; font-size: 16px; border-left: 4px solid var(--navy); }

/* ---------- latest guides and article cards ---------- */
.dnc-lg-grid { display: grid; gap: 20px; }
@media (min-width: 640px) { .dnc-lg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .dnc-lg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.dnc-gcard .dnc-tc-body { padding: 22px 24px 24px; }
.dnc-lg .wp-block-buttons.dnc-lg-all, .dnc-pl .wp-block-buttons.dnc-lg-all { display: flex; margin-top: 32px; }

/* ---------- Guides hub (dnc/guides) ---------- */
.dnc-gh-chips { list-style: none; margin: 0 0 40px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.dnc-gh-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 2px solid var(--navy); border-radius: var(--radius); font-weight: 700; font-size: 15px; color: var(--navy); text-decoration: none; background: var(--white); transition: background-color var(--ease), color var(--ease); }
.dnc-gh-chip span { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 12px; background: var(--tint); color: var(--heading); font-size: 13px; }
.dnc-gh-chip:hover, .dnc-gh-chip.is-active { background: var(--navy); color: var(--white); }
.dnc-gh-chip.is-active span, .dnc-gh-chip:hover span { background: var(--gold); color: var(--navy); }
.dnc-gh-group + .dnc-gh-group { margin-top: 56px; }
.dnc-gh-ghead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 24px; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 2px solid var(--border); }
.dnc-gh-ghead h3 { font-size: clamp(22px, 2.4vw, 28px); font-weight: 800; }
.dnc-gh-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.dnc-gh { scroll-margin-top: 100px; }

/* ---------- blog post template ---------- */
.dnc-post-hero .dnc-pm { margin-top: 18px; }
.dnc-pm { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 15px; color: var(--muted); }
.dnc-pm span { display: inline-flex; align-items: center; gap: 8px; }
.dnc-pm span::before { content: ""; width: 16px; height: 16px; background: var(--gold); -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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 6v6l4 2%22/%3E%3C/svg%3E") center / contain no-repeat; }
.dnc-pm .dnc-pm-date::before { -webkit-mask-image: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z%22/%3E%3Cpath d=%22M14 2v6h6M9 13h6M9 17h6%22/%3E%3C/svg%3E"); mask-image: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z%22/%3E%3Cpath d=%22M14 2v6h6M9 13h6M9 17h6%22/%3E%3C/svg%3E"); }
.dnc-pm .dnc-pm-by::before { -webkit-mask-image: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%226%22/%3E%3Cpath d=%22M15.5 13 17 22l-5-3-5 3 1.5-9%22/%3E%3C/svg%3E"); mask-image: 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 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%226%22/%3E%3Cpath d=%22M15.5 13 17 22l-5-3-5 3 1.5-9%22/%3E%3C/svg%3E"); }
.dnc-post-grid { display: grid; gap: 32px; }
@media (min-width: 1024px) { .dnc-post-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; } .dnc-post-grid > .dnc-post-side { grid-column: 1 / span 3; } .dnc-post-grid > .dnc-post-main { grid-column: 4 / span 9; } }
.dnc-post-side { align-self: start; }
@media (min-width: 1024px) { .dnc-post-side { position: sticky; top: 120px; } }
.dnc-post-main { min-width: 0; }
.dnc-post-main .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; border-radius: var(--radius); }
.dnc-post-main .wp-block-post-featured-image { margin: 0 0 32px; }
.dnc-toc2 { background: var(--surface); border-radius: var(--radius); border-top: 4px solid var(--navy); padding: 22px 22px 18px; }
.dnc-toc2 .dnc-label { margin-bottom: 10px; }
.dnc-toc2 ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dnc-toc2 a { display: block; padding: 7px 0 7px 12px; border-left: 2px solid var(--border); font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; color: var(--heading); }
.dnc-toc2 a:hover { border-left-color: var(--gold); }
.dnc-post-main .dnc-prose h2 { scroll-margin-top: 110px; }
.dnc-post-side .dnc-contact-card { margin-top: 20px; }

/* ---------- editor: server rendered previews are not clickable ---------- */
.dnc-ssr a { pointer-events: none; }

/* one sub-service: a wide card, photo beside the text */
.dnc-cn-grid-2:has(> .dnc-tc:only-child) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) {
  .dnc-cn-grid-2 > .dnc-tc.has-media:only-child { flex-direction: row; }
  .dnc-cn-grid-2 > .dnc-tc.has-media:only-child .dnc-tc-media { flex: 0 0 40%; aspect-ratio: auto; min-height: 220px; }
  .dnc-cn-grid-2 > .dnc-tc.has-media:only-child .dnc-tc-body { justify-content: center; padding: 28px 32px; }
}
/* a page with no siblings and no sub-services: the parent card runs the full width */
.dnc-cn-rel > .dnc-cn-parent:only-child { grid-column: 1 / -1; }
@media (min-width: 900px) { .dnc-cn-rel > .dnc-cn-parent:only-child { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: 32px; align-items: center; } .dnc-cn-rel > .dnc-cn-parent:only-child > .dnc-label { grid-column: 1 / -1; } .dnc-cn-rel > .dnc-cn-parent:only-child > .dnc-cn-parent-s { grid-column: 2; grid-row: 2 / span 2; } }
/* a cluster with one guide: one wide card, photo beside the text */
.dnc-lg-grid:has(> .dnc-tc:only-child) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) {
  .dnc-lg-grid > .dnc-tc.has-media:only-child { flex-direction: row; }
  .dnc-lg-grid > .dnc-tc.has-media:only-child .dnc-tc-media { flex: 0 0 38%; aspect-ratio: auto; min-height: 220px; }
  .dnc-lg-grid > .dnc-tc.has-media:only-child .dnc-tc-body { justify-content: center; padding: 28px 32px; }
}
/* the post card rule .dnc-post-body h2 (listing cards) must not shrink the article headings */
.dnc-sec.dnc-post-body .dnc-prose h2 { font-size: clamp(26px, 2.8vw, 34px); font-weight: 800; }
.dnc-sec.dnc-post-body .dnc-prose > h2:not(:first-child) { margin-top: 44px; }
