/* NinoDirect modern system
   A precise, warm utility aesthetic: soft paper surfaces, ink-blue structure,
   red moments for reassurance, and the existing warm yellow for calls/actions. */
:root {
  --nd-blue: #335EEA;
  --nd-red: #DF4759;
  --nd-yellow: #FAD776;
  --nd-ink: #17234A;
  --nd-copy: #405174;
  --nd-muted: #71809D;
  --nd-paper: #F7F9FD;
  --nd-surface: #FCFDFF;
  --nd-line: #DDE5F3;
  --nd-blue-soft: #EAF0FF;
  --nd-red-soft: #FFF0F3;
  --nd-yellow-soft: #FFF7D9;
  --nd-green: #12805C;
  --nd-shadow-sm: 0 2px 7px rgba(23, 35, 74, .06);
  --nd-shadow: 0 16px 38px rgba(36, 58, 108, .10);
  --nd-shadow-lg: 0 24px 65px rgba(36, 58, 108, .14);
  --nd-radius-sm: 8px;
  --nd-radius: 14px;
  --nd-radius-lg: 22px;
  --nd-space: 8px;
  --bs-primary: #335EEA;
  --bs-primary-rgb: 51, 94, 234;
  --bs-danger: #DF4759;
  --bs-danger-rgb: 223, 71, 89;
  --bs-warning: #FAD776;
  --bs-warning-rgb: 250, 215, 118;
  --bs-success: #42BA96;
  --bs-success-rgb: 66, 186, 150;
  --bs-body-bg: #F7F9FD;
  --bs-body-color: #405174;
  --bs-link-color: #335EEA;
  --bs-link-hover-color: #2449C4;
  --bs-border-color: #DDE5F3;
}

html { scroll-behavior: smooth; }
body {
  background: var(--nd-paper) !important;
  color: var(--nd-copy);
  font-family: HKGroteskPro, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .28;
  background-image: radial-gradient(rgba(51, 94, 234, .14) .7px, transparent .7px);
  background-size: 22px 22px;
}
h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4, .display-5 {
  color: var(--nd-ink);
  font-family: HKGroteskPro, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.16;
}
h1 { font-weight: 800; }
p { color: var(--nd-copy); }
a { color: var(--nd-blue); text-underline-offset: 3px; transition: color .2s ease, opacity .2s ease; }
a:hover { color: #2449C4; }
.text-muted, .text-gray-700 { color: var(--nd-copy) !important; }
.text-gray-600, .text-gray-500 { color: var(--nd-muted) !important; }
.text-dark { color: var(--nd-ink) !important; }
.bg-light { background: var(--nd-paper) !important; }
.bg-white { background: var(--nd-surface) !important; }
.bg-dark { background: var(--nd-ink) !important; }
.border, .border-top, .border-bottom, .border-start, .border-end,
hr { border-color: var(--nd-line) !important; }

/* Navigation */
.navbar {
  min-height: 72px;
  background: rgba(255,255,255,.94) !important;
  border-bottom: 1px solid var(--nd-line) !important;
  box-shadow: 0 3px 18px rgba(23, 35, 74, .04);
  backdrop-filter: blur(14px);
}
.navbar .container, .navbar .container-md { min-height: 72px; }
.navbar-brand { padding-top: 0; padding-bottom: 0; }
.navbar-brand-img { max-height: 39px; width: auto; }
img[src*="nd.svg"], .navbar-brand-img { filter: none !important; }
.navbar-light .navbar-nav .nav-link {
  color: var(--nd-copy) !important;
  font-size: .9rem;
  font-weight: 600;
  padding: .75rem .85rem;
  border-radius: 8px;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link.active {
  color: var(--nd-blue) !important;
  background: var(--nd-blue-soft);
}
.navbar-toggler { border: 1px solid var(--nd-line); border-radius: 9px; padding: .55rem .7rem; }
.dropdown-menu {
  border: 1px solid var(--nd-line);
  border-radius: var(--nd-radius);
  box-shadow: var(--nd-shadow);
  padding: .55rem;
  background: var(--nd-surface);
}
.dropdown-menu .list-group-item {
  border: 0;
  border-radius: 10px;
  padding: .85rem;
  transition: background .2s ease, transform .2s ease;
}
.dropdown-menu .list-group-item:hover { background: var(--nd-blue-soft); transform: translateX(2px); }

/* Buttons and interactive surfaces */
.btn {
  border-radius: 9px;
  font-family: HKGroteskPro, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 700;
  letter-spacing: -.01em;
  padding: .68rem 1.05rem;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn-primary, .btn-primary:disabled {
  background: var(--nd-blue) !important;
  border-color: var(--nd-blue) !important;
  color: #fff !important;
  box-shadow: 0 7px 16px rgba(51,94,234,.20);
}
.btn-primary:hover, .btn-primary:focus { background: #2449C4 !important; border-color: #2449C4 !important; box-shadow: 0 10px 22px rgba(51,94,234,.28); }
.btn-warning {
  background: var(--nd-yellow) !important;
  border-color: var(--nd-yellow) !important;
  color: var(--nd-ink) !important;
  box-shadow: 0 6px 15px rgba(255,193,7,.22);
}
.btn-warning:hover, .btn-warning:focus { background: #F6C94F !important; border-color: #F6C94F !important; color: var(--nd-ink) !important; }
.btn-outline-primary { color: var(--nd-blue) !important; border-color: var(--nd-blue) !important; background: transparent; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background: var(--nd-blue) !important; color: #fff !important; }
.btn-primary-soft { background: var(--nd-blue-soft) !important; border-color: transparent !important; color: var(--nd-blue) !important; }
.btn-outline-secondary { color: var(--nd-copy) !important; border-color: var(--nd-line) !important; background: var(--nd-surface); }
.btn-outline-secondary:hover { color: var(--nd-ink) !important; background: var(--nd-blue-soft) !important; border-color: #B7C8F9 !important; }
.lift:hover { box-shadow: 0 12px 25px rgba(36, 58, 108, .16) !important; }

/* Cards, pricing, portal modules */
.card, .modal-content, .accordion-item {
  background: var(--nd-surface);
  border-color: var(--nd-line) !important;
  border-radius: var(--nd-radius);
  box-shadow: var(--nd-shadow-sm);
  overflow: hidden;
}
#lifeuk-pricing-cards .card,
#national-insurance-services .card,
#driving-theory-pricing-cards .card {
  overflow: visible;
  display: flex;
  flex-direction: column;
}
#lifeuk-pricing-cards .card-body,
#national-insurance-services .card-body,
#driving-theory-pricing-cards .card-body {
  flex: 1 1 auto;
}
#lifeuk-pricing-cards .card-btn,
#national-insurance-services .card-btn,
#driving-theory-pricing-cards .card-btn {
  display: block;
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
}
.card.shadow-lg, .card.shadow-light-lg { box-shadow: var(--nd-shadow) !important; }
.card:hover { border-color: #C9D6F3 !important; }
.card-body { padding: 1.5rem; }
.card-header, .card-footer {
  background: rgba(247,249,253,.72) !important;
  border-color: var(--nd-line) !important;
}
.card-header { padding: 1.1rem 1.5rem; }
.card-meta { background: var(--nd-paper); border-color: var(--nd-line); padding: 1rem 1.5rem; }
.card-btn { border-radius: 0 0 var(--nd-radius) var(--nd-radius); }
.card-bleed { border-radius: var(--nd-radius-lg); }
.icon-circle { box-shadow: 0 8px 18px rgba(230,55,87,.20); }
.bg-primary, .bg-primary-soft { background-color: var(--nd-blue) !important; }
.bg-primary-soft { background-color: var(--nd-blue-soft) !important; color: var(--nd-blue) !important; }
.bg-danger, .bg-danger-soft { background-color: var(--nd-red) !important; }
.bg-danger-soft { background-color: var(--nd-red-soft) !important; color: var(--nd-red) !important; }
.bg-warning-soft { background-color: var(--nd-yellow-soft) !important; color: #856300 !important; }
.bg-success, .bg-success-soft { background-color: var(--nd-green) !important; }
.bg-success-soft { background-color: #E3F5EE !important; color: var(--nd-green) !important; }
.bg-dark-soft { background: #E9EEFA !important; color: var(--nd-ink) !important; }
.badge { border-radius: 999px; padding: .42em .72em; font-weight: 700; letter-spacing: .01em; }
.badge.bg-primary-soft,
.badge.bg-primary-soft.text-primary { color: #2449C4 !important; }
.badge.bg-danger-soft,
.badge.bg-danger-soft.text-danger { color: #A91F3B !important; }
.badge.bg-warning-soft,
.badge.bg-warning-soft.text-warning { color: #6D5100 !important; }
.badge.bg-success-soft,
.badge.bg-success-soft.text-success { color: #0C6549 !important; }
.status-badge { display: inline-block; border-radius: 999px; padding: .38em .75em; font-size: .76rem; font-weight: 700; }

/* Homepage hero and public page rhythm */
.nd-home-hero {
  min-height: 610px;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  background: #FBFCFF;
  padding: 4.75rem 0 5.25rem;
}
.nd-home-hero-orb {
  position: absolute;
  z-index: -1;
  width: min(61vw, 790px);
  height: 790px;
  right: -145px;
  top: -170px;
  border-radius: 50%;
  background: #EEF4FF;
  box-shadow: inset 90px -30px 0 rgba(255,255,255,.72);
}
.nd-home-hero-orb::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 480px;
  right: -65px;
  bottom: -100px;
  border-radius: 50%;
  background: #F7F9FD;
  transform: rotate(28deg);
}
.nd-hero-kicker {
  display: inline-block;
  color: var(--nd-ink);
  background: var(--nd-yellow);
  border-radius: 9px;
  padding: .28rem .85rem;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -.02em;
  margin-bottom: 1.05rem;
}
.nd-hero-title {
  color: var(--nd-ink);
  font-size: clamp(3.35rem, 5.1vw, 5.1rem);
  font-weight: 800;
  letter-spacing: -.065em;
  line-height: .98;
  margin: 0 0 1.1rem;
}
.nd-hero-title span { color: var(--nd-blue); }
.nd-hero-lead {
  color: var(--nd-copy);
  font-size: 1.08rem;
  line-height: 1.45;
  margin: 0 0 1.55rem;
}
.nd-hero-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: .85rem;
  margin-bottom: 1.8rem;
}
.nd-hero-actions .btn {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding-left: .9rem;
  padding-right: .9rem;
  font-size: .82rem;
  white-space: nowrap;
}
.nd-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8rem;
}
.nd-hero-trust-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: var(--nd-ink);
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.25;
}
.nd-hero-trust-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  color: var(--nd-blue);
  background: #EAF1FF;
  border-radius: 50%;
  font-size: 1.1rem;
}
.nd-hero-service-list {
  display: grid;
  gap: .65rem;
  max-width: 560px;
  margin-left: auto;
}
.nd-hero-service-card {
  display: grid;
  grid-template-columns: 132px 1fr 36px;
  align-items: center;
  min-height: 139px;
  gap: 1rem;
  padding: .8rem 1rem .8rem .85rem;
  color: var(--nd-ink);
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(221,229,243,.9);
  border-radius: var(--nd-radius);
  box-shadow: var(--nd-shadow);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.nd-hero-service-card:hover,
.nd-hero-service-card:focus-visible {
  color: var(--nd-ink);
  border-color: #B7C8F9;
  box-shadow: var(--nd-shadow-lg);
  transform: translateX(-4px);
}
.nd-hero-service-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 112px;
  overflow: hidden;
  border-radius: 11px;
  color: var(--nd-blue);
  font-size: 4rem;
}
.nd-hero-service-art-ni { background: linear-gradient(145deg, #EEF4FF, #D9E6FF); }
.nd-hero-service-art-life { background: linear-gradient(145deg, #EAF4FF, #CFE1FF); color: #1957C9; }
.nd-hero-service-art-driving { background: linear-gradient(145deg, #DCEBFF, #BFD9FF); color: #173A91; }
.nd-hero-service-art > .fe { filter: drop-shadow(0 7px 3px rgba(23,58,145,.13)); }
.nd-hero-service-art-person,
.nd-hero-service-art-cup {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #fff;
  background: var(--nd-yellow);
  font-size: 1.2rem;
  box-shadow: 0 5px 12px rgba(23,35,74,.16);
}
.nd-hero-service-art-person { right: 17px; bottom: 18px; }
.nd-hero-service-art-cup {
  right: 17px;
  bottom: 13px;
  border-radius: 8px 8px 13px 13px;
  color: var(--nd-ink);
}
.nd-hero-service-art-road {
  position: absolute;
  width: 74px;
  height: 20px;
  bottom: 18px;
  border-top: 4px solid var(--nd-yellow);
  border-radius: 50%;
  transform: rotate(-10deg);
}
.nd-hero-service-copy strong {
  display: block;
  color: var(--nd-ink);
  font-size: 1.15rem;
  line-height: 1.18;
  margin-bottom: .55rem;
}
.nd-hero-service-copy small {
  display: block;
  color: var(--nd-copy);
  font-size: .82rem;
  line-height: 1.45;
}
.nd-hero-service-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: var(--nd-ink);
  background: #F1F5FD;
  border-radius: 50%;
  font-size: .9rem;
}
.nd-lifeuk-hero {
  min-height: 540px;
  padding-top: 3.7rem;
  padding-bottom: 4.1rem;
}
.nd-lifeuk-hero .nd-hero-title {
  font-size: clamp(2.9rem, 4.65vw, 4.65rem);
  line-height: 1.02;
}
.nd-lifeuk-hero .nd-hero-kicker {
  letter-spacing: .07em;
  text-transform: uppercase;
  padding-left: 1rem;
  padding-right: 1rem;
}
.nd-lifeuk-service-art-timer {
  background: linear-gradient(145deg, #EEF4FF, #D5E5FF);
  color: #1957C9;
}
.nd-lifeuk-service-art-explanation {
  background: linear-gradient(145deg, #F3F7FF, #D9E8FF);
  color: #1957C9;
}
.nd-lifeuk-service-art-tracking {
  background: linear-gradient(145deg, #EEF4FF, #D0E1FF);
  color: #1957C9;
}
.nd-lifeuk-service-art-display {
  position: absolute;
  top: 22px;
  left: 50%;
  padding: .25rem .5rem;
  color: #fff;
  background: var(--nd-blue);
  border-radius: 4px;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  transform: translateX(-50%);
}
.nd-lifeuk-service-art-check,
.nd-lifeuk-service-art-target {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  right: 17px;
  bottom: 15px;
  color: #fff;
  background: var(--nd-yellow);
  border-radius: 50%;
  box-shadow: 0 5px 12px rgba(23,35,74,.16);
  font-size: 1.15rem;
}
.nd-lifeuk-service-art-target {
  color: var(--nd-ink);
  background: var(--nd-yellow);
}
.nd-theory-hero {
  min-height: 540px;
  padding-top: 3.7rem;
  padding-bottom: 4.1rem;
}
.nd-theory-hero .nd-hero-title {
  font-size: clamp(2.9rem, 4.65vw, 4.65rem);
  line-height: 1.02;
}
.nd-theory-service-art-vehicle {
  background: linear-gradient(145deg, #EEF4FF, #D5E5FF);
  color: #1957C9;
}
.nd-theory-service-art-practice {
  background: linear-gradient(145deg, #F3F7FF, #D9E8FF);
  color: #1957C9;
}
.nd-theory-service-art-progress {
  background: linear-gradient(145deg, #EEF4FF, #D0E1FF);
  color: #1957C9;
}
.nd-theory-service-art-road {
  position: absolute;
  width: 76px;
  height: 12px;
  left: 21px;
  bottom: 21px;
  border-radius: 999px;
  background: repeating-linear-gradient(90deg, #fff 0 11px, transparent 11px 22px);
  opacity: .9;
}
.nd-theory-service-art-check,
.nd-theory-service-art-target {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  right: 17px;
  bottom: 15px;
  color: #fff;
  background: var(--nd-yellow);
  border-radius: 50%;
  box-shadow: 0 5px 12px rgba(23,35,74,.16);
  font-size: 1.15rem;
}
.nd-theory-service-art-target {
  color: var(--nd-ink);
}
@media (max-width: 991.98px) {
  .nd-home-hero { padding-top: 4rem; padding-bottom: 4.25rem; }
  .nd-lifeuk-hero { padding-top: 3.5rem; padding-bottom: 3.75rem; }
  .nd-theory-hero { padding-top: 3.5rem; padding-bottom: 3.75rem; }
  .navbar-collapse {
    padding: 4.5rem 0 1.25rem;
  }
  .navbar-collapse .navbar-nav {
    width: 100%;
  }
  .navbar-collapse > .navbar-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: calc(100% - 3rem);
    margin: 1rem 1.5rem 0 !important;
  }
  .navbar-collapse > .navbar-btn + .navbar-btn {
    margin-top: .75rem !important;
    margin-bottom: .5rem !important;
  }
  .nd-home-hero-orb {
    width: 90vw;
    height: 720px;
    right: -35vw;
    top: 36%;
  }
  .nd-hero-service-list { margin-left: 0; max-width: none; }
}
@media (max-width: 767.98px) {
  .nd-hero-actions { display: grid; }
  .nd-hero-actions .btn { width: 100%; justify-content: center; }
}
@media (max-width: 575.98px) {
  .nd-home-hero { min-height: 0; padding: 3rem 0 3.5rem; }
  .nd-hero-title { font-size: clamp(2.75rem, 13vw, 4rem); }
  .nd-hero-lead { font-size: 1rem; }
  .nd-hero-trust { gap: 1rem; justify-content: space-between; }
  .nd-hero-trust-item { gap: .4rem; font-size: .7rem; }
  .nd-hero-trust-icon { width: 35px; height: 35px; flex-basis: 35px; font-size: .95rem; }
  .nd-hero-service-card {
    grid-template-columns: 88px 1fr 30px;
    min-height: 105px;
    gap: .65rem;
    padding: .55rem;
  }
  .nd-hero-service-art { height: 88px; font-size: 3rem; }
  .nd-hero-service-art-person,
  .nd-hero-service-art-cup,
  .nd-lifeuk-service-art-check,
  .nd-lifeuk-service-art-target,
  .nd-theory-service-art-check,
  .nd-theory-service-art-target { width: 28px; height: 28px; right: 7px; bottom: 8px; font-size: .9rem; }
  .nd-hero-service-copy strong { font-size: .95rem; margin-bottom: .25rem; }
  .nd-hero-service-copy small { font-size: .7rem; }
}
.overlay { background-color: rgba(23,35,74,.72) !important; }
.overlay-80 { background-color: rgba(23,35,74,.80) !important; }
.overlay h1, .overlay h1 span, .overlay .text-primary, .overlay .text-danger { color: #fff !important; }
.overlay .btn-primary { background: var(--nd-blue) !important; }
.shape { opacity: .75; }
section { position: relative; }
.progress { height: 8px; overflow: hidden; border-radius: 99px; background: var(--nd-blue-soft); }
.progress-bar { background: var(--nd-blue) !important; border-radius: 99px; }

/* Keep the decorative wave transitions in their own space. The legacy theme
   uses negative margins and an oversized SVG, which can otherwise paint over
   the service cards and the testimonial boundary. */
#complete-services {
  z-index: 2;
}
#complete-services + .position-relative,
#driving-theory-services + .position-relative {
  z-index: 0;
  min-height: clamp(2.5rem, 6vw, 5rem);
  margin-top: 0 !important;
  overflow: hidden;
}
section.bg-gray-200 + .position-relative {
  z-index: 0;
  min-height: clamp(.75rem, 1.667vw, 1.5rem);
  margin-top: 0 !important;
  overflow: hidden;
}
#complete-services + .position-relative + section,
#driving-theory-services + .position-relative + section,
section.bg-gray-200 + .position-relative + section {
  z-index: 1;
}

/* The homepage uses the legacy mt-md-10 utility between service groups. Keep
   the landing page airy without stacking several full-size gaps together. */
#lifeuk-services,
#complete-services,
#driving-theory-services {
  margin-top: clamp(2.5rem, 5vw, 4rem) !important;
}
#driving-theory-services {
  margin-bottom: 0 !important;
}

/* Keep the lower homepage transitions from stacking legacy padding utilities
   into a large blank band before the testimonial and support headings. */
#testimonials {
  margin-top: 0 !important;
  padding-top: clamp(2.5rem, 5vw, 4rem) !important;
  padding-bottom: clamp(3rem, 5vw, 5rem) !important;
}
#testimonials + .position-relative {
  min-height: clamp(.75rem, 1.667vw, 1.5rem);
}
#driving-theory-services + .position-relative,
#testimonials + .position-relative {
  display: none;
}
#support {
  margin-top: 0 !important;
  padding-top: clamp(3rem, 6vw, 5rem) !important;
}
#support > .container {
  padding-top: 0 !important;
}

/* Forms and validation */
.form-label { color: var(--nd-ink); font-weight: 700; font-size: .88rem; margin-bottom: .4rem; }
.form-control, .form-select, .input-group-text {
  min-height: 46px;
  border: 1px solid #C9D5EA !important;
  border-radius: 9px;
  color: var(--nd-ink);
  background-color: var(--nd-surface);
  box-shadow: inset 0 1px 1px rgba(23,35,74,.02);
}
.form-control::placeholder { color: #99A6BE; }
.form-control:focus, .form-select:focus {
  color: var(--nd-ink);
  border-color: var(--nd-blue) !important;
  box-shadow: 0 0 0 4px rgba(51,94,234,.14) !important;
}
.form-check-input { border-color: #B7C5DF; }
.form-check-input:checked { background-color: var(--nd-blue) !important; border-color: var(--nd-blue) !important; }
.form-check-label { color: var(--nd-copy); }
.invalid-feedback { color: var(--nd-red); font-weight: 600; }
.alert { border: 1px solid transparent; border-radius: 11px; box-shadow: var(--nd-shadow-sm); }
.alert-danger { color: #A91F3B; background: var(--nd-red-soft); border-color: #F5C3CF; }
.alert-success { color: #0C6549; background: #E3F5EE; border-color: #B4E2D0; }
.alert-warning { color: #785A00; background: var(--nd-yellow-soft); border-color: #F4D980; }
.alert-light { background: var(--nd-paper); border-color: var(--nd-line); }

/* Portal has a quieter, denser workbench feel */
#portalMainNav, .portalMainNav { min-height: 64px; }
#portalMainNav .container-md { min-height: 64px; }
#portalMainNav .navbar-nav .nav-link { font-size: .82rem; padding: .55rem .7rem; }
#portalMainNav + section { padding-top: 2.5rem !important; }
#portalMainNav ~ section h1 { letter-spacing: -.045em; }
#lifeuk-dashboard .card:first-child { background: linear-gradient(135deg, #EEF3FF 0%, #FFFFFF 72%) !important; border-left: 4px solid var(--nd-blue) !important; }
#study-access { border-top: 3px solid var(--nd-red) !important; }
.app-switcher-item { border: 1px solid var(--nd-line) !important; }
.app-switcher-item:hover, .app-switcher-item.active { border-color: var(--nd-blue) !important; background: var(--nd-blue-soft) !important; box-shadow: 0 8px 24px rgba(51,94,234,.12); }
.apply-card { border: 1px solid var(--nd-line) !important; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.apply-card:hover { border-color: var(--nd-blue) !important; box-shadow: var(--nd-shadow) !important; transform: translateY(-4px); }
.list-group-item { background: transparent; border-color: var(--nd-line); }
.table { --bs-table-bg: transparent; color: var(--nd-copy); }
.table thead th { color: var(--nd-muted); background: var(--nd-paper); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.table > :not(caption) > * > * { padding: .9rem .75rem; border-bottom-color: var(--nd-line); }
.accordion-button { color: var(--nd-ink); font-weight: 700; background: var(--nd-surface); }
.accordion-button:not(.collapsed) { color: var(--nd-blue); background: var(--nd-blue-soft); box-shadow: none; }

/* Footer */
footer.bg-dark { color: #C5D1EA; }
footer.bg-dark p, footer.bg-dark .text-gray-700, footer.bg-dark li { color: #AEBBD6 !important; }
footer.bg-dark a { color: #DDE6FA !important; }
footer.bg-dark h1, footer.bg-dark h2, footer.bg-dark h3, footer.bg-dark h4, footer.bg-dark h5, footer.bg-dark h6 { color: #fff; }

/* Keyboard visibility is intentionally strong and consistent */
:focus-visible { outline: 3px solid rgba(51,94,234,.42) !important; outline-offset: 3px; }
button:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline: none; }

@media (max-width: 767.98px) {
  body { font-size: 14px; }
  .navbar, .navbar .container, .navbar .container-md { min-height: 62px; }
  .navbar-brand-img { max-height: 33px; }
  .card-body { padding: 1.25rem; }
  .display-1 { font-size: 3.25rem; }
  .display-4 { font-size: 2.15rem; }
  .btn-lg { width: 100%; }
  .navbar .btn { padding: .55rem .75rem; }
  .table-responsive { border-radius: var(--nd-radius); }
  #portalMainNav + section { padding-top: 1.5rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Driving Theory: a confident road-sign accent layered over the NinoDirect system. */
.dt-hero { background: linear-gradient(135deg, #17234A 0%, #263D80 66%, #335EEA 100%); color: #fff; overflow: hidden; }
.dt-hero::after { content:""; position:absolute; width:420px; height:420px; right:-130px; top:-180px; border:70px solid rgba(250,215,118,.18); border-radius:50%; transform:rotate(-18deg); }
.dt-hero h1, .dt-hero p { color:#fff; position:relative; z-index:1; }
.dt-kicker { color:var(--nd-yellow); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:800; }
.dt-road-card { border:0; position:relative; z-index:1; box-shadow:0 25px 70px rgba(11,22,55,.28); }
.dt-road-card .road-strip { height:10px; background:repeating-linear-gradient(90deg,var(--nd-red) 0 34px,var(--nd-yellow) 34px 68px); }
.dt-section-label { color:var(--nd-blue); text-transform:uppercase; letter-spacing:.1em; font-size:.73rem; font-weight:800; }
.dt-vehicle-card { transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.dt-vehicle-card:hover { transform:translateY(-4px); box-shadow:var(--nd-shadow); border-color:#B7C8F9 !important; }
#vehicleGrid > [class*="col-"],
#pricingGrid > [class*="col-"] { display:flex; }
#vehicleGrid .dt-vehicle-card,
#pricingGrid .dt-vehicle-card { width:100%; overflow:visible; display:flex; flex-direction:column; }
#vehicleGrid .dt-vehicle-card .card-body,
#pricingGrid .dt-vehicle-card .card-body { display:flex; flex-direction:column; flex:1 1 auto; }
#vehicleGrid .dt-vehicle-card .btn,
#pricingGrid .dt-vehicle-card .btn { margin-top:auto; }
.dt-vehicle-mark { width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:var(--nd-blue-soft);color:var(--nd-blue);font-weight:800;font-size:1.05rem; }
.dt-vehicle-mark::before { content:""; width:27px; height:14px; border:3px solid currentColor; border-radius:7px 10px 4px 4px; display:block; }
.dt-progress-ring { width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--nd-blue) var(--progress, 0%), var(--nd-blue-soft) 0); position:relative; }
.dt-progress-ring::after { content:""; position:absolute; inset:8px; border-radius:50%; background:var(--nd-surface); }
.dt-progress-ring strong { position:relative; z-index:1;color:var(--nd-ink); }
.dt-exam-shell { max-width:980px; }
.dt-option { width:100%; text-align:left; padding:1rem 1.1rem; border:1px solid var(--nd-line); border-radius:12px; background:var(--nd-surface); color:var(--nd-copy); transition:background-color .18s ease,border-color .18s ease,transform .18s ease; }
.dt-option:hover { border-color:var(--nd-blue); transform:translateX(2px); }
.dt-option.selected { border-color:var(--nd-blue); background:var(--nd-blue-soft); color:var(--nd-ink); box-shadow:0 0 0 3px rgba(51,94,234,.1); }
.dt-option-key { display:inline-grid; place-items:center; width:28px;height:28px;border-radius:8px;background:var(--nd-paper);color:var(--nd-blue);font-weight:800;margin-right:.7rem; }
.dt-option.selected .dt-option-key { background:var(--nd-blue);color:#fff; }
.dt-timer { font-variant-numeric:tabular-nums; color:var(--nd-ink); letter-spacing:.04em; }
.dt-timer.low { color:var(--nd-red); }
.dt-topic-pill { display:inline-block; border-radius:999px; padding:.35rem .7rem; background:var(--nd-yellow-soft); color:#6d5100; font-size:.75rem; font-weight:800; }
.dt-skeleton { background:linear-gradient(90deg,#edf1f8 25%,#f8faff 50%,#edf1f8 75%); background-size:200% 100%; animation:dt-shimmer 1.4s ease infinite; border-radius:9px; min-height:18px; }
@keyframes dt-shimmer { to { background-position:-200% 0; } }
.dt-tutor { border-left:4px solid var(--nd-red); background:var(--nd-red-soft); }
.dt-checkout-note { border-left:4px solid var(--nd-yellow); background:var(--nd-yellow-soft); }
@media (max-width:767.98px) {
  .dt-hero::after { width:250px;height:250px;right:-140px;top:-120px;border-width:40px; }
  .dt-hero { padding-top:3.5rem!important; padding-bottom:4rem!important; }
  .dt-option { padding:.85rem; }
}