/* ============================================
   UNIT8D — Brand Stylesheet
   Colours: Navy #262663 | Green #4AA43D | Charcoal #1C1F2B | Mid Grey #8890A6 | Light Grey #F3F4FA
   Typography: Poppins Bold (headings) | Lora (body)
   ============================================ */

@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/poppins-400.woff") format("woff")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/poppins-500.woff") format("woff")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600 800;font-display:swap;src:url("../fonts/poppins-700.woff") format("woff")}
@font-face{font-family:"Lora";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/lora-var.woff") format("woff")}
@font-face{font-family:"Lora";font-style:italic;font-weight:400 700;font-display:swap;src:url("../fonts/lora-italic-var.woff") format("woff")}

:root {
  --navy: #262663;
  --green: #4AA43D;
  --charcoal: #1C1F2B;
  --mid-grey: #8890A6;
  --green-button: #33772B; /* darker green used ONLY as the outer edge of green buttons. Button fill = logo green #4AA43D (MB decision 3 Oct 2026). */
  --text-grey: #666D82; /* accessible grey for small text on white/light grey (WCAG AA) */
  --light-grey: #F3F4FA;
  --white: #FFFFFF;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: 17px;
  color: var(--charcoal);
  line-height: 1.7;
  background: var(--white);
}

h1, h2, h3, h4, .heading-font {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
}

a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--green); }

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-bottom: 1px solid var(--light-grey);
}

.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  max-width: 1200px;
  margin: 0 auto;
}

.logo-lockup img { height: 36px; display: block; }

.main-nav { display: flex; gap: 28px; align-items: center; }
.main-nav a {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--charcoal);
  letter-spacing: 0.02em;
}
.main-nav a:hover { color: var(--green); }

.nav-cta {
  background: var(--navy);
  color: var(--white) !important;
  padding: 10px 22px;
  border-radius: 4px;
  font-size: 14px;
}
.nav-cta:hover { background: var(--green); color: var(--charcoal) !important; }

/* ---------- Nav dropdowns (Services / Governance) ---------- */
.nav-item-dropdown { position: relative; }

.nav-dropdown-toggle {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--charcoal);
  letter-spacing: 0.02em;
  background: none;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
}
.nav-dropdown-toggle:hover { color: var(--green); }
.nav-caret { font-size: 10px; transition: transform 0.15s ease; }
.nav-dropdown-toggle[aria-expanded="true"] .nav-caret { transform: rotate(180deg); }

.nav-dropdown-panel {
  display: none;
  position: absolute;
  top: calc(100% + 14px);
  left: 0;
  min-width: 220px;
  background: var(--white);
  border: 1px solid var(--light-grey);
  border-radius: 6px;
  box-shadow: 0 12px 24px rgba(0,0,0,0.12);
  padding: 8px 0;
  z-index: 110;
}
.nav-dropdown-panel.is-open { display: block; }
.nav-dropdown-panel a {
  display: block;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}
.nav-dropdown-panel a:hover { color: var(--green); background: var(--light-grey); }

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}
.nav-toggle-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--navy);
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.nav-toggle.is-active .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-active .nav-toggle-bar:nth-child(2) { opacity: 0; }
.nav-toggle.is-active .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
  .main-nav {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--white);
    border-bottom: 1px solid var(--light-grey);
    padding: 8px 24px 20px;
    box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  }
  .main-nav.is-open { display: flex; }
  .main-nav a {
    width: 100%;
    padding: 14px 0;
    border-bottom: 1px solid var(--light-grey);
  }
  .main-nav a:last-child { border-bottom: none; }
  .nav-cta {
    margin-top: 12px;
    text-align: center;
    width: 100%;
    padding: 12px 22px;
  }
  .nav-toggle { display: flex; }

  .nav-item-dropdown { width: 100%; border-bottom: 1px solid var(--light-grey); }
  .nav-dropdown-toggle {
    width: 100%;
    justify-content: space-between;
    padding: 14px 0;
  }
  .nav-dropdown-panel {
    display: none;
    position: static;
    box-shadow: none;
    border: none;
    padding: 0 0 8px 14px;
    min-width: 0;
  }
  .nav-dropdown-panel.is-open { display: block; }
  .nav-dropdown-panel a { padding: 10px 0; font-weight: 500; }
}

/* ---------- Hero (video) ---------- */
.hero-video-section {
  position: relative;
  width: 100%;
  height: 92vh;
  min-height: 560px;
  overflow: hidden;
  background: var(--charcoal);
}

.hero-video-section video {
  position: absolute;
  top: 50%; left: 50%;
  min-width: 100%; min-height: 100%;
  width: auto; height: auto;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

.hero-video-mobile-fallback {
  display: none;
}

/* On mobile, autoplay can be blocked and surface a native play button over
   the video — use a static image instead so that can never happen. */
@media (max-width: 900px) {
  .hero-video-section {
    height: 60vh;
    min-height: 420px;
  }
  .hero-video-desktop { display: none; }
  .hero-video-mobile-fallback {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(28,31,43,0.60) 0%, rgba(28,31,43,0.35) 45%, rgba(28,31,43,0.70) 100%);
}

.hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  color: var(--white);
}

.hero-content h1 {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  color: var(--white);
  margin-bottom: 18px;
  text-shadow: 0 2px 16px rgba(0,0,0,0.35);
}

.hero-content p {
  font-family: 'Lora', serif;
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  max-width: 620px;
  margin-bottom: 32px;
  text-shadow: 0 1px 10px rgba(0,0,0,0.35);
}

.hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; }

.btn-primary {
  background: var(--green);
  border: 2px solid var(--green-button) !important; /* darker outer edge; fill is logo green #4AA43D */
  color: var(--charcoal); /* charcoal on logo green = 5.9:1 (WCAG AA). White on #4AA43D is only 3.2:1. */
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  padding: 14px 30px;
  border-radius: 4px;
  font-size: 15px;
  display: inline-block;
}
.btn-primary:hover { background: var(--white); color: var(--navy); }

.btn-secondary {
  background: transparent;
  color: var(--white);
  border: 2px solid var(--white);
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  padding: 12px 28px;
  border-radius: 4px;
  font-size: 15px;
  display: inline-block;
}
.btn-secondary:hover { background: var(--white); color: var(--navy); }

/* ---------- KPI bar ---------- */
.kpi-bar {
  background: var(--navy);
  padding: 40px 0;
}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 24px;
  text-align: center;
}

.kpi-item .kpi-figure {
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-size: clamp(1.5rem, 5vw, 2.2rem);
  color: var(--green);
  display: block;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .kpi-item:last-child { grid-column: 1 / -1; }
}

.kpi-note {
  text-align: center;
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  color: var(--white);
  opacity: 0.75;
  margin: 20px auto 0;
  padding: 0 16px;
}

.kpi-item .kpi-label {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  color: var(--white);
  opacity: 0.85;
  margin-top: 4px;
}

/* ---------- Generic sections ---------- */
section { padding: 80px 0; }
.section-alt { background: var(--light-grey); }

.section-eyebrow {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 10px;
  display: block;
}

.section-title { font-size: clamp(1.8rem, 3vw, 2.6rem); margin-bottom: 20px; }

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

@media (max-width: 800px) {
  .two-col { grid-template-columns: 1fr; }
}

.img-frame {
  width: 100%;
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.img-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Value stream cards ---------- */
.value-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
  margin-top: 40px;
}

.value-card {
  border: 1px solid var(--light-grey);
  border-top: 4px solid var(--green);
  padding: 32px;
  border-radius: 4px;
}

.value-card h3 { font-size: 1.3rem; margin-bottom: 12px; }

.value-card-cta {
  text-align: left;
  margin-top: 16px;
  margin-bottom: 0;
}
.value-card-cta a {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--green);
}
.value-card-cta a:hover { color: var(--navy); }

/* ---------- Why-clients table ---------- */
.why-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 32px;
}

.why-table th,
.why-table td {
  padding: 18px 20px;
  border-bottom: 1px solid var(--light-grey);
  font-family: 'Lora', serif;
  text-align: left;
  vertical-align: middle;
}

.why-table thead th {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  color: var(--navy);
  border-bottom: 2px solid var(--navy);
  padding-bottom: 14px;
}

.why-table td:first-child,
.why-table th:first-child {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  color: var(--navy);
  width: 30%;
}

/* Capability Areas table (Capability Area / Level / Description) */
.capability-table th:nth-child(2),
.capability-table td:nth-child(2) {
  width: 140px;
  text-align: center;
  color: var(--navy);
  font-weight: 600;
  padding-left: 20px;
  padding-right: 20px;
}
.capability-table th:nth-child(3),
.capability-table td:nth-child(3) {
  padding-left: 28px;
}

/* Multi-column checkmark matrices (e.g. Sector Capability Matrix) */
.matrix-table { min-width: 640px; }
.matrix-table th:not(:first-child),
.matrix-table td:not(:first-child) {
  text-align: center;
  padding-left: 10px;
  padding-right: 10px;
  width: auto;
  color: var(--green);
  font-weight: 700;
}
.matrix-table th:not(:first-child) {
  color: var(--navy);
  font-size: 13px;
}
.matrix-table td:first-child {
  width: 22%;
}

/* ---------- Prose content pages (Services, Sectors, Capabilities, Governance, Careers, legal pages) ---------- */
.prose { padding-top: 8px; }

.prose > h2,
.prose > .draft-copy > h2,
.prose > h3,
.prose > .draft-copy > h3 {
  margin-top: 56px;
  margin-bottom: 18px;
}

.prose > h3,
.prose > .draft-copy > h3 {
  color: var(--navy);
  position: relative;
  padding-left: 18px;
}

.prose > h3::before,
.prose > .draft-copy > h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 4px;
  background: var(--green);
  border-radius: 2px;
}

.prose > h4,
.prose > .draft-copy > h4 {
  margin-top: 32px;
  margin-bottom: 14px;
  font-size: 1.05rem;
  color: var(--navy);
  position: relative;
  padding-left: 14px;
}

.prose > h4::before,
.prose > .draft-copy > h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 3px;
  background: var(--green);
  border-radius: 2px;
}

.prose > h2:first-child,
.prose > .draft-copy > h2:first-child,
.prose > h3:first-child,
.prose > .draft-copy > h3:first-child,
.prose > h4:first-child,
.prose > .draft-copy > h4:first-child {
  margin-top: 0;
}

.prose > h3 + h4,
.prose > .draft-copy > h3 + h4 {
  margin-top: 8px;
}

.prose > p,
.prose > .draft-copy > p {
  margin-bottom: 20px;
  font-size: 1.05rem;
  line-height: 1.8;
  max-width: 68ch;
}

.prose > ul,
.prose > .draft-copy > ul,
.prose > ol,
.prose > .draft-copy > ol {
  margin: 0 0 24px 0;
  padding-left: 24px;
}

.prose > ul li,
.prose > .draft-copy > ul li,
.prose > ol li,
.prose > .draft-copy > ol li {
  margin-bottom: 10px;
  line-height: 1.65;
}

.prose > ul li p,
.prose > .draft-copy > ul li p,
.prose > ol li p,
.prose > .draft-copy > ol li p {
  margin: 0;
}

.prose > table,
.prose > .draft-copy > table {
  margin: 28px 0 40px;
}

.prose .trust-list {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--light-grey);
}

.prose .trust-pill,
a.trust-pill {
  display: inline-block;
}
a.trust-pill:hover { background: var(--navy); color: var(--white); }

/* Policy list rows (governance-policies.html) */
.policy-row {
  padding: 24px 0;
  border-bottom: 1px solid var(--light-grey);
}
.policy-row h4 {
  font-size: 1.1rem;
  margin-bottom: 8px;
  color: var(--navy);
  position: relative;
  padding-left: 14px;
}
.policy-row h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 3px;
  background: var(--green);
  border-radius: 2px;
}
.policy-row .policy-summary {
  color: var(--charcoal);
  margin-bottom: 14px;
  line-height: 1.6;
}
.policy-row .policy-actions {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.policy-row .policy-actions a { display: inline-block; }

.full-policies-note {
  margin-top: 40px;
  padding: 28px;
  background: var(--light-grey);
  border-radius: 6px;
  line-height: 1.7;
}
.full-policies-note h3 { margin-top: 0; margin-bottom: 12px; }
.full-policies-note p { margin-bottom: 0; }

/* One-line declarative statements used as visual emphasis between sections */
.prose p.callout-line {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--navy);
  text-align: center;
  max-width: 960px;
  margin: 48px auto 52px;
  padding: 0;
  line-height: 1.5;
  border-left: none;
}

.prose p.callout-line.callout-green {
  color: var(--green);
}

/* Mid-page "Speak with us" style CTA buttons */
.prose p.prose-cta {
  margin-top: 24px;
  margin-bottom: 0;
}

/* ---------- Image grid ---------- */
.image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.image-grid .img-frame { aspect-ratio: 1/1; }

.image-grid .img-frame-link { display: block; }

.image-grid figcaption {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  margin-top: 10px;
}
.image-grid figcaption a { color: inherit; }
.image-grid figcaption a:hover { color: var(--green); }

/* ---------- CTA band ---------- */
.cta-band {
  background: var(--charcoal);
  color: var(--white);
  text-align: center;
  padding: 70px 0;
}
.cta-band h2 { color: var(--white); }
.cta-band p { color: var(--light-grey); max-width: 560px; margin: 16px auto 32px; }

/* ---------- FAQ ---------- */
.faq-item { border-bottom: 1px solid var(--light-grey); padding: 22px 0; }
.faq-item h4 { font-size: 1.05rem; margin-bottom: 8px; }
.faq-item p { color: var(--charcoal); }

/* ---------- Trust signals ---------- */
.trust-list {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
}
.trust-pill {
  background: var(--light-grey);
  color: var(--navy);
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 30px;
}

/* ---------- Footer ---------- */
.site-footer {
  background: var(--charcoal);
  color: var(--light-grey);
  padding: 60px 0 30px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr repeat(5, 1fr);
  gap: 32px;
  margin-bottom: 40px;
}

@media (max-width: 1000px) {
  .footer-grid { grid-template-columns: 1fr 1fr 1fr; }
  .footer-logo { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-logo { grid-column: 1 / -1; }
}

.footer-grid h4 {
  color: var(--white);
  font-size: 14px;
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.footer-grid a { color: var(--light-grey); display: block; margin-bottom: 10px; font-size: 14px; }
.footer-grid a:hover { color: var(--green); }

.footer-logo img { height: 32px; margin-bottom: 16px; }
.footer-grid p { font-size: 14px; color: var(--mid-grey); }

.footer-social {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}
.footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  transition: background 0.15s ease;
  margin-bottom: 0;
}
.footer-social a:hover { background: var(--green); }
.footer-social svg { width: 16px; height: 16px; fill: var(--light-grey); }
.footer-social a:hover svg { fill: var(--charcoal); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 13px;
  color: var(--mid-grey);
}

/* ===== Careers form — candidate application ===== */
.form-label {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  font-size: 14px;
  display: block;
  margin-bottom: 6px;
}

.form-input {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--mid-grey);
  border-radius: 4px;
  font-family: 'Lora', serif;
  font-size: 15px;
  background: var(--white);
}

.form-input:focus {
  outline: 2px solid var(--navy);
  outline-offset: 1px;
}

.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
  border: 1px solid var(--mid-grey);
  border-radius: 4px;
  padding: 14px;
}

.checkbox-list-scroll {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
  border: 1px solid var(--mid-grey);
  border-radius: 4px;
  padding: 14px;
  max-height: 320px;
  overflow-y: auto;
  background: var(--white);
}

.checkbox-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
}

.checkbox-item input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .checkbox-grid, .checkbox-list-scroll {
    grid-template-columns: 1fr;
  }
}

/* ---------- Careers form: hints, grouped qualifications, conditional "Other" boxes ---------- */
.form-hint { font-weight: 400; font-size: 13px; color: var(--text-grey); }
.qual-group { margin-bottom: 14px; }
.qual-group-title { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 13px; color: var(--navy); margin: 0 0 6px; }
.other-specify { margin-top: 12px; padding: 14px 16px; background: var(--white); border-left: 3px solid var(--green); border-radius: 4px; }
.other-specify[hidden] { display: none; }

/* Homepage hero: "Delivered with confidence." sits one line lower so it clears the logo on the hi-vis */
.hero-content p .hero-tagline { display: block; margin-top: 1.5em; }

/* Mobile: keep two-line green callouts on exactly two lines */
@media (max-width: 600px) {
  .prose p.callout-line { font-size: 1.12rem; }
}

/* Linked section headings + soft text CTAs (sectors page) */
.prose h3 a.heading-link { color: inherit; text-decoration: none; }
.prose h3 a.heading-link:hover { color: var(--green); text-decoration: underline; text-underline-offset: 4px; }
.prose p.soft-cta { margin: 14px 0 36px; }
.prose p.soft-cta a { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 15px; color: var(--green); text-decoration: none; }
.prose p.soft-cta a:hover { color: var(--navy); }

/* ---------- iN-sites blog ---------- */
.in-sites-meta { font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; color: var(--text-grey); margin-bottom: 6px; }
.in-sites-meta a { color: var(--text-grey); }
.in-sites-card { border: 1px solid var(--light-grey); border-top: 4px solid var(--green); border-radius: 4px; padding: 28px; margin: 12px 0 36px; }
.in-sites-card h2 { font-size: 1.4rem; margin: 4px 0 12px; }
.in-sites-card h2 a { color: var(--navy); text-decoration: none; }
.in-sites-card h2 a:hover { color: var(--green); }
.in-sites-more { font-family: 'Poppins', sans-serif; font-weight: 700; color: var(--green); text-decoration: none; }


/* Launch QA — semantic/accessibility additions */
.skip-link { position:fixed; left:16px; top:-80px; z-index:9999; background:var(--navy); color:#fff; padding:12px 18px; border-radius:0 0 4px 4px; font-family:'Poppins',sans-serif; font-weight:600; }
.skip-link:focus { top:0; }
.social-placeholder { width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; opacity:.48; cursor:not-allowed; }
.social-placeholder svg { width:17px; height:17px; fill:currentColor; }
/* h2 is now the correct semantic level for prose section headings; retain established visual treatment. */
.prose > h2, .prose > .draft-copy > h2 { font-size:1.45rem; margin-top:42px; margin-bottom:16px; position:relative; padding-left:18px; }
.prose > h2::before, .prose > .draft-copy > h2::before { content:''; position:absolute; left:0; top:.18em; bottom:.18em; width:4px; background:var(--green); border-radius:2px; }
.faq-item h3 { font-size:1.05rem; margin-bottom:8px; }
.footer-grid h2, .footer-grid h3 { color:var(--white); font-size:.95rem; margin-bottom:14px; }
.form-consent a { text-decoration:underline; text-underline-offset:2px; }

/* ===== Accessibility: reduced motion — still image instead of video (3 Oct 2026) ===== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .hero-video-desktop { display: none !important; }
  .hero-video-mobile-fallback { display: block !important; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
}

.footer-family { overflow:hidden; border-top:1px solid rgba(255,255,255,0.12); margin-top:32px; padding:18px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.footer-family .ff-track { display:flex; width:max-content; animation:ff-roll 40s linear infinite; }
.footer-family:hover .ff-track, .footer-family:focus-within .ff-track { animation-play-state:paused; }
.footer-family .ff-set { display:flex; }
.footer-family .ff-item { display:inline-flex; align-items:center; gap:10px; padding:0 36px; white-space:nowrap; color:var(--light-grey); font-size:15px; border-right:1px solid rgba(255,255,255,0.15); text-decoration:none; }
.footer-family .ff-logo { height:28px; width:auto; flex:0 0 auto; display:block; }
.footer-family .ff-item strong { font-family:'Poppins',sans-serif; font-weight:700; color:var(--white); }
.footer-family .ff-soon { font-style:normal; font-family:'Poppins',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--green); border:1px solid var(--green); border-radius:999px; padding:2px 8px; }
.footer-family a.ff-item:hover strong, .footer-family a.ff-item:focus-visible strong { color:var(--green); }
.footer-family a.ff-item:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.footer-family.is-paused .ff-track { animation-play-state:paused; }
.ff-pause { display:block; margin:10px auto 0; background:transparent; border:1px solid rgba(255,255,255,0.3); color:var(--light-grey); font:600 12px 'Poppins',sans-serif; border-radius:999px; padding:4px 12px; cursor:pointer; }
.ff-pause:hover, .ff-pause:focus-visible { border-color:var(--green); color:var(--white); }
@keyframes ff-roll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (max-width:600px) { .footer-family .ff-item { padding:0 22px; font-size:14px; } .footer-family .ff-logo { height:24px; } }
@media (prefers-reduced-motion: reduce) { .footer-family .ff-track { animation:none !important; flex-wrap:wrap; width:auto; } .footer-family .ff-set { flex-wrap:wrap; row-gap:14px; } .footer-family .ff-set[aria-hidden] { display:none; } .footer-family { -webkit-mask-image:none; mask-image:none; } .ff-pause { display:none; } }
/* urROUTE (UNIT8D edition) */
.ur-hero { position:relative; min-height:380px; background:#262663; display:flex; align-items:center; }
.ur-hero .ur-logo { width:min(360px,80%); height:auto; margin-bottom:24px; display:block; }
.ur-edition { font-family:'Poppins',sans-serif; font-weight:600; color:var(--green) !important; letter-spacing:.02em; }
.ur-coming { background:var(--light-grey); border-left:4px solid var(--green); padding:14px 18px; border-radius:4px; }
.ur-tool-title { color:var(--navy); font-size:1.4rem; margin-bottom:18px; }
.ur-tool-title span { display:block; font-size:.95rem; font-weight:600; color:var(--text-grey); }
.ur-controls { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:18px; }
.ur-controls label, .ur-map-pick { display:flex; flex-direction:column; gap:6px; font-family:'Poppins',sans-serif; font-weight:600; color:var(--navy); font-size:14px; }
.ur-controls input, .ur-controls select, .ur-map-pick select { min-width:220px; max-width:100%; padding:12px; border:1px solid var(--mid-grey); border-radius:6px; font:inherit; font-family:'Lora',serif; font-weight:500; background:#fff; color:var(--charcoal); }
.ur-controls input { min-width:300px; }
.ur-controls input:focus-visible, .ur-controls select:focus-visible, .ur-map-pick select:focus-visible { outline:3px solid var(--green); outline-offset:1px; }
.ur-views { display:flex; gap:4px; border-bottom:2px solid var(--light-grey); margin-bottom:18px; }
.ur-views button { background:none; border:0; border-bottom:3px solid transparent; margin-bottom:-2px; padding:10px 16px; font:700 15px 'Poppins',sans-serif; color:var(--text-grey); cursor:pointer; }
.ur-views button[aria-selected="true"] { color:var(--navy); border-bottom-color:var(--green); }
.ur-views button:focus-visible { outline:3px solid var(--green); outline-offset:-3px; }
.ur-count { font-size:14px; color:var(--text-grey); margin:0 0 12px; }
.ur-layout { display:grid; grid-template-columns:minmax(240px,320px) 1fr; gap:24px; align-items:start; }
.ur-list { list-style:none; margin:0; padding:0; max-height:760px; overflow:auto; border:1px solid #e3e5ee; border-radius:10px; background:#fff; }
.ur-list li + li { border-top:1px solid var(--light-grey); }
.ur-item { display:flex; flex-direction:column; gap:2px; padding:12px 16px; text-decoration:none; color:var(--charcoal); }
.ur-item:hover, .ur-item:focus-visible { background:var(--light-grey); outline:none; box-shadow:inset 4px 0 0 var(--green); }
.ur-item.is-current { background:var(--light-grey); box-shadow:inset 4px 0 0 var(--navy); }
.ur-item-t { font-family:'Poppins',sans-serif; font-weight:600; color:var(--navy); font-size:15px; }
.ur-item-m { font-size:13px; color:var(--text-grey); }
.ur-empty { padding:16px; color:var(--text-grey); }
.ur-card { background:#fff; border-radius:10px; padding:28px; box-shadow:0 2px 10px rgba(28,31,43,.06); min-width:0; }
.ur-card h3 { margin:6px 0 10px; color:var(--navy); }
.ur-card h3:focus { outline:none; }
.ur-card h4 { margin:22px 0 8px; color:var(--navy); font-size:16px; }
.ur-hint { color:var(--text-grey); }
.ur-tag { font-family:'Poppins',sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--green); font-weight:700; }
.ur-facts { list-style:none; padding:0; margin:14px 0 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:6px 24px; font-size:15px; }
.ur-tickets { list-style:none; padding:0; margin:0; }
.ur-tickets li { border-bottom:1px solid var(--light-grey); }
.ur-tickets summary { display:flex; justify-content:space-between; gap:16px; padding:10px 0; cursor:pointer; font-size:15px; }
.ur-tickets summary:focus-visible { outline:3px solid var(--green); outline-offset:2px; }
.ur-lasts { color:var(--text-grey); white-space:nowrap; font-size:13px; }
.ur-cred { display:grid; grid-template-columns:max-content 1fr; gap:4px 14px; margin:0 0 12px; padding:12px 14px; background:var(--light-grey); border-radius:6px; font-size:14px; }
.ur-cred dt { font-family:'Poppins',sans-serif; font-weight:600; color:var(--navy); }
.ur-cred dd { margin:0; }
.ur-nexts { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
.ur-next { display:flex; flex-direction:column; gap:3px; height:100%; border:1px solid var(--green); background:#fff; color:var(--navy); padding:10px 14px; border-radius:6px; text-decoration:none; }
.ur-next:hover, .ur-next:focus-visible { background:var(--light-grey); outline:2px solid var(--green); }
.ur-next-t { font-family:'Poppins',sans-serif; font-weight:600; }
.ur-next-m, .ur-need { font-size:13px; color:var(--text-grey); }
.ur-maplink { font-family:'Poppins',sans-serif; font-weight:700; color:var(--green); text-decoration:none; }
.ur-map-pick { margin-bottom:12px; }
.ur-ladder { list-style:none; margin:0 0 28px; padding:0 0 0 0; position:relative; }
.ur-rung { display:grid; grid-template-columns:52px 1fr; gap:12px; align-items:center; padding:10px 0; border-bottom:4px solid #d9dce6; position:relative; }
.ur-rung-l { font-family:'Poppins',sans-serif; font-weight:800; color:#fff; background:var(--navy); border-radius:6px; text-align:center; padding:6px 0; font-size:14px; }
.ur-rung.is-empty .ur-rung-l { background:#b9bdcb; }
.ur-rung.is-empty { padding:4px 0; }
.ur-rung-roles { display:flex; flex-wrap:wrap; gap:10px; min-height:8px; }
.ur-node { display:flex; flex-direction:column; gap:2px; background:#fff; border:1px solid #cfd3df; border-left:4px solid var(--green); border-radius:6px; padding:8px 12px; text-decoration:none; color:var(--navy); font-family:'Poppins',sans-serif; font-weight:600; font-size:14px; max-width:280px; }
.ur-node small { font-family:'Lora',serif; font-weight:500; color:var(--text-grey); font-size:12px; }
.ur-node.is-start { border-left-color:var(--navy); background:var(--light-grey); }
.ur-node:hover, .ur-node:focus-visible { outline:2px solid var(--green); }
.ur-paths-h { color:var(--navy); margin:8px 0 12px; }
.ur-paths { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.ur-path { background:#fff; border-radius:10px; padding:18px; box-shadow:0 2px 10px rgba(28,31,43,.06); }
.ur-path h4 { color:var(--navy); font-size:15px; margin-bottom:10px; }
.ur-steps { list-style:none; margin:0; padding:0; border-left:3px solid var(--green); }
.ur-steps li a { display:flex; gap:8px; align-items:baseline; padding:5px 10px; color:var(--charcoal); text-decoration:none; font-size:14px; }
.ur-steps li a:hover, .ur-steps li a:focus-visible { background:var(--light-grey); outline:none; }
.ur-step-l { font-family:'Poppins',sans-serif; font-weight:700; color:var(--green); font-size:12px; min-width:22px; }
.ur-note { font-size:14px; color:var(--text-grey); margin-top:16px; }
@media (max-width:860px){ .ur-layout { grid-template-columns:1fr; } .ur-list { max-height:320px; } }
@media (max-width:600px){ .ur-card { padding:20px; } .ur-controls input, .ur-controls select, .ur-map-pick select { min-width:0; width:100%; } .ur-controls label, .ur-map-pick { width:100%; } .ur-tickets summary { flex-direction:column; gap:2px; } .ur-cred { grid-template-columns:1fr; } .ur-rung { grid-template-columns:40px 1fr; } }

/* iN-sites page (11 Oct 2026) */
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.in-sites-hero .in-sites-logo { width:min(420px,78vw); height:auto; display:block; margin:0 auto 14px; }
.in-sites-format { background:var(--light-grey); border-left:4px solid var(--green); padding:16px 20px; border-radius:4px; }
.in-sites-empty { border:1px dashed var(--mid-grey); border-top:4px solid var(--green); border-radius:4px; padding:28px; margin:12px 0 36px; text-align:center; }
.in-sites-empty h3 { color:var(--navy); margin:4px 0 10px; }
.footer-family .ff-logo-chip { background:var(--light-grey); border-radius:50%; padding:3px; height:30px; width:30px; }
.in-sites-hero .hero-content { text-align:center; display:flex; flex-direction:column; justify-content:center; align-items:center; }

/* Brand buttons: compact, logo-led, replaces heavy green CTA blocks */
.btn-brand { display:inline-flex; align-items:center; gap:10px; padding:8px 16px 8px 10px; border:1.5px solid var(--navy); border-radius:999px; background:var(--white); color:var(--navy); font:600 14px 'Poppins',sans-serif; text-decoration:none; line-height:1; transition:background .15s, color .15s; }
.btn-brand img { height:28px; width:auto; display:block; }
.btn-brand:hover, .btn-brand:focus-visible { background:var(--navy); color:var(--white); }
.btn-brand-dark { background:var(--navy); color:var(--white); border-color:var(--navy); }
.btn-brand-dark img { height:24px; }
.btn-brand-dark:hover, .btn-brand-dark:focus-visible { background:var(--white); color:var(--navy); }
.brand-funnel { margin:32px 0 8px; padding:20px 22px; border-left:4px solid var(--green); background:var(--off-white, #F5F7FA); border-radius:4px; }
.brand-funnel p { margin:0 0 14px; }
.prose p.prose-cta + p { margin-top:24px; }
.nowrap{white-space:nowrap}

/* Footer brand banner v2: white band, logo + tag only */
.footer-family { background:#fff; border-top:none; border-radius:6px; padding:14px 0; }
.footer-family .ff-item { color:var(--navy); border-right:1px solid #E3E6EE; gap:12px; }
.footer-family .ff-item span { color:var(--charcoal, #1C1F2B); font-family:'Poppins',sans-serif; font-weight:600; font-size:14px; }
.footer-family .ff-logo.ff-tall { height:40px; }
.footer-family .ff-soon { color:#33772B; border-color:#33772B; }
.footer-family a.ff-item:hover, .footer-family a.ff-item:focus-visible { background:#F5F7FA; }
@media (max-width:600px) { .footer-family .ff-logo.ff-tall { height:34px; } }

/* ===== Hero video pause control (WCAG 2.2.2) ===== */
.hero-pause { position:absolute; right:20px; bottom:20px; z-index:3; display:inline-flex; gap:8px; align-items:center; background:rgba(28,31,43,.75); color:#fff; border:2px solid #fff; border-radius:999px; padding:8px 16px; font:600 14px 'Poppins',sans-serif; cursor:pointer; }
.hero-pause:hover { background:var(--charcoal); }
.hero-pause:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
@media (max-width: 768px) { .hero-pause { display:none; } }
@media (prefers-reduced-motion: reduce) { .hero-pause { display:none; } }

/* Mobile: keep comparison tables inside the screen (no sideways page scroll) */
@media (max-width: 640px) {
  .why-table { width: 100%; max-width: 100%; table-layout: fixed; }
  .why-table th, .why-table td { overflow-wrap: break-word; padding-left: 8px; padding-right: 8px; font-size: .9rem; }
  .why-table th:first-child, .why-table td:first-child { width: 40%; }
}

/* Desktop: green callouts sit on one line where they fit (MB, 24 Oct 2026). Mobile keeps the two-line break. */
@media (min-width: 901px) {
  .prose p.callout-line br.m-br { display: none; }
  .prose p.callout-line { max-width: 100%; }
}

/* Careers: brand journey diagram (uREADY → urROUTE → urM8S → UNIT8D) */
.brand-chain { list-style:none; padding:0; margin:28px 0; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; counter-reset:bc; }
.brand-chain li { position:relative; background:var(--white); border:1px solid #DDE1EA; border-top:4px solid var(--green); border-radius:8px; padding:18px 16px; display:flex; flex-direction:column; gap:8px; }
.brand-chain li img { height:34px; width:auto; max-width:100%; object-fit:contain; object-position:left center; }
.brand-chain li strong { font-family:'Poppins',sans-serif; color:var(--navy); font-size:1rem; }
.brand-chain li span { font-size:.95rem; line-height:1.55; }
.brand-chain li:not(:last-child)::after { content:"›"; position:absolute; right:-21px; top:50%; transform:translateY(-50%); color:var(--green); font:700 28px 'Poppins',sans-serif; }
@media (max-width:900px) { .brand-chain { grid-template-columns:1fr; gap:22px; } .brand-chain li:not(:last-child)::after { content:"⌄"; right:auto; left:50%; top:auto; bottom:-24px; transform:translateX(-50%); } }
.btn-brand-green { border-color:var(--green); border-width:2px; }
.btn-brand-green:hover, .btn-brand-green:focus-visible { background:var(--green); color:var(--charcoal); }
/* United Solutions lifecycle: one line on desktop */
.prose p.lifecycle strong { font-size:.95rem; }
.prose p.lifecycle span { color:var(--green); margin:0 2px; }
@media (min-width:901px) { .prose p.lifecycle { white-space:nowrap; } }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

@media (min-width:901px){.brand-chain.brand-chain-3{grid-template-columns:repeat(3,1fr);}}

@media (min-width:1200px){.prose p.callout-line[style*="--fit"]{font-size:var(--fit);margin-left:-70px;margin-right:-70px;max-width:none;}}
@media (max-width:1199px){.prose p.callout-line[style*="--fit"] br.m-br{display:inline;}}
.why-table.gov-tier th:nth-child(1),.why-table.gov-tier td:nth-child(1){width:12%!important;}
.why-table.gov-tier th:nth-child(2),.why-table.gov-tier td:nth-child(2){width:30%;}
.why-table.gov-policy th:nth-child(1),.why-table.gov-policy td:nth-child(1){width:24%!important;}
.why-table.gov-policy th:nth-child(2),.why-table.gov-policy td:nth-child(2){width:30%;}
.why-table.gov-tier,.why-table.gov-policy{table-layout:fixed;width:100%;}

.brand-chain li{padding:0;}
.brand-chain .bc-link{display:flex;flex-direction:column;gap:8px;padding:18px 16px;height:100%;color:inherit;text-decoration:none;border-radius:8px;}
.brand-chain .bc-link:hover{background:#F3F8F1;}
.brand-chain .bc-tag{font-style:normal;font-size:.85rem;color:var(--navy);font-weight:600;margin-top:-4px;}
.brand-chain li span img.bc-mini{display:inline;height:1.15em;width:auto;vertical-align:-0.2em;max-width:none;}
/* Tighten section ends: no trailing margin after the last block */
section .container > :last-child, section .prose > :last-child, .brand-funnel > :last-child { margin-bottom:0; }
@media (max-width:900px){ section { padding:52px 0; } }
@media (max-width:900px){
.why-table.gov-tier th:nth-child(1),.why-table.gov-tier td:nth-child(1){width:16%!important;}
.why-table.gov-tier th:nth-child(2),.why-table.gov-tier td:nth-child(2){width:34%;}
.why-table.gov-policy th:nth-child(1),.why-table.gov-policy td:nth-child(1){width:25%!important;}
.why-table.gov-policy th:nth-child(2),.why-table.gov-policy td:nth-child(2){width:40%;}
.why-table.gov-policy td{hyphens:auto;}
}

.in-sites-subscribe{margin-top:56px;padding:32px;border:1px solid #DDE1EA;border-top:4px solid var(--green);border-radius:8px;background:#fff;}
.in-sites-subscribe h2{margin-top:0;}
.ins-choice{border:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 24px;}
.ins-choice legend{width:100%;}
.ins-choice label{display:flex;gap:8px;align-items:center;font-size:15px;}
@media (max-width:600px){.in-sites-subscribe{padding:20px;}}
@media (max-width:900px){ .footer-family .ff-track { animation-duration:20s; } }

.ur-subtle{margin:28px 0 0;font-size:.9rem;}
.ur-subtle a{display:inline-flex;align-items:center;gap:10px;color:var(--navy);text-decoration:none;opacity:.85;}
.ur-subtle a:hover,.ur-subtle a:focus-visible{opacity:1;text-decoration:underline;}
.ur-subtle img{height:28px;width:auto;}
