/* ============================================================
   NOSTRA VERIDICUS — Base Stylesheet
   Audience: Researchers & Partners
   Tone: Authoritative · Precise · Trustworthy
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,600;1,8..60,400&family=DM+Mono:wght@400;500&display=swap');

/* ------------------------------------------------------------
   1. Design Tokens
   ------------------------------------------------------------ */
:root {
  --color-bg:            #f5f4f0;
  --color-bg-alt:        #eceae4;
  --color-surface:       #ffffff;
  --color-border:        #d4d0c8;
  --color-border-strong: #b0a99a;

  --color-accent:        #1a4a5c;
  --color-accent-light:  #256b84;
  --color-accent-subtle: #e6f0f4;

  --color-nav:           #021d3b;
  --color-footer:        #021d3b;

  --color-ink:           #1c1c1a;
  --color-ink-secondary: #4a4843;
  --color-ink-muted:     #8a8680;

  --font-display: 'EB Garamond', 'Georgia', serif;
  --font-body:    'Source Serif 4', 'Georgia', serif;
  --font-ui:      'DM Mono', 'Courier New', monospace;

  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.375rem;
  --text-2xl:  1.75rem;
  --text-3xl:  2.5rem;
  --text-4xl:  3.5rem;
  --text-5xl:  4.75rem;

  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;

  --max-width-content: 1200px;
  --max-width-narrow:  760px;
  --nav-height:        68px;

  --border:      1px solid var(--color-border);
  --shadow-sm:   0 1px 4px rgba(26,74,92,0.07);
  --shadow-md:   0 4px 20px rgba(26,74,92,0.10);
  --shadow-lg:   0 12px 48px rgba(26,74,92,0.13);

  --transition-fast:   150ms ease;
  --transition-normal: 260ms ease;

  --z-nav:   200;
  --z-modal: 300;
}

/* ------------------------------------------------------------
   2. Reset
   ------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  background-color: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.75;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

/* Prevent scroll when mobile menu open */
body.nav-open { overflow: hidden; }

img, video, svg { display: block; max-width: 100%; height: auto; }

a {
  color: var(--color-accent);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

a:hover { color: var(--color-accent-light); text-decoration-color: currentColor; }

ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }
input, textarea, select { font: inherit; color: inherit; }

/* ------------------------------------------------------------
   3. Typography
   ------------------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  color: var(--color-ink);
}

h1 { font-size: var(--text-5xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

p { max-width: 68ch; }

.section-intro2 { max-width: 100%; }
.text-center { text-align: center; }
.text-center p { margin-inline: auto; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-3);
}

.eyebrow::before {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--color-accent);
  flex-shrink: 0;
}

.section-title {
  font-size: clamp(1.75rem, 3vw, var(--text-3xl));
  font-weight: 600;
  margin-bottom: var(--space-6);

}

.section-title1 {
  font-size: clamp(1.75rem, 2vw, var(--text-3xl));
  font-weight: 500;
  margin-bottom: var(--space-6);
}

.section-title2 {
  font-size: clamp(1.75rem, 1vw, var(--text-3xl));
  font-weight: 600;
  margin-bottom: var(--space-4);

}

.section-intro {
  font-size: var(--text-lg);
  color: var(--color-ink-secondary);
  line-height: 1.8;
  max-width: 60ch;
}

.container .section-intro {
  max-width: 100%;
}
.text-center {
  max-width: 600px;  /* remove or increase this */
  margin: 0 auto;
}

.section-header { margin-bottom: var(--space-12); }

/* ------------------------------------------------------------
   4. Layout
   ------------------------------------------------------------ */
.container {
  width: 100%;
  max-width: var(--max-width-content);
  margin-inline: auto;
  padding-inline: var(--space-8);
}

.container--narrow { max-width: var(--max-width-narrow); }

.page-section {
  padding-top: var(--space-24);
  padding-bottom: var(--space-24);
}

.page-section2 {
  padding-top: var(--space-18);
  padding-bottom: var(--space-10);
}

.page-section--dark.page-section--compact {
  padding-top: var(--space-10);   /* adjust to taste */
  padding-bottom: var(--space-10);
}

.page-section--dark.page-section--compact .pull-quote__text {
  font-size: clamp(1rem, 2vw, 1.35rem);
}

.page-section--alt { background: var(--color-bg-alt); }

.page-section--dark {
  background: var(--color-nav);
  color: rgba(255,255,255,0.9);
}

.page-section--dark {
  background: var(--color-nav);
  color: rgba(255,255,255,0.9);
}

.page-section1 {
  padding-top: var(--space-23);
  padding-bottom: var(--space-24);
}
.page-section3 {
  padding-top: var(--space-23);
  padding-bottom: var(--space-23);
}
.page-section--sm {
  padding-top: var(--space-23-5);
  padding-bottom: var(--space-23-5);
}

.page-section--mid {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.page-section1--alt { background: var(--color-bg-alt); }

.page-section1--dark {
  background: var(--color-nav);
  color: rgba(255,255,255,0.9);
}


/* ------------------------------------------------------------
   5. Navigation
   ------------------------------------------------------------ */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  width: 100%;
  height: var(--nav-height);
  z-index: var(--z-nav);
  background: var(--color-nav);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  transition: box-shadow var(--transition-normal);
  overflow: visible;
}

.site-nav.scrolled { box-shadow: var(--shadow-sm); }

.site-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: var(--max-width-content);
  margin-inline: auto;
  padding-inline: var(--space-8);
  gap: var(--space-6);
	 overflow: visible;
}

/* Logo */
.site-nav__logo {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  flex-shrink: 0;
}

.site-nav__logo-img {
  height: 36px;
  width: auto;
}

.site-nav__logo-text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.01em;
  line-height: 1;
}

/* Hide logo text when image loads */
.site-nav__logo-img + .site-nav__logo-text { display: none; }
/* Show text if image broken */
.site-nav__logo-img[src=""],
.site-nav__logo-img:not([src]) { display: none; }

/* Desktop links */
.site-nav__links {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex: 1;
  justify-content: flex-end;
  list-style: none;
  padding: 0;
  margin: 0;
}



.site-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition-fast);
}

/* Dropdown container */
.site-nav__has-dropdown {
  position: relative;
  list-style: none;
}

/* Dropdown panel */
.site-nav__dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: var(--color-nav);
  border-top: 2px solid var(--color-accent-light);
  border-left: 1px solid rgba(255,255,255,0.1);
  border-right: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  list-style: none;
  margin: 0;
  padding: var(--space-2) 0;
  z-index: 9999;
}

/* Show states */
.site-nav__has-dropdown:hover > .site-nav__dropdown,
.site-nav__has-dropdown.open > .site-nav__dropdown {
  display: block;
}

/* Dropdown links — match your existing nav link style */
.site-nav__dropdown-link {
  display: block;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-ui);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition-fast), background var(--transition-fast);
}

.site-nav__dropdown-link:hover {
  color: #ffffff;
  background: rgba(255,255,255,0.08);
  text-decoration: none;
}

/* Chevron rotation when open */
.site-nav__chevron {
  font-size: 11px;
  margin-left: 4px;
  display: inline-block;
  transition: transform var(--transition-normal);
}

.site-nav__has-dropdown.open .site-nav__chevron,
.site-nav__has-dropdown:hover .site-nav__chevron {
  transform: rotate(180deg);
}

/* Hide dropdowns on mobile — flat list in hamburger menu handles it */
@media (max-width: 768px) {
  .site-nav__has-dropdown > .site-nav__dropdown {
    display: none !important;
  }
}

.site-nav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: var(--space-3);
  right: var(--space-3);
  height: 1px;
  background: rgba(255,255,255,0.6);
  transform: scaleX(0);
  transition: transform var(--transition-normal);
  transform-origin: left;
}

.site-nav__link:hover,
.site-nav__link[aria-current="page"] { color: #ffffff; text-decoration: none; }

.site-nav__link:hover::after,
.site-nav__link[aria-current="page"]::after { transform: scaleX(1); }

/* Hamburger */
.site-nav__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: var(--space-2);
  color: rgba(255,255,255,0.9);
  flex-shrink: 0;
}

.site-nav__hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform var(--transition-normal), opacity var(--transition-normal);
}

.site-nav__hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-nav__hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-nav__hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.site-nav__mobile-menu {
  display: none;
  position: fixed;
  top: var(--nav-height);
  left: 0; right: 0; bottom: 0;
  background: var(--color-nav);
  padding: var(--space-8);
  overflow-y: auto;
  z-index: calc(var(--z-nav) - 1);
  transform: translateX(100%);
  transition: transform var(--transition-normal);
}

.site-nav__mobile-menu.open { transform: translateX(0); }

.site-nav__mobile-links { list-style: none; padding: 0; margin: 0 0 var(--space-8); }

.site-nav__mobile-link {
  display: block;
  padding: var(--space-4) 0;
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  color: rgba(255,255,255,0.9);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-nav__mobile-link:hover { color: #ffffff; text-decoration: none; }

.site-nav__mobile-social {
  display: flex;
  gap: var(--space-4);
  padding-top: var(--space-6);
}

.mobile-social-link {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.mobile-social-link:hover { color: #ffffff; }

/* ------------------------------------------------------------
   6. Hero — full-width image
   ------------------------------------------------------------ */
.hero-fullwidth {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #1a1008;
}

.hero-fullwidth__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.hero-fullwidth__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.28) 0%,
    rgba(0,0,0,0.18) 40%,
    rgba(0,0,0,0.45) 100%
  );
}

.hero-fullwidth__content {
  position: relative;
  z-index: 2;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-inline: var(--space-6);
}

.hero-fullwidth__title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #ffffff;
  line-height: 1;
  text-shadow: 0 2px 12px rgba(0,0,0,0.55), 0 6px 40px rgba(0,0,0,0.35);
}

.hero-fullwidth__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 18px;
}

.hero-fullwidth__divider-line { width: 44px; height: 1px; background: rgba(255,255,255,0.45); }
.hero-fullwidth__divider-dot  { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,0.6); }

.hero-fullwidth__tagline {
  font-family: var(--font-display);
  font-size: clamp(0.9rem, 1.5vw, 1.0625rem);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.82);
  text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}

/* ------------------------------------------------------------
   7. Feature Cards
   ------------------------------------------------------------ */
.card-grid {
  display: grid;
  gap: var(--space-8);
}

.card-grid--3 { grid-template-columns: repeat(3, 1fr); }

.feature-card {
  background: var(--color-surface);
  border: var(--border);
  border-top: 3px solid var(--color-accent);
  padding: var(--space-8);
  transition: box-shadow var(--transition-fast);
}

.feature-card:hover { box-shadow: var(--shadow-md); }

.feature-card__icon {
  width: 48px;
  height: 48px;
  color: var(--color-accent);
  margin-bottom: var(--space-6);
}

.feature-card__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  margin-bottom: var(--space-3);
}

.feature-card__text {
  font-size: var(--text-base);
  color: var(--color-ink-secondary);
  line-height: 1.75;
}

/* ------------------------------------------------------------
   8. Split block (image + text)
   ------------------------------------------------------------ */
.split-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-12);
  align-items: center;
}

.split-block--reverse { direction: rtl; }
.split-block--reverse > * { direction: ltr; }

.split-block__img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-top: 3px solid var(--color-accent);
}

.split-block__content { display: flex; flex-direction: column; gap: var(--space-3); }

/* Bullet check list */
.check-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }

.check-list li {
  padding-left: var(--space-8);
  position: relative;
  color: var(--color-ink-secondary);
}

.check-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 18px;
  height: 10px;
  border-left: 2px solid var(--color-accent);
  border-bottom: 2px solid var(--color-accent);
  transform: rotate(-45deg) translateY(-4px);
}

/* Numbered list */
.numbered-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-6); }

.numbered-list li {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

.numbered-list__number {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--color-accent);
  min-width: 28px;
  padding-top: 4px;
}

.numbered-list strong { display: block; font-family: var(--font-display); font-size: var(--text-lg); margin-bottom: var(--space-1); }
.numbered-list p { color: var(--color-ink-secondary); font-size: var(--text-sm); max-width: 100%; }

.numbered-list1 { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-6); }

.numbered-list1 li {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

.numbered-list__number1 {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--color-accent);
  min-width: 28px;
  padding-top: 4px;
}

.numbered-list1 strong { display: block; font-family: var(--font-display); font-size: var(--text-lg); margin-bottom: var(--space-1); }
.numbered-list1 p { color: var(--color-ink-secondary); font-size: var(--text-base); max-width: 100%; }

/* ------------------------------------------------------------
   9. Pull Quote
   ------------------------------------------------------------ */
.pull-quote { padding: var(--space-1) 0; }

.pull-quote__text {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-style: italic;
  font-weight: 400;
  color: rgba(255,255,255,0.95);
  line-height: 1.4;
  max-width: 100%;
  margin-bottom: var(--space-1);
}
.pull-quote__text1 {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.5vw, 1.25rem);
  font-style:normal;
  font-weight: 150;
  color: rgba(255,255,255,0.95);
  line-height: 1.4;
  max-width: 100%;
  margin-bottom: var(--space-1);
}

.pull-quote__attribution {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}



/* ------------------------------------------------------------
   10. Highlight / Accent Quote Box
   ------------------------------------------------------------ */
.highlight-box {
  display: flex;
  gap: var(--space-2);
  align-items: flex-start;
  padding: var(--space-2);
  background: var(--color-accent-subtle);
  border-left: 4px solid var(--color-accent);
}

.highlight-box__rule { display: none; }

.highlight-box__text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-style: italic;
  color: var(--color-accent);
  line-height: 1.65;
  max-width: 100%;
}

/* ------------------------------------------------------------
   11. Stats Band
   ------------------------------------------------------------ */
.stats-band {
  background: var(--color-nav);
  padding: var(--space-16) 0;
}

.stats-band__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-8);
  text-align: center;
}

.stats-band__value {
  display: block;
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  margin-bottom: var(--space-2);
}

.stats-band__label {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}

/* ------------------------------------------------------------
   12. CTA Band
   ------------------------------------------------------------ */
.cta-band {
  background: var(--color-accent);
  padding: var(--space-24) 0;
}

.cta-band__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, var(--text-3xl));
  font-weight: 600;
  color: #ffffff;
  margin-bottom: var(--space-4);
}

.cta-band__text {
  font-size: var(--text-lg);
  color: rgba(255,255,255,0.82);
  margin-bottom: var(--space-8);
  margin-inline: auto;
}

.cta-band__actions {
  display: flex;
  gap: var(--space-4);
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================================
   NOSTRA VERIDICUS — Governance Signal Table
   governance-table.css
   Import AFTER style.css
   ============================================================ */

/* ------------------------------------------------------------
   Colour palette for each level
   ------------------------------------------------------------ */
:root {
  /* Level 0 — Baseline: neutral slate */
  --l0-bg:        #f1f0ec;
  --l0-border:    #c8c4ba;
  --l0-badge-bg:  #e0ddd6;
  --l0-badge-txt: #4a4843;
  --l0-accent:    #8a8680;

  /* Level 1 — Early signal: calm blue */
  --l1-bg:        #eaf3fb;
  --l1-border:    #9fc8e8;
  --l1-badge-bg:  #1a6fa8;
  --l1-badge-txt: #ffffff;
  --l1-accent:    #1a6fa8;

  /* Level 2 — Emerging pattern: amber */
  --l2-bg:        #fdf6e3;
  --l2-border:    #e8c96a;
  --l2-badge-bg:  #b8860b;
  --l2-badge-txt: #ffffff;
  --l2-accent:    #b8860b;

  /* Level 3 — Elevated concern: orange */
  --l3-bg:        #fff0e6;
  --l3-border:    #f0a060;
  --l3-badge-bg:  #c95f10;
  --l3-badge-txt: #ffffff;
  --l3-accent:    #c95f10;

  /* Level 4 — Imminent risk: deep red */
  --l4-bg:        #fdeaea;
  --l4-border:    #e08080;
  --l4-badge-bg:  #9b1c1c;
  --l4-badge-txt: #ffffff;
  --l4-accent:    #9b1c1c;
}

/* ------------------------------------------------------------
   Intro text
   ------------------------------------------------------------ */
.governance-intro {
  font-size: var(--text-lg);
  color: var(--color-ink-secondary);
  line-height: 1.8;
  max-width: 100%;
  margin-bottom: var(--space-8);
}

.governance-intro1 {
  font-size: var(--text-lg);
  color: var(--color-ink-secondary);
  line-height: 1.8;
  max-width: 100%;
  margin-bottom: var(--space-3);
}

/* ------------------------------------------------------------
   Table wrapper — horizontal scroll safety net
   ------------------------------------------------------------ */
.signal-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--color-border);
  margin-bottom: var(--space-8);
}

.signal-table-wrap1 {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--color-border);
  margin-bottom: var(--space-8);
}

/* ------------------------------------------------------------
   Table base
   ------------------------------------------------------------ */
.signal-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  font-size: var(--text-sm);
  font-family: var(--font-body);
}

/* Header row */
.signal-table thead tr {
  background: var(--color-nav);
}

.signal-table th {
  padding: var(--space-4) var(--space-4);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.75);
  text-align: left;
  border-right: 1px solid rgba(255,255,255,0.08);
  white-space: nowrap;
}

.signal-table th:last-child { border-right: none; }

/* Column widths */
.col-level    { width: 72px; }
.col-name     { width: 140px; }
.col-signal   { width: 26%; }
.col-platform { width: 32%; }
.col-review   { width: 20%; }

/* Body cells */
.signal-table td {
  padding: var(--space-4) var(--space-4);
  vertical-align: top;
  line-height: 1.65;
  border-right: 1px solid rgba(0,0,0,0.06);
}

.signal-table td:last-child { border-right: none; }

/* ------------------------------------------------------------
   Row colour coding
   ------------------------------------------------------------ */
.signal-row--0 { background: var(--l0-bg); border-left: 4px solid var(--l0-border); }
.signal-row--1 { background: var(--l1-bg); border-left: 4px solid var(--l1-border); }
.signal-row--2 { background: var(--l2-bg); border-left: 4px solid var(--l2-border); }
.signal-row--3 { background: var(--l3-bg); border-left: 4px solid var(--l3-border); }
.signal-row--4 { background: var(--l4-bg); border-left: 4px solid var(--l4-border); }

/* Subtle row separator */
.signal-row--0 + .signal-row--1,
.signal-row--1 + .signal-row--2,
.signal-row--2 + .signal-row--3,
.signal-row--3 + .signal-row--4 {
  border-top: 2px solid rgba(255,255,255,0.6);
}

/* ------------------------------------------------------------
   Level badge (the number circle)
   ------------------------------------------------------------ */
.level-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-family: var(--font-ui);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1;
}

.level-badge--0 { background: var(--l0-badge-bg); color: var(--l0-badge-txt); }
.level-badge--1 { background: var(--l1-badge-bg); color: var(--l1-badge-txt); }
.level-badge--2 { background: var(--l2-badge-bg); color: var(--l2-badge-txt); }
.level-badge--3 { background: var(--l3-badge-bg); color: var(--l3-badge-txt); }
.level-badge--4 { background: var(--l4-badge-bg); color: var(--l4-badge-txt); }

/* Level name label */
.level-label {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-ink);
  display: block;
}

/* ------------------------------------------------------------
   Review tags
   ------------------------------------------------------------ */
.review-tag {
  display: inline-block;
  padding: var(--space-1) var(--space-3);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.5;
  border-radius: 2px;
}

.review-tag--none {
  background: var(--l0-badge-bg);
  color: var(--l0-badge-txt);
  border: 1px solid var(--l0-border);
}

.review-tag--logged {
  background: #dbeeff;
  color: #0a4a7a;
  border: 1px solid var(--l1-border);
}

.review-tag--required {
  background: #fff3cc;
  color: #7a5800;
  border: 1px solid var(--l2-border);
}

.review-tag--mandatory {
  background: #ffe6cc;
  color: #7a3000;
  border: 1px solid var(--l3-border);
}

.review-tag--critical {
  background: #ffd5d5;
  color: #6b0000;
  border: 1px solid var(--l4-border);
  font-weight: 700;
}

/* ------------------------------------------------------------
   Mobile cards (hidden on desktop, shown below 700px)
   ------------------------------------------------------------ */
.signal-cards { display: none; }

.signal-card {
  border-radius: 2px;
  margin-bottom: var(--space-4);
  overflow: hidden;
  border: 1px solid;
}

.signal-card--0 { background: var(--l0-bg); border-color: var(--l0-border); border-left: 4px solid var(--l0-accent); }
.signal-card--1 { background: var(--l1-bg); border-color: var(--l1-border); border-left: 4px solid var(--l1-accent); }
.signal-card--2 { background: var(--l2-bg); border-color: var(--l2-border); border-left: 4px solid var(--l2-accent); }
.signal-card--3 { background: var(--l3-bg); border-color: var(--l3-border); border-left: 4px solid var(--l3-accent); }
.signal-card--4 { background: var(--l4-bg); border-color: var(--l4-border); border-left: 4px solid var(--l4-accent); }

.signal-card__header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-4);
  border-bottom: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.45);
}

.signal-card__body {
  padding: var(--space-4);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-2) var(--space-4);
  align-items: baseline;
}

.signal-card__body dt {
  font-family: var(--font-ui);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  white-space: nowrap;
  padding-top: 2px;
}

.signal-card__body dd {
  font-size: var(--text-sm);
  color: var(--color-ink-secondary);
  line-height: 1.6;
}

/* ------------------------------------------------------------
   Legend bar
   ------------------------------------------------------------ */
.signal-legend {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  flex-wrap: wrap;
  padding: var(--space-4) 0;
  border-top: var(--border);
  margin-top: var(--space-2);
}

.signal-legend__label {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  white-space: nowrap;
}

.signal-legend__items {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-ui);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px var(--space-3);
  border-radius: 2px;
  border: 1px solid;
}

.legend-item::before {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.legend-item--0 { background: var(--l0-bg); border-color: var(--l0-border); color: var(--l0-badge-txt); }
.legend-item--0::before { background: var(--l0-badge-bg); }

.legend-item--1 { background: var(--l1-bg); border-color: var(--l1-border); color: var(--l1-badge-bg); }
.legend-item--1::before { background: var(--l1-badge-bg); }

.legend-item--2 { background: var(--l2-bg); border-color: var(--l2-border); color: var(--l2-badge-bg); }
.legend-item--2::before { background: var(--l2-badge-bg); }

.legend-item--3 { background: var(--l3-bg); border-color: var(--l3-border); color: var(--l3-badge-bg); }
.legend-item--3::before { background: var(--l3-badge-bg); }

.legend-item--4 { background: var(--l4-bg); border-color: var(--l4-border); color: var(--l4-badge-bg); }
.legend-item--4::before { background: var(--l4-badge-bg); }

/* ------------------------------------------------------------
   Responsive
   ------------------------------------------------------------ */
@media (max-width: 700px) {
  .signal-table-wrap { display: none; }
	 .signal-table-wrap1 { display: none; }
  .signal-cards      { display: block; }

  .signal-card__body {
    grid-template-columns: 1fr;
    gap: var(--space-1);
  }

  .signal-card__body dt { margin-top: var(--space-3); }
  .signal-card__body dt:first-child { margin-top: 0; }

  .signal-legend { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
}

/* ------------------------------------------------------------
   13. Buttons
   ------------------------------------------------------------ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: background var(--transition-fast), color var(--transition-fast),
              border-color var(--transition-fast), box-shadow var(--transition-fast);
  white-space: nowrap;
  text-decoration: none;
}

.btn:active { transform: translateY(1px); }

.btn--primary {
  background: var(--color-accent);
  color: #fff;
  border: 1px solid var(--color-accent);
}

.btn--primary:hover {
  background: var(--color-accent-light);
  border-color: var(--color-accent-light);
  color: #fff;
  text-decoration: none;
}

.btn--white {
  background: #ffffff;
  color: var(--color-accent);
  border: 1px solid #ffffff;
}

.btn--white:hover {
  background: rgba(255,255,255,0.9);
  color: var(--color-accent);
  text-decoration: none;
}

.btn--white-outline {
  background: transparent;
  color: #ffffff;
  border: 1px solid rgba(255,255,255,0.6);
}

.btn--white-outline:hover {
  background: rgba(255,255,255,0.1);
  border-color: #ffffff;
  color: #ffffff;
  text-decoration: none;
}

.btn--lg { padding: var(--space-4) var(--space-8); font-size: var(--text-sm); }
.btn--sm { padding: var(--space-2) var(--space-4); font-size: 0.7rem; }

/* ------------------------------------------------------------
   14. Footer
   ------------------------------------------------------------ */
.site-footer {
  background: var(--color-footer);
  color: rgba(255,255,255,0.85);
  padding-top: var(--space-16);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--space-12);
  padding-bottom: var(--space-12);
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.site-footer__logo-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  margin-bottom: var(--space-4);
}

.site-footer__logo-img { height: 36px; width: auto; }

.site-footer__logo-text {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 600;
  color: #ffffff;
}

.site-footer__logo-img + .site-footer__logo-text { display: none; }

.site-footer__strapline {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  margin-bottom: var(--space-6);
  max-width: 100%;
}

.site-footer__social {
  display: flex;
  gap: var(--space-3);
}

.site-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: rgba(255,255,255,0.6);
  border: 1px solid rgba(255,255,255,0.2);
  transition: color var(--transition-fast), border-color var(--transition-fast);
  text-decoration: none;
}

.site-footer__social-link:hover {
  color: #ffffff;
  border-color: rgba(255,255,255,0.6);
  text-decoration: none;
}

.site-footer__heading {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  margin-bottom: var(--space-6);
}

.site-footer__links { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }

.site-footer__links a {
  font-size: var(--text-sm);
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-footer__links a:hover { color: #ffffff; text-decoration: none; }

.site-footer__base {
  padding: var(--space-6) 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.site-footer__base p {
  font-size: var(--text-xs);
  color: rgba(255,255,255,0.4);
  max-width: 100%;
 text-align: center;
}

/* ------------------------------------------------------------
   15. Cards (general)
   ------------------------------------------------------------ */
.card {
  background: var(--color-surface);
  border: var(--border);
  overflow: hidden;
  transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.card:hover { box-shadow: var(--shadow-md); border-color: var(--color-border-strong); }
.card--accented { border-top: 3px solid var(--color-accent); }
.card__body   { padding: var(--space-6); }
.card__header { padding: var(--space-4) var(--space-6); border-bottom: var(--border); }
.card__footer { padding: var(--space-4) var(--space-6); border-top: var(--border); background: var(--color-bg-alt); }

/* ------------------------------------------------------------
   16. Forms
   ------------------------------------------------------------ */
.form-group { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-4); }

label {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-ink-secondary);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea,
select {
  width: 100%;
  background: var(--color-surface);
  border: var(--border);
  padding: var(--space-3) var(--space-4);
  color: var(--color-ink);
  font-size: var(--text-base);
  border-radius: 0;
  outline: none;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

input:focus, textarea:focus, select:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(26,74,92,0.1);
}

::placeholder { color: var(--color-ink-muted); }

/* ------------------------------------------------------------
   17. Utilities
   ------------------------------------------------------------ */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border-width: 0;
}

/* ------------------------------------------------------------
   18. Responsive
   ------------------------------------------------------------ */
@media (max-width: 1024px) {
  .card-grid--3       { grid-template-columns: repeat(2, 1fr); }
  .stats-band__grid   { grid-template-columns: repeat(2, 1fr); }
  .site-footer__grid  { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: 1 / -1; }
  .container          { padding-inline: var(--space-6); }
}

@media (max-width: 768px) {
  /* Nav — show hamburger, hide links */
  .site-nav__links      { display: none; }
  .site-nav__hamburger  { display: flex; }
  .site-nav__mobile-menu { display: block; }

  /* Hero */
  .hero-fullwidth       { height: 80vh; min-height: 500px; }

  /* Sections */
  .page-section         { padding-top: var(--space-16); padding-bottom: var(--space-16); }
	 .page-section1         { padding-top: var(--space-16); padding-bottom: var(--space-13); }
 .page-section2        { padding-top: var(--space-13); padding-bottom: var(--space-13); }

  /* Cards */
  .card-grid--3         { grid-template-columns: 1fr; }

  /* Split blocks stack */
  .split-block          { grid-template-columns: 1fr; gap: var(--space-6); }
  .split-block--reverse { direction: ltr; }
  .split-block__img     { height: 280px; }

  /* Stats */
  .stats-band__grid     { grid-template-columns: repeat(2, 1fr); }

  /* Footer */
  .site-footer__grid    { grid-template-columns: 1fr; gap: var(--space-8); }
  .site-footer__brand   { grid-column: auto; }
}

@media (max-width: 480px) {
  .container            { padding-inline: var(--space-4); }
  .stats-band__grid     { grid-template-columns: repeat(2, 1fr); }
  .cta-band__actions    { flex-direction: column; align-items: center; }
  .btn                  { width: 100%; justify-content: center; }
  .site-nav__inner      { padding-inline: var(--space-4); }
}

.feature-card__icon-img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}
.section-intro1 {
	padding-bottom: 1em;
}

/* Alternating row stripe for the governance board table */
.signal-table--governance tbody tr:nth-child(odd) {
  background-color: #f5f5f5;
}

.signal-table--governance tbody tr:nth-child(even) {
  background-color: #ffffff;
}

/* Different thead colour to visually separate it from the first table */
.signal-table--governance thead {
  background-color: #4a5568; /* or whatever your existing thead colour is — change to suit */
}


.split-block__img1 {
  width: 100%;
  height: 700px;
  object-fit: cover;
  object-position: center top;
}

.split-block {
  align-items: flex-start;
}

.split-block__img2 {
  width: 100%;
  height: 550px;
  object-fit: cover;
  object-position: center top;
}

.split-block {
  align-items: flex-start;
}

@media (max-width: 1024px) {
  .site-footer__logo-text {
    display: none;
  }

.site-footer__base {
  text-align: center;
}

	
	
	.section-intro2 {
  font-size: var(--text-lg);
  color: var(--color-ink-secondary);
  line-height: 1.8;
  max-width: 100%;
  margin-bottom: var(--space-10);
}
	
	/* Dropdown container */
.site-nav__has-dropdown {
  position: relative;
}

/* The dropdown panel — hidden by default */
.site-nav__dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border: 0.5px solid #ddd;
  border-top: 2px solid #1A3A52;
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* Show on hover (desktop) */
.site-nav__has-dropdown:hover .site-nav__dropdown,
.site-nav__has-dropdown.open .site-nav__dropdown {
  display: block;
}

/* Dropdown links */
.site-nav__dropdown-link {
  display: block;
  padding: 0.6rem 1.25rem;
  font-size: 14px;
  color: #1A3A52;
  text-decoration: none;
  white-space: nowrap;
}

.site-nav__dropdown-link:hover {
  background: #D4E3EE;
}

/* Chevron */
.site-nav__chevron {
  font-size: 12px;
  margin-left: 3px;
  display: inline-block;
}