:root {
  --ink: #17201c;
  --muted: #647067;
  --paper: #f7f5ef;
  --panel: #fffdf7;
  --line: #d8d1c3;
  --deep: #26352d;
  --accent: #2f7d57;
  --accent-2: #b86f2d;
  --wash: #ece7dc;
  --shadow: 0 24px 70px rgba(38, 53, 45, .12);
  --shadow-strong: 0 34px 90px rgba(38, 53, 45, .2);
  --radius: 8px;
  --container: min(1320px, calc(100vw - clamp(36px, 7vw, 112px)));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Bahnschrift", "Aptos", "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(38,53,45,.04) 1px, transparent 1px) 0 0 / 72px 72px,
    linear-gradient(180deg, #fbfaf6 0%, var(--paper) 42%, #efebe2 100%);
  line-height: 1.55;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .06;
  background-image: radial-gradient(var(--ink) .7px, transparent .7px);
  background-size: 7px 7px;
  z-index: 80;
}

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.skip-link {
  position: absolute;
  left: 16px;
  top: -60px;
  background: var(--ink);
  color: var(--panel);
  padding: 10px 14px;
  border-radius: 4px;
  z-index: 100;
}
.skip-link:focus { top: 16px; }

.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;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 60;
  backdrop-filter: blur(18px);
  background: rgba(247,245,239,.82);
  border-bottom: 1px solid rgba(38,53,45,.12);
}

.nav {
  width: var(--container);
  margin: 0 auto;
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
  letter-spacing: -.01em;
}

.mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--ink);
  background: var(--deep);
  color: var(--panel);
  font-size: 12px;
  letter-spacing: .12em;
}

.brand small {
  display: block;
  color: var(--muted);
  font-weight: 500;
  font-size: 12px;
}

.navlinks {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  color: #35463c;
  font-size: 14px;
}

.navlinks a {
  padding: 9px 10px;
  border-radius: 6px;
  transition: background .22s ease, color .22s ease, transform .22s ease;
}
.navlinks a:hover,
.navlinks a[aria-current="page"] {
  background: rgba(47,125,87,.1);
  color: var(--accent);
}
.navlinks a:active { transform: translateY(1px); }

.mobile-menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  border: 1px solid rgba(38,53,45,.22);
  border-radius: 6px;
  background: rgba(255,253,247,.78);
  color: var(--ink);
  box-shadow: 0 10px 26px rgba(38,53,45,.08);
  cursor: pointer;
  transition: background .22s ease, border-color .22s ease, transform .22s ease;
}

.mobile-menu-toggle span:not(.sr-only) {
  width: 19px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform .22s ease, opacity .22s ease;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle:focus-visible {
  background: var(--panel);
  border-color: rgba(38,53,45,.38);
}

.mobile-menu-toggle:active { transform: translateY(1px); }

.mobile-advisory-link { display: none; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--panel);
  min-height: 44px;
  padding: 11px 16px;
  border-radius: 6px;
  font-weight: 700;
  transition: transform .22s ease, background .22s ease, box-shadow .22s ease;
  cursor: pointer;
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 14px 30px rgba(23,32,28,.16); }
.btn:active { transform: translateY(1px) scale(.99); }
.btn.secondary {
  background: transparent;
  color: var(--ink);
}
.btn.link {
  background: transparent;
  border-color: transparent;
  color: var(--accent);
  padding-inline: 0;
}

.hero {
  width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(320px, .86fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  padding: clamp(52px, 7vw, 96px) 0 40px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
}
.eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
}

h1, h2, h3 {
  margin: 0;
  line-height: .98;
  letter-spacing: -.02em;
}
h1 {
  max-width: 860px;
  font-size: clamp(46px, 7vw, 88px);
  margin-top: 18px;
}
h2 { font-size: clamp(32px, 4.4vw, 58px); }
h3 { font-size: clamp(22px, 2.4vw, 34px); line-height: 1.08; }
p { margin: 0; color: var(--muted); }
.lead {
  max-width: 68ch;
  font-size: clamp(18px, 2vw, 23px);
  margin-top: 24px;
  color: #39483f;
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.hero-panel {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 22% 18%, rgba(241,184,92,.34), transparent 26%),
    linear-gradient(180deg, rgba(23,32,28,.02), rgba(23,32,28,.28)),
    var(--hero-image, url("https://images.pexels.com/photos/356036/pexels-photo-356036.jpeg?auto=compress&cs=tinysrgb&w=1200")) center / cover;
  box-shadow: var(--shadow-strong);
  isolation: isolate;
}
.hero-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, transparent 0 48%, rgba(255,253,247,.22) 48% 49%, transparent 49% 100%),
    repeating-linear-gradient(90deg, rgba(255,253,247,.14) 0 1px, transparent 1px 44px);
  mix-blend-mode: soft-light;
  opacity: .72;
}
.hero-panel::after {
  content: "";
  position: absolute;
  inset: auto 22px 22px 22px;
  height: 180px;
  background: rgba(255,253,247,.86);
  border: 1px solid rgba(255,255,255,.72);
  backdrop-filter: blur(14px);
  border-radius: 7px;
}
.market-card {
  position: absolute;
  z-index: 2;
  left: 42px;
  right: 42px;
  bottom: 50px;
}
.market-card span { color: var(--muted); font-size: 13px; }
.market-card strong {
  display: block;
  margin-top: 8px;
  font-size: 24px;
  line-height: 1.08;
}

.section {
  width: var(--container);
  margin: 0 auto;
  padding: clamp(48px, 7vw, 88px) 0;
}
.section-head {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(300px, 1.1fr);
  gap: 28px;
  align-items: end;
  margin-bottom: 32px;
}

.answer-box {
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
  padding: 22px 0;
  margin-top: 28px;
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 22px;
}
.answer-box strong { color: var(--ink); }

.hub-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}
.hub-card {
  grid-column: span 4;
  min-height: 260px;
  padding: 22px;
  border: 1px solid var(--line);
  background:
    linear-gradient(145deg, rgba(255,253,247,.84), rgba(239,235,226,.72)),
    radial-gradient(circle at 92% 10%, rgba(184,111,45,.14), transparent 28%);
  border-radius: var(--radius);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .24s ease, background .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.hub-card:nth-child(1), .hub-card:nth-child(4) { grid-column: span 5; }
.hub-card:nth-child(2), .hub-card:nth-child(5) { grid-column: span 7; }
.hub-card:hover {
  transform: translateY(-4px);
  background: var(--panel);
  border-color: rgba(47,125,87,.42);
  box-shadow: 0 22px 48px rgba(38,53,45,.12);
}
.hub-card p { margin-top: 14px; max-width: 58ch; }
.hub-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.pill {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.64);
  padding: 5px 9px;
  border-radius: 5px;
  color: #425349;
  font-size: 12px;
  font-weight: 700;
}
.pill.sponsored {
  color: #8a4d17;
  border-color: rgba(184,111,45,.35);
  background: rgba(184,111,45,.08);
}

.intelligence-strip {
  background: var(--deep);
  color: var(--panel);
  padding: 54px 0;
  margin: 42px 0;
}
.intelligence-strip .inner {
  width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}
.intelligence-strip p { color: rgba(255,253,247,.76); max-width: 760px; margin-top: 10px; }

.directory-shell {
  display: grid;
  grid-template-columns: 250px minmax(0,1fr);
  gap: 18px;
  align-items: start;
}
.filters {
  position: sticky;
  top: 96px;
  background:
    linear-gradient(180deg, rgba(255,253,247,.92), rgba(240,234,223,.82));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
  backdrop-filter: blur(14px);
}
.filter-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.filter-reset {
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.72);
  color: var(--accent);
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 6px;
  font-weight: 800;
  cursor: pointer;
}
.filter-reset:hover {
  background: rgba(47,125,87,.1);
}
.filter-group { display: grid; gap: 7px; margin-top: 14px; }
label { font-size: 12px; font-weight: 800; color: #3d4d44; }
input, select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--ink);
  border-radius: 6px;
  padding: 10px 11px;
  font: inherit;
}
input:focus, select:focus, button:focus-visible, a:focus-visible {
  outline: 3px solid rgba(47,125,87,.28);
  outline-offset: 2px;
}

.table-wrap {
  overflow-x: visible;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,253,247,.84);
  box-shadow: 0 18px 48px rgba(38,53,45,.08);
}
table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
th, td {
  padding: 12px;
  border-bottom: 1px solid rgba(216,209,195,.78);
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: normal;
}
th {
  position: sticky;
  top: 0;
  background: #ebe4d6;
  color: #3a4a41;
  font-size: 11px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
th:nth-child(1), td:nth-child(1) { width: 24%; }
th:nth-child(2), td:nth-child(2) { width: 12%; }
th:nth-child(3), td:nth-child(3) { width: 13%; }
th:nth-child(4), td:nth-child(4) { width: 17%; }
th:nth-child(5), td:nth-child(5) { width: 10%; }
th:nth-child(6), td:nth-child(6) { width: 24%; }
tbody tr { animation: rowIn .38s both; }
tbody tr:hover { background: rgba(47,125,87,.06); }
.company-name { font-weight: 800; color: var(--ink); }
.muted { color: var(--muted); }
.table-contact {
  margin-top: 6px;
  color: #7a6f60;
  font-size: 12px;
  line-height: 1.35;
}
.table-contact a { color: var(--accent); font-weight: 700; }
.mono { font-variant-numeric: tabular-nums; font-family: "Cascadia Mono", "Consolas", monospace; }

@keyframes rowIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.feature-band {
  display: grid;
  grid-template-columns: .82fr 1fr;
  gap: 28px;
  align-items: stretch;
}
.stock-frame {
  min-height: 440px;
  border-radius: var(--radius);
  background:
    linear-gradient(120deg, rgba(23,32,28,.08), rgba(23,32,28,.42)),
    var(--stock-image, url("https://images.pexels.com/photos/433308/pexels-photo-433308.jpeg?auto=compress&cs=tinysrgb&w=1400")) center / cover;
  box-shadow: var(--shadow);
}
.ad-slot, .cta-card {
  border: 1px solid rgba(184,111,45,.3);
  background: rgba(184,111,45,.08);
  border-radius: var(--radius);
  padding: 22px;
}
.cta-card {
  background: var(--panel);
  border-color: var(--line);
  display: grid;
  gap: 16px;
}
.contact-card p { margin-top: 2px; }
.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.site-contact-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(38,53,45,.12);
  font-size: 12px;
}
.site-contact-line a {
  color: var(--accent);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.footer-contact {
  grid-column: 1 / -1;
  border-color: rgba(255,253,247,.14);
}
.footer-contact a { color: rgba(255,253,247,.82); }
.footer-official-links {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,253,247,.14);
  color: rgba(255,253,247,.54);
  font-size: 12px;
}
.footer-official-links strong {
  color: rgba(255,253,247,.76);
}
.footer-official-links a {
  color: rgba(255,253,247,.78);
  font-weight: 800;
}

.legal-hero {
  grid-template-columns: minmax(0, .86fr);
  padding-bottom: 20px;
}
.legal-content {
  display: grid;
  gap: 18px;
  max-width: 980px;
}
.legal-content article {
  padding: 22px 0;
  border-top: 1px solid rgba(38,53,45,.16);
}
.legal-content h2 {
  font-size: clamp(24px, 2.6vw, 36px);
  margin-bottom: 10px;
}
.legal-content a { color: var(--accent); font-weight: 800; }
.institution-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.institution-card {
  border: 1px solid rgba(38,53,45,.14);
  border-radius: var(--radius);
  background: rgba(255,253,247,.72);
  padding: 20px;
}
.institution-card h3 { font-size: clamp(22px, 2vw, 30px); }
.institution-card p { margin-top: 10px; }
.institution-card .hub-meta { margin-top: 14px; }
.institution-card a { color: var(--accent); font-weight: 800; overflow-wrap: anywhere; }

.sponsor-hero .hero-panel,
body.sponsor { --hero-image: url("/assets/finance-energy.svg"); --stock-image: url("/assets/grid-substation.svg"); }

.sponsor-home-panel,
.pricing-card {
  border: 1px solid rgba(38,53,45,.16);
  background:
    linear-gradient(145deg, rgba(255,253,247,.9), rgba(239,235,226,.68)),
    radial-gradient(circle at 88% 12%, rgba(47,125,87,.1), transparent 30%);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: 0 18px 48px rgba(38,53,45,.08);
}
.sponsor-home-panel {
  display: grid;
  align-content: start;
  gap: 18px;
}
.sponsor-home-panel h3 { max-width: 14ch; }
.sponsor-home-panel p { max-width: 58ch; }

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.pricing-card {
  display: flex;
  flex-direction: column;
  min-height: 620px;
}
.pricing-card.featured {
  border-color: rgba(47,125,87,.5);
  background:
    linear-gradient(145deg, rgba(255,253,247,.94), rgba(236,231,220,.7)),
    radial-gradient(circle at 88% 10%, rgba(184,111,45,.16), transparent 28%);
}
.pricing-card h3 { margin-top: 12px; }
.pricing-card > p { margin-top: 14px; }
.price {
  display: flex;
  align-items: end;
  gap: 8px;
  margin-top: 20px;
  padding: 18px 0;
  border-top: 1px solid rgba(38,53,45,.16);
  border-bottom: 1px solid rgba(38,53,45,.12);
}
.price strong {
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1;
  color: var(--ink);
}
.price span {
  color: var(--muted);
  font-weight: 700;
  padding-bottom: 4px;
}
.pricing-card .compact-list { margin-top: 18px; }
.commitment {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(38,53,45,.14);
  color: #3d4d44;
  font-size: 14px;
}
.sponsor-strip .btn { white-space: nowrap; }

.sponsor-toast {
  position: fixed;
  left: 22px;
  bottom: 22px;
  z-index: 76;
  width: min(440px, calc(100vw - 44px));
  border: 1px solid rgba(38,53,45,.22);
  background: rgba(255,253,247,.96);
  border-radius: var(--radius);
  box-shadow: var(--shadow-strong);
  padding: 16px 52px 16px 16px;
  backdrop-filter: blur(16px);
  transform: translateY(16px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease, transform .28s ease;
}
.sponsor-toast.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.sponsor-toast strong { display: block; font-size: 16px; }
.sponsor-toast p { margin-top: 5px; font-size: 13px; }
.sponsor-toast .btn {
  min-height: 38px;
  padding: 8px 12px;
  margin-top: 12px;
  font-size: 13px;
}
.sponsor-toast-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.78);
  border-radius: 5px;
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}

.cookie-consent {
  position: fixed;
  left: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 90;
  width: min(760px, calc(100vw - 44px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border: 1px solid rgba(38,53,45,.2);
  background: rgba(255,253,247,.96);
  border-radius: var(--radius);
  box-shadow: var(--shadow-strong);
  padding: 16px;
  backdrop-filter: blur(16px);
  transform: translateY(14px);
  opacity: 0;
  transition: opacity .24s ease, transform .24s ease;
}
.cookie-consent.visible {
  opacity: 1;
  transform: translateY(0);
}
.cookie-consent.closing {
  opacity: 0;
  transform: translateY(10px);
}
.cookie-consent strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
}
.cookie-consent p {
  max-width: 64ch;
  margin-top: 4px;
  font-size: 13px;
}
.cookie-consent-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 800;
}
.cookie-consent-links a { color: var(--accent); }
.cookie-consent .btn {
  min-height: 40px;
  padding: 8px 14px;
}

.tailored-panel {
  border: 1px solid rgba(38,53,45,.16);
  background:
    linear-gradient(145deg, rgba(255,253,247,.92), rgba(239,235,226,.7)),
    radial-gradient(circle at 86% 10%, rgba(184,111,45,.12), transparent 28%);
  border-radius: var(--radius);
  padding: 24px;
  box-shadow: 0 18px 48px rgba(38,53,45,.08);
  display: grid;
  align-content: start;
  gap: 16px;
}
.tailored-panel h3 { max-width: 15ch; }
.tailored-panel p { max-width: 60ch; }
.tailored-modal[aria-hidden="true"] { display: none; }
.tailored-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 42px);
}
.tailored-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(23,32,28,.46);
  backdrop-filter: blur(8px);
}
.tailored-dialog {
  position: relative;
  z-index: 1;
  width: min(860px, 100%);
  max-height: min(860px, calc(100vh - 34px));
  overflow: auto;
  border: 1px solid rgba(255,253,247,.72);
  background:
    linear-gradient(145deg, rgba(255,253,247,.98), rgba(240,234,223,.96)),
    radial-gradient(circle at 92% 0%, rgba(47,125,87,.1), transparent 30%);
  border-radius: var(--radius);
  box-shadow: var(--shadow-strong);
  padding: clamp(18px, 3vw, 30px);
}
.tailored-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.78);
  border-radius: 5px;
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}
.tailored-dialog-body {
  display: grid;
  gap: 22px;
}
.tailored-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding-right: 46px;
}
.tailored-progress span {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.tailored-progress b {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(38,53,45,.16);
  border-radius: 5px;
  background: rgba(255,253,247,.74);
  color: var(--ink);
  font-size: 12px;
}
.tailored-progress .current b,
.tailored-progress .done b {
  background: var(--deep);
  color: var(--panel);
  border-color: var(--deep);
}
.tailored-step h2 {
  margin-top: 14px;
  max-width: 760px;
}
.tailored-step > p {
  margin-top: 12px;
  max-width: 68ch;
}
.tailored-fields {
  display: grid;
  gap: 14px;
  margin-top: 22px;
}
.tailored-fields label {
  display: grid;
  gap: 7px;
}
.tailored-fields textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--ink);
  border-radius: 6px;
  padding: 11px;
  font: inherit;
  resize: vertical;
}
.choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 22px;
}
.budget-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-card {
  min-height: 64px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.72);
  border-radius: 6px;
  padding: 12px;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.choice-card:hover {
  transform: translateY(-1px);
  border-color: rgba(47,125,87,.42);
}
.choice-card input {
  width: 18px;
  min-height: 18px;
  accent-color: var(--accent);
}
.choice-card:has(input:checked) {
  border-color: rgba(47,125,87,.52);
  background: rgba(47,125,87,.09);
}
.choice-card span {
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
}
.review-panel {
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid rgba(38,53,45,.14);
  border-radius: var(--radius);
  background: rgba(255,253,247,.68);
}
.review-panel p { color: #3d4d44; }
.consent-line {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  margin-top: 18px;
  color: #3d4d44;
  font-size: 13px;
  line-height: 1.45;
}
.consent-line input {
  width: 18px;
  min-height: 18px;
  accent-color: var(--accent);
}
.consent-line a {
  color: var(--accent);
  font-weight: 800;
}
.tailored-error {
  margin-top: 14px;
  color: #8a3a20;
  font-weight: 800;
}
.tailored-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(38,53,45,.12);
}
.tailored-actions .btn[disabled] {
  opacity: .45;
  pointer-events: none;
}
.tailored-success {
  display: grid;
  gap: 16px;
  padding-right: 42px;
}
.tailored-success p {
  max-width: 66ch;
  color: #39483f;
  font-size: 18px;
}
body.modal-open { overflow: hidden; }

.insight-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.insight {
  padding: 20px;
  border-top: 1px solid var(--ink);
  background:
    linear-gradient(180deg, rgba(255,253,247,.72), rgba(236,231,220,.56));
}
.insight p { margin-top: 10px; }

.stage-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.stage {
  min-height: 190px;
  padding: 18px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.62);
  border-radius: var(--radius);
}
.stage .mono {
  display: block;
  color: var(--accent-2);
  margin-bottom: 14px;
  font-weight: 800;
}

.source-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.source-list a {
  display: block;
  padding: 16px;
  border: 1px solid rgba(38,53,45,.14);
  background: rgba(255,253,247,.62);
  border-radius: var(--radius);
  color: var(--accent);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.news-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.news-filters a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.72);
  border-radius: 6px;
  color: var(--accent);
  font-weight: 800;
  transition: transform .22s ease, background .22s ease, border-color .22s ease;
}
.news-filters a:hover {
  transform: translateY(-1px);
  border-color: rgba(47,125,87,.42);
  background: var(--panel);
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}
.update-card {
  grid-column: span 6;
  min-height: 360px;
  padding: 22px;
  border: 1px solid rgba(38,53,45,.16);
  border-radius: var(--radius);
  background:
    linear-gradient(145deg, rgba(255,253,247,.86), rgba(239,235,226,.66)),
    radial-gradient(circle at 88% 10%, rgba(241,184,92,.16), transparent 26%);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.update-card:nth-child(1),
.update-card:nth-child(4) { grid-column: span 7; }
.update-card:nth-child(2),
.update-card:nth-child(5) { grid-column: span 5; }
.update-card h3 { max-width: 14ch; }
.update-card p { max-width: 68ch; }
.update-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.why {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(38,53,45,.14);
}
.why strong { display: block; margin-bottom: 6px; }

.profile-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 320px;
  gap: 32px;
  align-items: start;
}
.profile-card {
  border: 1px solid var(--line);
  background: var(--panel);
  border-radius: var(--radius);
  padding: 22px;
}
.profile-card + .profile-card { margin-top: 14px; }
.fact-list {
  display: grid;
  gap: 10px;
  margin: 0;
}
.fact-list div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(216,209,195,.75);
}
.fact-list dt { color: var(--muted); font-size: 13px; }
.fact-list dd { margin: 0; font-weight: 700; }

.profile-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.profile-index-card {
  min-height: 250px;
  padding: 20px;
  border: 1px solid rgba(38,53,45,.16);
  background:
    linear-gradient(145deg, rgba(255,253,247,.84), rgba(239,235,226,.68));
  border-radius: var(--radius);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.profile-index-card:hover {
  transform: translateY(-3px);
  border-color: rgba(47,125,87,.42);
  box-shadow: 0 18px 42px rgba(38,53,45,.1);
}
.profile-index-card h3 { font-size: clamp(22px, 2vw, 30px); }
.profile-index-card .hub-meta { margin-top: auto; }
.role-table td:first-child,
.role-table th:first-child { width: 17%; }
.evidence-list {
  display: grid;
  gap: 12px;
}
.evidence-list article {
  padding: 18px;
  border: 1px solid rgba(38,53,45,.14);
  border-radius: var(--radius);
  background: rgba(255,253,247,.68);
}
.evidence-list article p { margin-top: 8px; }
.profile-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 22px;
}
.profile-summary .profile-card { margin: 0; }

.detail-grid,
.question-grid,
.faq-list {
  display: grid;
  gap: 14px;
}
.detail-grid {
  grid-template-columns: repeat(3, 1fr);
}
.question-grid {
  grid-template-columns: repeat(3, 1fr);
}
.faq-list {
  grid-template-columns: repeat(2, 1fr);
}
.detail-panel,
.question-grid article,
.faq-list article {
  border: 1px solid rgba(38,53,45,.14);
  border-radius: var(--radius);
  background: rgba(255,253,247,.68);
  padding: 20px;
}
.detail-panel p,
.question-grid p,
.faq-list p { margin-top: 10px; }
.question-grid ul,
.compact-list {
  margin: 12px 0 0;
  padding-left: 19px;
  color: var(--muted);
}
.question-grid li + li,
.compact-list li + li { margin-top: 7px; }

.sticky-lead {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 70;
  max-width: 340px;
  background: rgba(255,253,247,.92);
  border: 1px solid rgba(38,53,45,.18);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px;
  backdrop-filter: blur(14px);
  transition: opacity .22s ease, transform .22s ease;
}
.sticky-lead.closing { opacity: 0; transform: translateY(10px); }
.sticky-lead p { font-size: 13px; margin: 6px 0 12px; }
.sticky-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(38,53,45,.16);
  background: rgba(255,253,247,.76);
  border-radius: 5px;
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}

.footer {
  margin-top: 48px;
  background: #1d2923;
  color: var(--panel);
  padding: 48px 0 26px;
}
.footer .inner {
  width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.footer p, .footer a { color: rgba(255,253,247,.72); }
.footer-links { display: flex; flex-wrap: wrap; gap: 14px; justify-content: flex-end; }
.copyright {
  width: var(--container);
  margin: 30px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255,253,247,.14);
  color: rgba(255,253,247,.52);
  font-size: 13px;
}

.reveal { opacity: 1; transform: translateY(0); transition: opacity .7s ease, transform .7s ease; }
.reveal:not(.visible) { opacity: .98; }

@media (max-width: 1180px) {
  .directory-shell {
    grid-template-columns: 1fr;
  }
  .filters {
    position: static;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
  }
  .filter-heading {
    grid-column: 1 / -1;
  }
  .filters .filter-group {
    margin-top: 0;
  }
  .filters .search-group {
    grid-column: span 2;
  }
  .filters .mono {
    margin: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .sticky-lead {
    position: static;
    max-width: none;
    margin: 18px clamp(20px, 4vw, 42px) 0;
  }
  .cookie-consent {
    position: fixed;
    width: auto;
  }
}

@media (max-width: 980px) {
  .nav {
    align-items: center;
    flex-wrap: wrap;
    padding: 12px 0;
    gap: 12px;
  }
  .brand {
    flex: 1 1 auto;
    min-width: 0;
  }
  .brand > span:last-child { min-width: 0; }
  .mobile-menu-toggle { display: inline-flex; }
  .nav > .btn.secondary { display: none; }
  .navlinks {
    order: 3;
    flex-basis: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    max-height: 0;
    overflow: hidden;
    padding: 0;
    border: 0 solid transparent;
    background: rgba(255,253,247,.92);
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: max-height .28s ease, padding .28s ease, border-color .28s ease, opacity .2s ease, transform .28s ease, visibility .28s ease;
  }
  .nav.menu-open .navlinks {
    max-height: 520px;
    padding: 10px;
    border: 1px solid rgba(38,53,45,.14);
    border-radius: var(--radius);
    box-shadow: 0 18px 42px rgba(38,53,45,.12);
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .navlinks a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid rgba(38,53,45,.08);
    background: rgba(247,245,239,.54);
  }
  .mobile-advisory-link {
    display: flex;
    grid-column: 1 / -1;
    justify-content: center;
    background: var(--deep) !important;
    color: var(--panel) !important;
    border-color: var(--deep) !important;
    font-weight: 800;
  }
  .nav.menu-open .mobile-menu-toggle span:not(.sr-only):nth-child(2) { transform: translateY(7px) rotate(45deg); }
  .nav.menu-open .mobile-menu-toggle span:not(.sr-only):nth-child(3) { opacity: 0; }
  .nav.menu-open .mobile-menu-toggle span:not(.sr-only):nth-child(4) { transform: translateY(-7px) rotate(-45deg); }
  .hero, .section-head, .directory-shell, .feature-band, .profile-layout, .profile-summary, .detail-grid, .question-grid, .faq-list, .intelligence-strip .inner, .footer .inner {
    grid-template-columns: 1fr;
  }
  .hero-panel { min-height: 420px; }
  .filters { position: static; }
  .table-wrap { overflow-x: auto; }
  table { min-width: 920px; table-layout: auto; }
  .hub-card, .hub-card:nth-child(1), .hub-card:nth-child(2), .hub-card:nth-child(4), .hub-card:nth-child(5) { grid-column: span 12; }
  .update-card, .update-card:nth-child(1), .update-card:nth-child(2), .update-card:nth-child(4), .update-card:nth-child(5) { grid-column: span 12; }
  .insight-grid, .stage-grid, .pricing-grid { grid-template-columns: 1fr; }
  .choice-grid, .budget-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .institution-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-card { min-height: 0; }
  .answer-box { grid-template-columns: 1fr; }
  .sticky-lead { position: static; max-width: none; margin: 18px 20px 0; }
  .footer-links { justify-content: flex-start; }
}

@media (max-width: 640px) {
  :root { --container: min(100vw - 32px, 1180px); }
  .brand { gap: 10px; }
  .mark { width: 38px; height: 38px; }
  .brand small { font-size: 11px; }
  .mobile-menu-toggle {
    width: 44px;
    height: 44px;
  }
  .navlinks { grid-template-columns: 1fr; }
  .institution-grid { grid-template-columns: 1fr; }
  .hero { padding-top: 42px; }
  h1 { font-size: clamp(42px, 15vw, 64px); }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .market-card { left: 24px; right: 24px; bottom: 42px; }
  .hero-panel::after { inset-inline: 12px; }
  .filters { grid-template-columns: 1fr; }
  .filters .search-group { grid-column: auto; }
  .fact-list div { grid-template-columns: 1fr; gap: 3px; }
  .table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  table, tbody, tr, td { display: block; width: 100%; min-width: 0; }
  td:nth-child(1),
  td:nth-child(2),
  td:nth-child(3),
  td:nth-child(4),
  td:nth-child(5),
  td:nth-child(6) {
    width: 100%;
  }
  thead { display: none; }
  tbody tr {
    margin-bottom: 12px;
    border: 1px solid rgba(38,53,45,.14);
    border-radius: var(--radius);
    background: rgba(255,253,247,.82);
    overflow: hidden;
  }
  tbody tr {
    box-shadow: 0 12px 30px rgba(38,53,45,.08);
  }
  td {
    display: block;
    padding: 12px 14px;
    overflow-wrap: anywhere;
  }
  td + td {
    border-top: 1px solid rgba(216,209,195,.58);
  }
  td::before {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
  }
  td:first-child {
    padding-top: 16px;
  }
  td:first-child::before {
    margin-bottom: 8px;
  }
  .company-name {
    display: block;
    font-size: 18px;
    line-height: 1.18;
    overflow-wrap: normal;
  }
  .table-contact {
    font-size: 13px;
  }
  td .pill {
    max-width: 100%;
    white-space: normal;
  }
  td:nth-child(1)::before { content: "Name"; }
  td:nth-child(2)::before { content: "Tier"; }
  td:nth-child(3)::before { content: "Tech"; }
  td:nth-child(4)::before { content: "Best for"; }
  td:nth-child(5)::before { content: "Confidence"; }
  td:nth-child(6)::before { content: "Evidence"; }
  .role-table td:nth-child(1)::before { content: "Hub"; }
  .cookie-consent {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .cookie-consent .btn { width: 100%; }
  .tailored-modal { padding: 10px; }
  .tailored-dialog { max-height: calc(100vh - 20px); padding: 18px; }
  .tailored-progress {
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
    padding-right: 40px;
  }
  .tailored-progress span {
    font-size: 0;
  }
  .tailored-progress b {
    width: 25px;
    height: 25px;
    font-size: 11px;
  }
  .choice-grid, .budget-grid { grid-template-columns: 1fr; }
  .tailored-actions {
    flex-direction: column-reverse;
  }
  .tailored-actions .btn { width: 100%; }
}

@media (min-width: 641px) and (max-width: 820px) {
  .filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filters .search-group { grid-column: 1 / -1; }
  .table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  table, tbody, tr, td { display: block; width: 100%; min-width: 0; }
  td:nth-child(1),
  td:nth-child(2),
  td:nth-child(3),
  td:nth-child(4),
  td:nth-child(5),
  td:nth-child(6) {
    width: 100%;
  }
  thead { display: none; }
  tbody tr {
    margin-bottom: 12px;
    border: 1px solid rgba(38,53,45,.14);
    border-radius: var(--radius);
    background: rgba(255,253,247,.82);
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(38,53,45,.08);
  }
  td {
    display: block;
    padding: 12px 14px;
    overflow-wrap: anywhere;
  }
  td + td {
    border-top: 1px solid rgba(216,209,195,.58);
  }
  td::before {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
  }
  td:first-child {
    padding-top: 16px;
  }
  td:first-child::before {
    margin-bottom: 8px;
  }
  .company-name {
    display: block;
    font-size: 18px;
    line-height: 1.18;
    overflow-wrap: normal;
  }
  .table-contact {
    font-size: 13px;
  }
  td .pill {
    max-width: 100%;
    white-space: normal;
  }
  td:nth-child(1)::before { content: "Name"; }
  td:nth-child(2)::before { content: "Tier"; }
  td:nth-child(3)::before { content: "Tech"; }
  td:nth-child(4)::before { content: "Best for"; }
  td:nth-child(5)::before { content: "Confidence"; }
  td:nth-child(6)::before { content: "Evidence"; }
  .role-table td:nth-child(1)::before { content: "Hub"; }
}

body.home { --hero-image: url("/assets/solar-market.svg"); --stock-image: url("/assets/hv-transmission.svg"); }
body.market { --hero-image: url("/assets/solar-market.svg"); }
body.epc { --hero-image: url("/assets/epc-works.svg"); }
body.grid { --hero-image: url("/assets/grid-substation.svg"); }
body.finance { --hero-image: url("/assets/finance-energy.svg"); }
body.developers { --hero-image: url("/assets/developer-market-map.svg"); --stock-image: url("/assets/solar-market.svg"); }
body.news { --hero-image: url("/assets/news-market-updates.svg"); }
body.offtake { --hero-image: url("/assets/offtake-energy.svg"); }
body.hv { --hero-image: url("/assets/hv-transmission.svg"); }
body.om { --hero-image: url("/assets/grid-substation.svg"); }
body.suppliers { --hero-image: url("/assets/hv-transmission.svg"); --stock-image: url("/assets/solar-market.svg"); }
body.profiles { --hero-image: url("/assets/grid-substation.svg"); }
