:root {
  --green-800: #14532D;
  --green-700: #166534;
  --green-600: #16A34A;
  --blue-500: #0F75E0;
  --cu-color-brand-primary: var(--green-700);
  --cu-color-brand-primary-light: #1D8746;
  --cu-color-brand-primary-dark: var(--green-800);
  --cu-color-border-strong: var(--green-800);
  --cu-color-border-subtle: #C6D5C6;
  --cu-color-surface-base: #FFFFFF;
  --cu-color-surface-muted: #F5F7F7;
  --cu-color-surface-emphasis: #E9F2EC;
  --cu-color-surface-deep: #0B1A0B;
  --cu-color-text-primary: #111111;
  --cu-color-text-secondary: #3A3A3A;
  --cu-color-text-tertiary: #6C6C6C;
  --cu-color-text-inverse: #FFFFFF;
  --cu-color-accent-focus: var(--green-600);
  --cu-spacing-2: 0.5rem;
  --cu-spacing-3: 0.75rem;
  --cu-spacing-4: 1rem;
  --cu-spacing-5: 1.25rem;
  --cu-spacing-6: 1.5rem;
  --cu-spacing-8: 2rem;
  --cu-spacing-10: 2.5rem;
  --cu-spacing-12: 3rem;
  --cu-spacing-14: 3.5rem;
  --cu-spacing-16: 4rem;
  --cu-spacing-18: 4.5rem;
  --cu-spacing-20: 5rem;
  --cu-spacing-24: 6rem;
  --cu-hero-padding-block: clamp(7rem, calc(12vw + 4rem), 9.5rem);
  --cu-hero-height: clamp(520px, 68vh, 640px);
  --cu-section-heading-offset: clamp(0.5rem, 1.6vw, 1.25rem);
  --cu-gallery-card-max-width: 380px;
  --cu-gallery-image-height: 252px;
  --cu-portfolio-gallery-card-max-width: 494px;
  --cu-portfolio-gallery-image-height: 328px;
  --cu-header-height: 83px;
  --cu-header-height-mobile: 66px;
  --cu-technology-nav-height: 52px;
  --cu-technology-anchor-offset: calc(var(--cu-header-height) + var(--cu-technology-nav-height) + 1rem);
  --cu-technology-anchor-offset-mobile: calc(var(--cu-header-height-mobile) + var(--cu-technology-nav-height) + 0.75rem);
  --cu-font-heading: 'Inter', sans-serif;
  --cu-font-body: 'Source Sans 3', 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --cu-max-width: 1200px;
  --cu-radius-sm: 10px;
  --cu-radius-md: 14px;
  --cu-radius-lg: 18px;
  --cu-radius-xl: 28px;
  --cu-radius-pill: 999px;
  --cu-border-card: rgba(20, 83, 45, 0.14);
  --cu-border-card-strong: rgba(20, 83, 45, 0.24);
  --cu-border-technical: rgba(15, 117, 224, 0.18);
  --cu-border-status: rgba(20, 83, 45, 0.2);
  --cu-elevation-card: 0 12px 32px rgba(12, 36, 12, 0.07);
  --cu-elevation-card-raised: 0 18px 44px rgba(12, 36, 12, 0.1);
  --cu-elevation-focus: 0 0 0 5px rgba(22, 163, 74, 0.16);
  --cu-surface-card: linear-gradient(180deg, #FFFFFF 0%, #FBFDFC 100%);
  --cu-surface-card-technical: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 249, 250, 0.98) 100%);
  --cu-surface-card-evidence: linear-gradient(180deg, #FFFFFF 0%, #F7FBF8 100%);
  --cu-surface-card-routing: linear-gradient(180deg, #FFFFFF 0%, #F9FAF8 100%);
  --cu-color-technical-accent: #0E7490;
  --cu-color-status-live: #14532D;
  --cu-color-status-pilot: #0E7490;
  --cu-color-status-review: #334155;
  --cu-color-status-muted: #475569;
  --cu-surface-status-live: rgba(20, 83, 45, 0.1);
  --cu-surface-status-pilot: rgba(14, 116, 144, 0.1);
  --cu-surface-status-review: rgba(51, 65, 85, 0.1);
  --cu-surface-status-muted: rgba(71, 85, 105, 0.1);
  --cu-motion-fast: 140ms;
  --cu-motion-base: 200ms;
  --cu-motion-slow: 320ms;
  --cu-motion-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: var(--cu-font-body);
  color: var(--cu-color-text-primary);
  background: var(--cu-color-surface-base);
  line-height: 1.6;
}

a {
  color: var(--cu-color-brand-primary);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--green-700);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.cu-skip-link {
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-120%);
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  border-radius: 0 0 var(--cu-spacing-2) var(--cu-spacing-2);
  text-decoration: none;
  z-index: 200;
  transition: transform 0.2s ease-in-out;
}

.cu-skip-link:focus,
.cu-skip-link:focus-visible,
.cu-skip-link:hover {
  transform: translateY(0);
  color: var(--cu-color-text-inverse);
}

.is-hidden {
  display: none !important;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 4px;
  box-shadow: var(--cu-elevation-focus);
}

.cu-container {
  max-width: var(--cu-max-width);
  margin: 0 auto;
  padding: 0 var(--cu-spacing-4);
}

section > .cu-container > h2,
section > .cu-container > header > h2,
section > .cu-container > .cu-section__header > h2 {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.cu-header {
  background: var(--cu-color-surface-base);
  border-bottom: 4px solid var(--cu-color-border-strong);
  position: sticky;
  top: 0;
  z-index: 100;
}

.cu-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--cu-max-width);
  margin: 0 auto;
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  gap: var(--cu-spacing-4);
}

.cu-header__brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.cu-header__brand a {
  display: inline-flex;
  align-items: center;
  width: 112px;
}

.cu-header__logo {
  display: block;
  height: 55px;
  width: auto;
  margin: -8px 0;
}

.cu-header__nav ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: var(--cu-spacing-4);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  font-size: 0.95rem;
}

.cu-header__nav a:hover,
.cu-header__nav a:focus {
  color: var(--blue-500);
}

.cu-header__actions {
  display: flex;
  gap: var(--cu-spacing-3);
  align-items: center;
}

.cu-header__menu {
  display: none;
  position: relative;
}

.cu-header__menu-toggle {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  border: 2px solid var(--cu-color-border-strong);
  background: transparent;
  color: var(--cu-color-text-primary);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.8rem;
}

.cu-header__menu-toggle::-webkit-details-marker {
  display: none;
}

.cu-header__menu-toggle::marker {
  content: "";
}

.cu-header__menu-icon {
  position: relative;
  width: 18px;
  height: 14px;
  display: inline-block;
}

.cu-header__menu-icon::before,
.cu-header__menu-icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.18s ease, top 0.18s ease, box-shadow 0.18s ease;
}

.cu-header__menu-icon::before {
  top: 2px;
  box-shadow: 0 5px 0 currentColor;
}

.cu-header__menu-icon::after {
  top: 12px;
}

.cu-header__menu[open] .cu-header__menu-icon::before {
  top: 7px;
  box-shadow: none;
  transform: rotate(45deg);
}

.cu-header__menu[open] .cu-header__menu-icon::after {
  top: 7px;
  transform: rotate(-45deg);
}

.cu-header__menu-panel {
  position: absolute;
  top: calc(100% + var(--cu-spacing-2));
  right: 0;
  width: min(92vw, 320px);
  background: var(--cu-color-surface-base);
  border: 1px solid rgba(20, 83, 45, 0.22);
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(12, 36, 12, 0.18);
  padding: var(--cu-spacing-3);
  z-index: 180;
}

.cu-header__menu-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}

.cu-header__menu-nav a {
  display: block;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  color: var(--cu-color-text-primary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  font-size: 0.85rem;
}

.cu-header__menu-nav a:hover,
.cu-header__menu-nav a:focus {
  color: var(--blue-500);
  background: rgba(233, 242, 236, 0.75);
}

@media (min-width: 1025px) {
  .cu-header__menu,
  .cu-header__menu[open],
  .cu-header__menu-panel {
    display: none !important;
  }
}

@media (max-width: 1024px) {
  .cu-header__nav {
    display: none;
  }

  .cu-header__nav ul {
    display: none;
  }

  .cu-header__menu {
    display: block;
    margin-left: auto;
  }

  .cu-header__inner {
    flex-wrap: wrap;
  }

  .cu-header__actions {
    flex: 1 0 auto;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .cu-header__brand a {
    width: 98px;
  }
  .cu-header__logo {
    height: 46px;
    margin: -7px 0;
  }
}

.cu-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  border-radius: var(--cu-radius-pill);
  background: var(--cu-color-brand-primary-light);
  color: var(--cu-color-text-inverse);
  font-weight: 600;
  border: none;
  box-shadow: 0 8px 20px rgba(20, 83, 45, 0.16);
  transition:
    background var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease),
    color var(--cu-motion-base) var(--cu-motion-ease),
    transform var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-button:hover,
.cu-button:focus {
  background: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-text-inverse);
  box-shadow: 0 12px 26px rgba(20, 83, 45, 0.22);
  transform: translateY(-1px);
}

.cu-button:active {
  background: var(--cu-color-brand-primary-dark);
  transform: translateY(0);
}

.cu-button--ghost {
  background: transparent;
  color: var(--cu-color-brand-primary);
  border: 2px solid var(--cu-color-border-strong);
  box-shadow: none;
}

.cu-button--ghost:hover,
.cu-button--ghost:focus {
  background: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-text-inverse);
}

.cu-lang-switch {
  text-transform: uppercase;
  font-weight: 600;
  color: var(--cu-color-text-primary);
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--cu-color-border-subtle);
  border-radius: 999px;
}

main {
  display: block;
}

.cu-hero {
  position: relative;
  color: var(--cu-color-text-inverse);
  padding: var(--cu-hero-padding-block) 0;
  min-height: var(--cu-hero-height);
  overflow: hidden;
}

.cu-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/assets/home/0.jpg") center/cover no-repeat;
  filter: blur(2px);
  transform: scale(1.05);
  opacity: 0.85;
  z-index: 0;
}

.cu-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(20, 83, 45, 0.88), rgba(22, 101, 52, 0.68));
  z-index: 1;
}

.cu-hero > .cu-container {
  position: relative;
  z-index: 2;
}

.cu-hero,
.cu-services-hero,
.cu-research-hero,
.cu-portfolio-hero,
.cu-courses-hero,
.cu-faq-hero,
.cu-contact-hero {
  padding: var(--cu-hero-padding-block) 0;
  min-height: var(--cu-hero-height);
  display: flex;
  align-items: center;
  justify-content: center;
}

.cu-hero > .cu-container,
.cu-services-hero > .cu-container,
.cu-research-hero > .cu-container,
.cu-portfolio-hero > .cu-container,
.cu-courses-hero > .cu-container,
.cu-faq-hero > .cu-container,
.cu-contact-hero > .cu-container {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cu-hero__copy {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  color: var(--cu-color-text-inverse);
}

.cu-hero__copy h1 {
  font-family: var(--cu-font-heading);
  font-weight: 700;
  font-size: 2.5rem;
  line-height: 1.2;
  margin-bottom: var(--cu-spacing-4);
}

.cu-hero__paragraphs {
  display: grid;
  gap: var(--cu-spacing-5);
  margin-bottom: var(--cu-spacing-6);
}

.cu-hero__paragraphs p {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.85;
}

.cu-hero__copy ul {
  margin: 0 0 var(--cu-spacing-6) 0;
  padding-left: var(--cu-spacing-6);
}

.cu-hero__ctas {
  display: flex;
  gap: var(--cu-spacing-3);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: var(--cu-spacing-4);
}

.cu-hero .cu-button--ghost {
  background: transparent;
  color: var(--cu-color-text-inverse);
  border: 2px solid rgba(255, 255, 255, 0.85);
}

.cu-hero .cu-button--ghost:hover,
.cu-hero .cu-button--ghost:focus {
  background: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-text-inverse);
  border-color: rgba(255, 255, 255, 0.85);
}

.cu-hero-intro {
  padding: var(--cu-spacing-20) 0 var(--cu-spacing-24);
  background: var(--cu-color-surface-base);
}

.cu-hero-intro .cu-container {
  padding-left: clamp(1.75rem, 6vw, 4.75rem);
  padding-right: clamp(1.75rem, 6vw, 4.75rem);
}

.cu-hero-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: var(--cu-spacing-14);
  align-items: stretch;
}

.cu-hero-intro__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--cu-spacing-6);
  padding: var(--cu-spacing-4) var(--cu-spacing-2);
  max-width: 540px;
}

.cu-hero-intro__heading {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 2.35rem;
  line-height: 1.25;
  color: var(--cu-color-text-primary);
  text-align: center;
}

.cu-hero-intro__subhead {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--cu-color-brand-primary-dark);
}

.cu-hero-intro__body {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.85;
  color: var(--cu-color-text-secondary);
  max-width: 520px;
  text-wrap: balance;
}

.cu-hero-intro__media {
  border-radius: 20px;
  overflow: hidden;
  background: var(--cu-color-surface-muted);
  box-shadow: 0 18px 40px rgba(17, 17, 17, 0.12);
  min-height: 480px;
  width: min(100%, 560px);
  padding: var(--cu-spacing-4);
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.cu-hero-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.cu-stat-strip {
  background: var(--cu-color-surface-base);
  padding: var(--cu-spacing-16) 0;
}

.cu-stat-strip h2 {
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  margin: 0 auto var(--cu-spacing-3);
  text-align: center;
}

.cu-stat-strip__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--cu-spacing-4);
  margin-top: var(--cu-spacing-6);
}

.cu-stat {
  background: var(--cu-color-surface-emphasis);
  padding: var(--cu-spacing-4);
  border-radius: 16px;
  min-height: 140px;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-stat__icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.24);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cu-color-brand-primary);
}

.cu-stat__icon img {
  width: 24px;
  height: 24px;
}

.cu-stat__value {
  font-family: var(--cu-font-heading);
  font-weight: 600;
  font-size: 1.25rem;
  margin: 0 0 var(--cu-spacing-2) 0;
}

.cu-stat__label {
  margin: 0;
  color: var(--cu-color-text-secondary);
}

.cu-region-strip {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-12) 0;
}

.cu-region-strip .cu-container {
  text-align: center;
}

.cu-region-strip h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin-bottom: var(--cu-spacing-3);
}

.cu-region-strip p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.cu-clients {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-base);
}

.cu-clients h2 {
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  margin: 0 auto var(--cu-spacing-6);
  text-align: center;
  width: fit-content;
}

.cu-clients__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--cu-spacing-6);
}

.cu-client-card {
  background: var(--cu-color-surface-muted);
  border-radius: 20px;
  padding: var(--cu-spacing-4);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  height: 100%;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.cu-client-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: var(--cu-color-surface-emphasis);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cu-color-brand-primary);
  align-self: center;
}

.cu-client-card__icon img {
  width: 44px;
  height: auto;
  max-height: 44px;
}

.cu-client-card h3 {
  font-family: var(--cu-font-heading);
  font-size: 1.1rem;
  margin: 0;
  text-align: center;
}

.cu-client-card p {
  margin: 0;
  color: var(--cu-color-text-secondary);
}

.cu-client-card__link {
  margin-top: auto;
}

.cu-services-snapshot {
  padding: var(--cu-spacing-16) 0;
}

.cu-services-snapshot h2 {
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  margin: 0 auto var(--cu-spacing-6);
  text-align: center;
  width: fit-content;
}

.cu-services-hero {
  position: relative;
  padding: var(--cu-hero-padding-block) 0;
  background: var(--cu-color-surface-deep);
  color: var(--cu-color-text-inverse);
  overflow: hidden;
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-services-hero::before {
  content: "";
  position: absolute;
  inset: -12%;
  background: url("/assets/services/S001.png") center / cover no-repeat;
  transform: scale(1.05);
  filter: blur(2px);
  opacity: 0.85;
  z-index: 0;
}

.cu-services-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(210deg, rgba(12, 48, 16, 0.88), rgba(11, 26, 11, 0.72));
  z-index: 0;
}

.cu-services-hero > .cu-container {
  position: relative;
  z-index: 1;
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  text-align: center;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.cu-services-hero h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.4rem;
  margin: 0;
  color: var(--cu-color-text-inverse);
}

.cu-services-hero p {
  margin: 0;
  max-width: 680px;
  color: rgba(255, 255, 255, 0.88);
}

.cu-services-hero .cu-button--ghost {
  color: var(--cu-color-text-inverse);
  border-color: rgba(255, 255, 255, 0.85);
}

.cu-services-hero .cu-button--ghost:hover,
.cu-services-hero .cu-button--ghost:focus {
  border-color: rgba(255, 255, 255, 0.85);
}

.cu-research-hero {
  position: relative;
  color: var(--cu-color-text-inverse);
  padding: var(--cu-hero-padding-block) 0;
  overflow: hidden;
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-research-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--research-hero-background, url("/assets/research/Research.jpg")) center / cover no-repeat;
  filter: blur(8px);
  transform: scale(1.05);
  opacity: 0.85;
  z-index: 0;
}

.cu-research-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(210deg, rgba(12, 48, 16, 0.88), rgba(22, 101, 52, 0.68));
  z-index: 1;
}

.cu-research-hero > .cu-container {
  position: relative;
  z-index: 2;
}

.cu-research-hero__copy {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--cu-spacing-5);
}

.cu-research-hero__copy h1 {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 2.6rem;
  line-height: 1.2;
}

.cu-research-hero__body {
  display: grid;
  gap: var(--cu-spacing-4);
  font-size: 1.12rem;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.88);
}

.cu-research-hero .cu-button--ghost {
  color: var(--cu-color-text-inverse);
  border-color: var(--cu-color-text-inverse);
}

.cu-research-hero .cu-button--ghost:hover,
.cu-research-hero .cu-button--ghost:focus {
  border-color: var(--cu-color-brand-primary-dark);
}

.cu-research-intro {
  padding: var(--cu-spacing-16) 0 var(--cu-spacing-14);
  background: var(--cu-color-surface-base);
}

.cu-research-intro .cu-container {
  max-width: 960px;
  margin: 0 auto;
}

.cu-research-intro__panel {
  background: var(--cu-color-surface-base);
  border: 2px solid rgba(20, 83, 45, 0.18);
  border-radius: 32px;
  padding: clamp(2.75rem, 5.5vw, 4rem) clamp(2.75rem, 6vw, 4.5rem);
  display: grid;
  gap: var(--cu-spacing-5);
  text-align: center;
  box-shadow: 0 28px 64px rgba(12, 36, 12, 0.12);
}

.cu-research-intro__highlight {
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.85;
  color: var(--cu-color-brand-primary-dark);
  text-wrap: balance;
}

.cu-research-intro__highlight strong {
  font-weight: 700;
}

.cu-research-intro__divider {
  width: 72px;
  height: 3px;
  background: var(--cu-color-border-strong);
  border-radius: 999px;
  margin: 0 auto;
  display: block;
}

.cu-research-intro p {
  margin: 0;
  font-size: 1.12rem;
  color: var(--cu-color-text-secondary);
  line-height: 1.85;
}

.cu-research-intro__link {
  color: var(--cu-color-brand-primary);
  font-weight: 600;
}

.cu-research-intro__link:hover,
.cu-research-intro__link:focus {
  color: var(--blue-500);
}

.cu-technology-flow-section {
  padding: var(--cu-spacing-20) 0;
  background: var(--cu-color-surface-muted);
}

.cu-technology-section-header {
  max-width: 820px;
  margin: 0 auto var(--cu-spacing-8);
  text-align: center;
}

.cu-technology-section-header h2 {
  margin: 0 0 var(--cu-spacing-4);
  font-family: var(--cu-font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
  text-wrap: balance;
}

.cu-technology-section-header p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.cu-technology-split-section {
  padding: var(--cu-spacing-20) 0;
  background: var(--cu-color-surface-base);
}

.cu-technology-page [data-technology-section] {
  scroll-margin-top: var(--cu-technology-anchor-offset);
}

.cu-technology-page-nav {
  position: sticky;
  top: var(--cu-header-height);
  z-index: 80;
  padding: 0.65rem 0;
  background: rgba(255, 255, 255, 0.9);
  border-block: 1px solid rgba(20, 83, 45, 0.12);
  backdrop-filter: blur(12px);
}

.cu-technology-page-nav__links {
  display: flex;
  gap: var(--cu-spacing-2);
  align-items: center;
  justify-content: center;
  overflow-x: auto;
  padding: 0.1rem 0;
  scrollbar-width: thin;
}

.cu-technology-page-nav__links a {
  flex: 0 0 auto;
  padding: 0.42rem 0.75rem;
  border: 1px solid transparent;
  border-radius: var(--cu-radius-pill);
  color: var(--cu-color-text-secondary);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  transition:
    background var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    color var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-technology-page-nav__links a:hover,
.cu-technology-page-nav__links a:focus,
.cu-technology-page-nav__links a[aria-current="true"] {
  background: rgba(20, 83, 45, 0.08);
  border-color: rgba(20, 83, 45, 0.18);
  color: var(--cu-color-brand-primary);
}

.cu-technology-split {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cu-spacing-8);
  align-items: stretch;
}

.cu-technology-split::before {
  content: "";
  position: absolute;
  top: var(--cu-spacing-4);
  bottom: var(--cu-spacing-4);
  left: 50%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(20, 83, 45, 0.22), transparent);
}

.cu-technology-list-card {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--cu-border-card);
  border-radius: var(--cu-radius-lg);
  background: var(--cu-surface-card-technical);
  box-shadow: var(--cu-elevation-card);
}

.cu-technology-list-card__header {
  display: grid;
  gap: var(--cu-spacing-3);
  margin: 0 0 var(--cu-spacing-5);
}

.cu-technology-list-card__tag {
  width: fit-content;
  padding: 0.22rem 0.65rem;
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: var(--cu-radius-pill);
  background: rgba(20, 83, 45, 0.06);
  color: var(--cu-color-brand-primary);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.cu-technology-list-card h3 {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.35rem;
  line-height: 1.25;
}

.cu-technology-list-card ol {
  display: grid;
  gap: var(--cu-spacing-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cu-technology-list-card li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-3);
  align-items: start;
  padding: 0.7rem 0;
  border-top: 1px solid rgba(20, 83, 45, 0.1);
}

.cu-technology-list-card li:first-child {
  border-top: 0;
  padding-top: 0;
}

.cu-technology-list-card li:last-child {
  padding-bottom: 0;
}

.cu-technology-spec__number {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  color: var(--cu-color-technical-accent);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.7;
}

.cu-technology-spec__text {
  color: var(--cu-color-text-secondary);
  line-height: 1.55;
}

.cu-technology-ai-workflows {
  background: var(--cu-color-surface-muted);
}

/* guard: 3-column layout assumes 6 AI workflow cards (O-0189) */
.cu-technology-ai-workflows .cu-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cu-spacing-5);
}

.cu-technology-ai-workflows .cu-technology-card {
  position: relative;
  transition:
    transform var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease);
}

/* Workflow connectors assume the current 3-column, 6-item editorial set. */
.cu-technology-ai-workflows .cu-technology-card:not(:nth-child(3n))::after {
  content: "";
  position: absolute;
  top: 2.15rem;
  right: calc(var(--cu-spacing-5) * -1);
  width: var(--cu-spacing-5);
  height: 1px;
  background: rgba(20, 83, 45, 0.18);
}

.cu-technology-card__details {
  margin-top: auto;
  padding-top: var(--cu-spacing-2);
  border-top: 1px solid rgba(20, 83, 45, 0.1);
}

.cu-technology-card__details summary {
  width: fit-content;
  cursor: pointer;
  color: var(--cu-color-brand-primary);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cu-technology-card__details p {
  margin-top: var(--cu-spacing-3);
  font-size: 0.98rem;
  line-height: 1.65;
}

.cu-technology-ai-workflows .cu-technology-card:hover,
.cu-technology-ai-workflows .cu-technology-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(20, 83, 45, 0.28);
  box-shadow: 0 20px 46px rgba(12, 36, 12, 0.12);
}

.cu-technology-card__kicker {
  display: inline-flex;
  width: fit-content;
  margin: 0;
  padding: 0.18rem 0.55rem;
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: var(--cu-radius-pill);
  background: rgba(20, 83, 45, 0.06);
  color: var(--cu-color-brand-primary);
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cu-technology-flow-section__header {
  max-width: 760px;
  margin: 0 auto var(--cu-spacing-8);
  text-align: center;
}

.cu-technology-flow-section__header h2,
.cu-technology-cloud__panel h2 {
  margin: 0 0 var(--cu-spacing-4);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.05;
  color: var(--cu-color-text-primary);
  text-wrap: balance;
}

.cu-technology-flow-section__header p,
.cu-technology-cloud__panel p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.cu-technology-flow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--cu-spacing-4);
  margin: 0;
  padding: 0;
  list-style: none;
  align-items: stretch;
}

.cu-technology-flow li {
  position: relative;
  display: grid;
  gap: var(--cu-spacing-4);
  align-items: start;
  padding: var(--cu-spacing-5) var(--cu-spacing-4);
  border: 1px solid var(--cu-border-card);
  border-radius: var(--cu-radius-lg);
  background: var(--cu-color-surface-base);
  box-shadow: var(--cu-elevation-card);
  color: var(--cu-color-text-primary);
  min-height: 185px;
}

.cu-technology-flow__item--review {
  border-left-width: 3px;
  border-left-color: rgba(51, 65, 85, 0.32);
  background: linear-gradient(180deg, #FFFFFF 0%, rgba(51, 65, 85, 0.045) 100%);
  box-shadow: var(--cu-elevation-card);
}

.cu-technology-flow__item--review .cu-technology-flow__number {
  background: var(--cu-surface-status-review);
  color: var(--cu-color-status-review);
}

.cu-technology-flow li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--cu-spacing-4) * -1);
  width: var(--cu-spacing-4);
  height: 2px;
  background: rgba(20, 83, 45, 0.28);
}

.cu-technology-flow__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  background: rgba(20, 83, 45, 0.1);
  color: var(--cu-color-brand-primary);
  font-weight: 800;
  font-size: 0.82rem;
}

.cu-technology-flow__content {
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-technology-flow__kicker {
  color: var(--cu-color-text-tertiary);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.cu-technology-flow-trust {
  width: min(100%, 780px);
  margin: var(--cu-spacing-6) auto 0;
  padding: var(--cu-spacing-5);
  display: grid;
  gap: var(--cu-spacing-3);
  justify-items: center;
  border: 1px solid rgba(51, 65, 85, 0.16);
  border-radius: var(--cu-radius-lg);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: var(--cu-elevation-card);
  text-align: center;
}

.cu-technology-flow-trust p {
  max-width: 640px;
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.7;
}

.cu-technology-cloud {
  padding: var(--cu-spacing-20) 0;
  background: var(--cu-color-surface-base);
}

.cu-technology-cloud__panel {
  padding: clamp(1.5rem, 4vw, 3rem);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(20, 83, 45, 0.08), rgba(14, 116, 144, 0.08));
  border: 1px solid rgba(20, 83, 45, 0.14);
  text-align: center;
}

.cu-technology-cloud__badges {
  margin-top: var(--cu-spacing-5);
  justify-content: center;
}

.cu-technology-status__intro {
  max-width: 760px;
  margin: 0 auto var(--cu-spacing-8);
  color: var(--cu-color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
  text-align: center;
}

.cu-technology-status .cu-stat-strip__grid {
  justify-items: center;
}

.cu-technology-status .cu-stat {
  width: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid var(--cu-border-card);
  background: var(--cu-color-surface-base);
  box-shadow: var(--cu-elevation-card);
}

.cu-technology-status-card__header {
  display: grid;
  gap: var(--cu-spacing-2);
  justify-items: center;
}

.cu-technology-status .cu-stat__value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 1.4rem;
  border: 2px solid var(--cu-color-text-primary);
  border-radius: 999px;
  text-align: center;
}

.cu-technology-status .cu-stat__label {
  max-width: 30rem;
  margin: 0 auto;
  text-align: center;
}

.cu-technology-status__trust-note {
  max-width: 780px;
  margin: var(--cu-spacing-6) auto 0;
  color: var(--cu-color-text-secondary);
  font-size: 0.98rem;
  line-height: 1.7;
  text-align: center;
}

.cu-technology-business .cu-about-intro__inner {
  display: block;
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: 18px;
  background: var(--cu-color-surface-base);
  box-shadow: 0 18px 45px rgba(12, 36, 12, 0.08);
}

.cu-technology-business .cu-about-intro__content {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.cu-technology-brief {
  padding: var(--cu-spacing-20) 0;
  background: var(--cu-color-surface-base);
}

.cu-technology-brief__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--cu-spacing-6);
  align-items: center;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: 18px;
  background: var(--cu-color-surface-emphasis);
}

.cu-technology-brief__panel h2 {
  margin: 0 0 var(--cu-spacing-3);
  font-family: var(--cu-font-heading);
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  line-height: 1.12;
}

.cu-technology-brief__panel p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.cu-technology-brief__actions {
  display: flex;
  gap: var(--cu-spacing-3);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.cu-technology-brief .cu-button--ghost {
  background: transparent;
  color: var(--cu-color-brand-primary);
  border: 2px solid rgba(20, 83, 45, 0.32);
}

.cu-technology-changelog {
  padding: var(--cu-spacing-20) 0;
  background: var(--cu-color-surface-muted);
}

.cu-technology-changelog__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--cu-spacing-4);
}

.cu-technology-changelog__item {
  min-height: auto;
}

.cu-technology-changelog__date {
  margin: 0 0 var(--cu-spacing-3);
  color: var(--cu-color-brand-primary);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cu-technology-changelog__item h3 {
  margin: 0 0 var(--cu-spacing-3);
  font-family: var(--cu-font-heading);
  font-size: 1.18rem;
  line-height: 1.25;
}

.cu-technology-changelog__item p:last-child {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.65;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }

  .cu-button:hover,
  .cu-button:focus,
  .cu-card:hover,
  .cu-card:focus-within,
  .cu-chip:hover,
  .cu-chip:focus-visible,
  .cu-link:hover,
  .cu-link:focus {
    transform: none;
  }

  .cu-link:hover::after,
  .cu-link:focus::after {
    transform: none;
  }

  .cu-technology-ai-workflows .cu-technology-card {
    transition: none;
  }

  .cu-technology-ai-workflows .cu-technology-card:hover,
  .cu-technology-ai-workflows .cu-technology-card:focus-within {
    transform: none;
  }
}

@media (prefers-contrast: more) {
  :root {
    --cu-border-card: rgba(20, 83, 45, 0.36);
    --cu-border-card-strong: rgba(20, 83, 45, 0.56);
    --cu-color-border-subtle: #789878;
  }

  .cu-card,
  .cu-chip,
  .cu-status-chip {
    box-shadow: none;
  }
}

@media (forced-colors: active) {
  a:focus-visible,
  button:focus-visible,
  summary:focus-visible {
    box-shadow: none;
  }

  .cu-button,
  .cu-button--ghost,
  .cu-card,
  .cu-chip,
  .cu-status-chip {
    border: 1px solid ButtonText;
    box-shadow: none;
  }

  .cu-button,
  .cu-button--ghost,
  .cu-chip.is-active,
  .svc-chip.active,
  .svc-chip.is-active {
    background: ButtonFace;
    color: ButtonText;
  }

  .cu-card,
  .cu-status-chip {
    background: Canvas;
    color: CanvasText;
  }
}

.cu-research-decision-support__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--cu-spacing-3);
  margin: var(--cu-spacing-6) 0 0;
  padding: 0;
  list-style: none;
}

.cu-research-decision-support__list li {
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  border-radius: 18px;
  background: var(--cu-color-surface-base);
  border: 1px solid rgba(20, 83, 45, 0.14);
  color: var(--cu-color-text-primary);
  box-shadow: 0 12px 34px rgba(12, 36, 12, 0.05);
}

.cu-research-projects {
  padding: var(--cu-spacing-20) 0 var(--cu-spacing-24);
  background: var(--cu-color-surface-muted);
}

.cu-research-projects__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-12);
}

.cu-research-projects__item {
  margin: 0;
}

.cu-research-project {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--cu-spacing-8);
  padding: var(--cu-spacing-10);
  background: var(--cu-surface-card-evidence);
  border: 1px solid var(--cu-border-card);
  border-left: 3px solid var(--cu-color-brand-primary);
  border-radius: var(--cu-radius-xl);
  box-shadow: var(--cu-elevation-card);
  overflow: hidden;
}

.cu-research-project__content {
  display: grid;
  gap: var(--cu-spacing-4);
  align-content: start;
}

.cu-research-project h2 {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.9rem;
  line-height: 1.3;
}

.cu-research-project__subtitle {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--cu-color-brand-primary-dark);
}

.cu-research-project__content > p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.75;
}

.cu-research-project__methods {
  margin-top: var(--cu-spacing-1, 0.25rem);
}

.cu-research-project__link {
  margin-top: var(--cu-spacing-4);
  font-weight: 600;
}

.cu-research-project__media {
  border-radius: 24px;
  overflow: hidden;
  background: var(--cu-color-surface-emphasis);
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.cu-research-project__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cu-services-filters {
  padding: var(--cu-spacing-8) 0;
  border-bottom: 1px solid #D4E2D4;
}

.cu-services-filters .cu-container > p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.cu-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  align-items: center;
  margin-top: var(--cu-spacing-4);
}

.cu-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
}

.cu-chip {
  padding: 0.5rem 1.25rem;
  border-radius: var(--cu-radius-pill);
  border: 1px solid var(--cu-color-border-subtle);
  background: var(--cu-color-surface-base);
  font-weight: 600;
  cursor: pointer;
  transition:
    background var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease),
    color var(--cu-motion-base) var(--cu-motion-ease),
    transform var(--cu-motion-base) var(--cu-motion-ease);
}

.svc-chip:hover,
.svc-chip:focus-visible {
  color: var(--green-700);
  border-color: var(--green-700);
  box-shadow: 0 8px 18px rgba(12, 36, 12, 0.08);
  transform: translateY(-1px);
}

.svc-chip.active,
.svc-chip.is-active {
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
  border-color: var(--cu-color-brand-primary);
}

.cu-chip.is-active {
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
  border-color: var(--cu-color-brand-primary);
}

.cu-status-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  gap: 0.4rem;
  padding: 0.28rem 0.7rem;
  border: 1px solid var(--cu-border-status);
  border-radius: var(--cu-radius-pill);
  background: var(--cu-surface-status-muted);
  color: var(--cu-color-status-muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.cu-status-chip--live {
  background: var(--cu-surface-status-live);
  border-color: rgba(20, 83, 45, 0.24);
  color: var(--cu-color-status-live);
}

.cu-status-chip--pilot {
  background: var(--cu-surface-status-pilot);
  border-color: rgba(14, 116, 144, 0.24);
  color: var(--cu-color-status-pilot);
}

.cu-status-chip--review {
  background: var(--cu-surface-status-review);
  border-color: rgba(107, 78, 22, 0.24);
  color: var(--cu-color-status-review);
}

.cu-evidence-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-2);
  align-items: center;
}

.cu-evidence-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.28rem 0.68rem;
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: var(--cu-radius-pill);
  background: rgba(20, 83, 45, 0.06);
  color: var(--cu-color-brand-primary);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
}

.cu-filter-bar input[type="search"] {
  flex: 1 1 240px;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  border: 1px solid #C6D5C6;
}

.svc-tools {
  margin-top: var(--cu-spacing-4);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cu-spacing-3);
}

.cu-services-filters .svc-tools {
  justify-content: center;
  text-align: center;
}

.svc-count {
  margin: 0;
  font-weight: 600;
}

.cu-services-clients {
  padding: var(--cu-spacing-14) 0;
}

.cu-services-clients h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin: 0 auto var(--cu-spacing-5);
  text-align: center;
  width: fit-content;
}

.svc-clients {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.svc-clients__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--cu-spacing-4);
  row-gap: var(--cu-spacing-2);
  align-items: center;
  padding: var(--cu-spacing-4);
  border-radius: 16px;
  border: 1px solid var(--cu-color-border-subtle);
  background: var(--cu-color-surface-base);
}

.svc-clients__icon {
  width: 60px;
  height: 60px;
  align-self: center;
  justify-self: center;
  object-fit: contain;
}

.svc-clients__content {
  display: contents;
}

.svc-clients__content h3 {
  margin: 0;
  font-size: 0.95rem;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
}

.svc-clients__content p {
  margin: var(--cu-spacing-3) 0 0 0;
  color: var(--cu-color-text-secondary);
  font-size: 0.9rem;
  line-height: 1.55;
  text-align: justify;
  text-justify: inter-word;
  grid-column: 1 / -1;
  grid-row: 2;
}

.btn-tertiary {
  background: transparent;
  border: 1px solid var(--cu-color-border-strong);
  color: var(--cu-color-brand-primary);
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.btn-tertiary:hover,
.btn-tertiary:focus-visible {
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
}

.cu-services-grid {
  padding: var(--cu-spacing-16) 0;
}

.cu-services-grid__heading {
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  text-align: center;
  margin: 0 0 var(--cu-spacing-8) 0;
}

.cu-grid,
.svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--cu-spacing-4);
}

.svc-group {
  margin-bottom: var(--cu-spacing-12);
}

.svc-group:last-of-type {
  margin-bottom: 0;
}

.svc-group__header {
  max-width: 820px;
  margin: 0 auto var(--cu-spacing-6);
  display: grid;
  gap: var(--cu-spacing-2);
  text-align: center;
}

.svc-group h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin: 0;
  text-align: center;
}

.svc-group__header p {
  max-width: 620px;
  margin: 0 auto;
  color: var(--cu-color-text-secondary);
}

.svc-group--compact .svc-grid {
  gap: var(--cu-spacing-5);
}

@media (min-width: 768px) {
  .svc-group--compact .svc-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: center;
  }
}

@media (min-width: 1024px) {
  .svc-group--compact .svc-grid {
    max-width: 960px;
    margin: 0 auto;
    gap: var(--cu-spacing-6);
  }
}

.svc-group--compact .cu-card {
  max-width: 420px;
  margin: 0 auto;
  padding: var(--cu-spacing-5) var(--cu-spacing-5) var(--cu-spacing-6);
  gap: var(--cu-spacing-3);
  box-shadow: 0 10px 26px rgba(17, 17, 17, 0.07);
  min-height: auto;
}

@media (min-width: 768px) {
  .svc-group--compact .svc-grid > .cu-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

.svc-group--compact .cu-card h3 {
  font-size: 1.2rem;
  margin: 0;
}

.svc-group--compact .cu-card p {
  font-size: 0.97rem;
  line-height: 1.6;
  color: var(--cu-color-text-secondary);
}

.svc-group--compact .svc-card__media {
  border-radius: 14px;
  aspect-ratio: 4 / 3;
  padding: var(--cu-spacing-2);
  background: var(--cu-color-surface-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--cu-spacing-3);
}

.svc-group--compact .svc-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

.svc-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--cu-spacing-4);
  margin-bottom: var(--cu-spacing-6);
  justify-items: center;
}

@media (min-width: 768px) {
  .svc-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.svc-gallery--single {
  grid-template-columns: 1fr;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .svc-gallery--single {
    grid-template-columns: 1fr;
  }
}

.svc-gallery--single .svc-gallery__item {
  width: 100%;
  max-width: 100%;
}

.svc-gallery__item {
  width: min(100%, var(--cu-gallery-card-max-width));
  border-radius: 20px;
  overflow: hidden;
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  min-height: calc(var(--cu-gallery-image-height) + (var(--cu-spacing-3) * 2));
}

.svc-gallery__item img {
  width: 100%;
  max-width: 100%;
  height: var(--cu-gallery-image-height);
  max-height: var(--cu-gallery-image-height);
  object-fit: contain;
  display: block;
}

.svc-card__link {
  margin-top: auto;
  align-self: flex-end;
}

.svc-card__media {
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--cu-color-surface-muted);
}

.svc-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cu-card {
  background: var(--cu-surface-card);
  border: 1px solid var(--cu-border-card);
  border-radius: var(--cu-radius-lg);
  padding: var(--cu-spacing-4);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  box-shadow: var(--cu-elevation-card);
  min-height: 220px;
  transition:
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease),
    transform var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-card--technical {
  background: var(--cu-surface-card-technical);
  border-color: var(--cu-border-technical);
}

.cu-card--evidence {
  background: var(--cu-surface-card-evidence);
}

.cu-card--training,
.cu-card--routing {
  background: var(--cu-surface-card-routing);
}

@media (hover: hover) {
  .cu-card:hover,
  .cu-card:focus-within {
    border-color: var(--cu-border-card-strong);
    box-shadow: var(--cu-elevation-card-raised);
    transform: translateY(-2px);
  }
}

.cu-card h3 {
  font-family: var(--cu-font-heading);
  font-size: 1.25rem;
  margin: 0;
  line-height: 1.25;
}

.cu-card__header {
  display: grid;
  gap: var(--cu-spacing-2);
  align-items: start;
}

.cu-card__title-line {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(22, 101, 52, 0.12);
  color: var(--cu-color-brand-primary);
  padding: 0.15rem 0.75rem;
  border-radius: 999px;
  width: fit-content;
  margin-top: 0.25rem;
}

.cu-card p {
  margin: 0;
  color: var(--cu-color-text-secondary);
}

.cu-home-technology,
.cu-portfolio-technology-bridge {
  background: var(--cu-color-surface-emphasis);
}

.cu-home-technology .cu-container,
.cu-portfolio-technology-bridge .cu-container {
  display: grid;
  gap: var(--cu-spacing-6);
  text-align: center;
  justify-items: center;
}

.cu-home-technology h2,
.cu-portfolio-technology-bridge h2 {
  margin-bottom: 0;
}

.cu-home-technology__body {
  max-width: 840px;
  margin: 0 auto;
  color: var(--cu-color-text-secondary);
  font-size: 1.05rem;
  line-height: 1.7;
}

.cu-home-technology .cu-grid,
.cu-portfolio-technology-bridge .cu-grid {
  width: 100%;
  align-items: stretch;
}

.cu-home-technology .cu-card,
.cu-portfolio-technology-bridge .cu-card {
  align-items: center;
  text-align: center;
  padding: var(--cu-spacing-5);
}

.cu-home-technology .cu-card__header,
.cu-portfolio-technology-bridge .cu-card__header {
  justify-items: center;
}

.cu-home-technology .cu-card h3,
.cu-portfolio-technology-bridge .cu-card h3 {
  width: 100%;
}

.cu-portfolio-technology-bridge__capabilities {
  justify-content: center;
}

.cu-section-action {
  display: flex;
  justify-content: center;
  margin-top: var(--cu-spacing-2);
}

.cu-clients .cu-section-action,
.cu-services-snapshot .cu-section-action {
  margin-top: var(--cu-spacing-6);
}

.cu-portfolio-technology-bridge__frame {
  width: min(100%, 900px);
  display: grid;
  gap: var(--cu-spacing-4);
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-radius: var(--cu-radius-lg);
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 14px 36px rgba(12, 36, 12, 0.06);
}

.cu-link {
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition:
    color var(--cu-motion-base) var(--cu-motion-ease),
    transform var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-link::after {
  content: '→';
  font-size: 0.9em;
  transition: transform var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-link:hover,
.cu-link:focus {
  transform: translateX(1px);
}

.cu-link:hover::after,
.cu-link:focus::after {
  transform: translateX(2px);
}

.cu-portfolio-highlight {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-emphasis);
}

.cu-portfolio-highlight .cu-container {
  display: grid;
  gap: var(--cu-spacing-4);
  text-align: center;
  justify-items: center;
}

.cu-portfolio-highlight p {
  max-width: 640px;
}

.cu-portfolio-highlight .cu-button {
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
}

.cu-portfolio-highlight .cu-button:hover,
.cu-portfolio-highlight .cu-button:focus {
  background: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-text-inverse);
}

.cu-portfolio-highlight h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.8rem;
  margin: 0 auto var(--cu-spacing-3);
  text-align: center;
}

.cu-about-teaser,
.cu-faq-teaser,
.cu-courses-teaser {
  padding: var(--cu-spacing-16) 0;
}

.cu-about-teaser h2,
.cu-faq-teaser h2,
.cu-courses-teaser h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin: 0 auto var(--cu-spacing-3);
  text-align: center;
  width: fit-content;
}

.cu-courses-teaser .cu-grid {
  align-items: stretch;
}

.cu-courses-teaser .cu-card {
  padding: var(--cu-spacing-5);
  gap: var(--cu-spacing-4);
  min-height: 280px;
}

.cu-courses-teaser .cu-card:last-child {
  text-align: right;
  align-items: flex-end;
}

.cu-courses-teaser .cu-card:last-child h3,
.cu-courses-teaser .cu-card:last-child p {
  text-align: right;
  width: 100%;
}

.cu-courses-teaser .cu-card:last-child .cu-link {
  justify-content: flex-end;
}

.cu-courses-teaser .cu-card h3 {
  font-size: 1.35rem;
  min-height: 3.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.cu-courses-teaser .cu-card:last-child h3 .cu-card__title-line {
  align-self: flex-end;
}

.cu-courses-teaser .cu-card p {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-top: auto;
}

.cu-services-snapshot .cu-card .cu-link,
.cu-courses-teaser .cu-card .cu-link {
  margin-top: auto;
}

.cu-accordion details {
  border: 1px solid #D4E2D4;
  border-radius: 12px;
  margin-bottom: var(--cu-spacing-4);
  padding: var(--cu-spacing-4);
  background: var(--cu-color-surface-base);
}

.cu-accordion summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 1.12rem;
  letter-spacing: 0.02em;
  line-height: 1.6;
}

.cu-accordion p {
  margin-top: var(--cu-spacing-4);
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--cu-color-text-secondary);
}

.cu-contact-cta {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
  color: var(--cu-color-text-primary);
  border-top: 1px solid var(--cu-color-border-subtle);
}

.cu-contact-cta__inner {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  max-width: 720px;
  margin: 0 auto;
  align-items: center;
}

.cu-contact-cta__actions {
  display: flex;
  gap: var(--cu-spacing-3);
  flex-wrap: wrap;
  justify-content: center;
}

.cu-contact-cta__copy {
  flex: 1 1 auto;
  text-align: center;
}

.cu-contact-cta__copy > * {
  margin-left: auto;
  margin-right: auto;
}

.cu-footer {
  background: var(--cu-color-surface-deep);
  color: var(--cu-color-text-inverse);
  padding: var(--cu-spacing-16) var(--cu-spacing-4) var(--cu-spacing-8) var(--cu-spacing-4);
}

.cu-footer__grid {
  display: grid;
  gap: var(--cu-spacing-6);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  max-width: var(--cu-max-width);
  margin: 0 auto;
}

.cu-footer__grid > section {
  padding: var(--cu-spacing-2) 0;
}

.cu-footer__grid h3 {
  font-family: var(--cu-font-heading);
  font-size: 1.1rem;
  margin-bottom: var(--cu-spacing-3);
}

.cu-footer__grid ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cu-footer__grid a {
  color: var(--cu-color-text-inverse);
}

.cu-footer__social {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cu-footer__social a {
  display: inline-flex;
  align-items: center;
  gap: var(--cu-spacing-2);
}

.cu-footer__contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cu-footer__contact-item {
  display: flex;
  align-items: center;
  gap: var(--cu-spacing-2);
}

.cu-footer__contact-link {
  display: inline-flex;
  align-items: center;
  gap: var(--cu-spacing-2);
  color: inherit;
}

.cu-footer__social-icon,
.cu-footer__contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(233, 242, 236, 0.14);
  border: 1px solid rgba(233, 242, 236, 0.3);
}

.cu-footer__social-icon img,
.cu-footer__contact-icon img {
  display: block;
  width: 18px;
  height: 18px;
  filter: brightness(0) invert(1);
}

.cu-footer__links {
  align-self: start;
}

.cu-footer__links--no-heading > .cu-footer__links-columns,
.cu-footer__links--no-heading > ul {
  margin-top: calc(1.1rem + var(--cu-spacing-3));
}

.cu-footer__links-columns {
  display: flex;
  gap: var(--cu-spacing-6);
}

.cu-footer__links-columns ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
}

.cu-footer__legal {
  max-width: var(--cu-max-width);
  margin: var(--cu-spacing-8) auto 0 auto;
  border-top: 1px solid rgba(233, 242, 236, 0.3);
  padding-top: var(--cu-spacing-4);
  text-align: center;
  color: rgba(233, 242, 236, 0.8);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  align-items: center;
}

@media (max-width: 768px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  img,
  picture,
  video,
  iframe,
  canvas,
  svg {
    max-width: 100%;
    height: auto;
  }

  .cu-header__inner {
    flex-wrap: wrap;
  }

	  .cu-header__nav {
	    display: none;
	  }

	  .cu-header__nav ul {
	    display: none;
	  }

  .cu-header__menu {
    display: block;
    margin-left: auto;
  }

  .cu-header__actions {
    flex: 1 0 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
    min-width: 0;
    gap: var(--cu-spacing-2);
    padding-top: var(--cu-spacing-2);
  }

  .cu-header__actions .cu-button {
    padding: 0.6rem 1.05rem;
    font-size: 0.9rem;
    min-width: 0;
    text-align: center;
  }

  .cu-lang-switch {
    padding: 0.4rem 0.6rem;
    font-size: 0.85rem;
  }

  .cu-hero,
  .cu-services-hero,
  .cu-portfolio-hero,
  .cu-courses-hero,
  .cu-faq-hero,
  .cu-contact-hero,
  .cu-research-hero {
    padding: clamp(4.5rem, 12vw, 6rem) 0;
    min-height: clamp(420px, 70vh, 560px);
    height: auto;
  }
  .cu-hero > .cu-container,
  .cu-services-hero > .cu-container,
  .cu-portfolio-hero > .cu-container,
  .cu-courses-hero > .cu-container,
  .cu-faq-hero > .cu-container,
  .cu-contact-hero > .cu-container,
  .cu-research-hero > .cu-container {
    height: auto;
  }
  .cu-hero__copy h1 {
    font-size: 2rem;
  }
  .cu-research-hero__copy h1 {
    font-size: 2.15rem;
  }
  .cu-hero-intro__heading {
    font-size: 1.85rem;
  }
  .cu-hero-intro__subhead {
    font-size: 1.15rem;
  }
  .cu-research-project {
    grid-template-columns: 1fr;
    padding: var(--cu-spacing-6);
    gap: var(--cu-spacing-6);
  }
  .cu-research-project__media {
    order: -1;
    max-height: 320px;
  }

  .cu-clients,
  .cu-services-snapshot {
    display: none;
  }

  .cu-courses-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    overflow: visible;
    scroll-snap-type: none;
    padding: 0;
    justify-content: start;
  }

  .cu-courses-strip__item {
    min-width: 0;
    flex: initial;
    width: 100%;
  }

  .cu-courses-card--microgreens .cu-courses-card__heading,
  .cu-courses-card--microgreens .cu-courses-card__heading h3,
  .cu-courses-faq__link {
    white-space: normal;
  }

  .cu-courses-card--microgreens .cu-courses-card__heading {
    flex-wrap: wrap;
  }

  .cu-error-search__controls input,
  .cu-portfolio-search input,
  .cu-faq-search__inputs input[type="search"] {
    min-width: 0;
  }

  .cu-faq-search__reset,
  .cu-courses-faq__link {
    white-space: normal;
  }

  .cu-table-responsive,
  .cu-course-table-wrapper {
    overflow-x: hidden;
  }

  .cu-course-table {
    min-width: 0;
    width: 100%;
    table-layout: fixed;
  }

  .cu-course-table th,
  .cu-course-table td,
  .cu-table-responsive th,
  .cu-table-responsive td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .cu-course-compare-cards {
    display: grid;
    gap: var(--cu-spacing-4);
  }

  .cu-course-compare-card {
    background: var(--cu-color-surface-base);
    border: 1px solid rgba(20, 83, 45, 0.18);
    border-radius: 20px;
    padding: var(--cu-spacing-4);
    box-shadow: 0 18px 36px rgba(12, 36, 12, 0.1);
  }

  .cu-course-compare-card__feature {
    margin: 0 0 var(--cu-spacing-3);
    font-family: var(--cu-font-heading);
    font-size: 1.05rem;
    line-height: 1.35;
  }

  .cu-course-compare-card__values {
    margin: 0;
    display: grid;
    gap: var(--cu-spacing-3);
  }

  .cu-course-compare-card__value {
    margin: 0;
    padding: var(--cu-spacing-3);
    border-radius: 16px;
    background: var(--cu-color-surface-muted);
    display: grid;
    gap: 0.25rem;
  }

  .cu-course-compare-card__value dt {
    font-weight: 700;
    color: var(--cu-color-brand-primary-dark);
  }

  .cu-course-compare-card__value dd {
    margin: 0;
    color: var(--cu-color-text-secondary);
  }

  .cu-portfolio-project-gallery__grid {
    grid-template-columns: 1fr;
  }

  .cu-about-intro__inner {
    padding: var(--cu-spacing-4);
  }

  .cu-about-intro__media {
    width: 100%;
    max-width: 100%;
    justify-self: stretch;
    display: block;
    padding: var(--cu-spacing-2);
  }

  .cu-about-intro__media img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

@media (max-width: 900px) {
  .cu-hero-intro .cu-container {
    padding-left: var(--cu-spacing-4);
    padding-right: var(--cu-spacing-4);
  }
  .cu-hero-intro__grid {
    grid-template-columns: 1fr;
    gap: var(--cu-spacing-6);
  }
  .cu-hero-intro__copy {
    align-items: flex-start;
  }
  .cu-hero-intro__media {
    max-width: 520px;
    margin: 0 auto;
    min-height: 360px;
    padding: var(--cu-spacing-2);
  }
  .cu-about-intro__inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "about-heading"
      "about-sub"
      "about-card1"
      "about-card2"
      "about-card3"
      "about-media"
      "about-technology"
      "about-mission"
      "about-divider";
    padding: var(--cu-spacing-5);
  }
  .cu-about-intro__media {
    width: min(100%, 420px);
    padding: var(--cu-spacing-2);
    justify-self: center;
    margin-top: var(--cu-spacing-4);
    max-width: min(420px, 100%);
    grid-row: auto;
  }
  .cu-about-panel--technology,
  .cu-about-panel--mission {
    width: 100%;
    max-width: none;
    padding: var(--cu-spacing-4);
  }
}

@media (max-width: 1024px) {
  .cu-footer__grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
  .cu-footer__links-columns {
    flex-direction: column;
    gap: var(--cu-spacing-4);
  }
  .cu-research-project {
    grid-template-columns: 1fr;
    padding: var(--cu-spacing-8);
  }
  .cu-research-project__media {
    max-height: 380px;
  }
  .cu-technology-flow {
    grid-template-columns: 1fr;
  }
  .cu-technology-split {
    grid-template-columns: 1fr;
  }
  .cu-technology-split::before,
  .cu-technology-ai-workflows .cu-technology-card::after {
    display: none;
  }
  .cu-technology-ai-workflows .cu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cu-technology-flow li {
    min-height: auto;
  }
  .cu-technology-flow li:not(:last-child)::after {
    top: auto;
    right: auto;
    left: calc(1.175rem + var(--cu-spacing-4));
    bottom: calc(var(--cu-spacing-3) * -1);
    width: 2px;
    height: var(--cu-spacing-3);
  }
  .cu-technology-brief__panel {
    grid-template-columns: 1fr;
  }
  .cu-technology-brief__actions {
    justify-content: flex-start;
  }
  .cu-technology-changelog__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .cu-technology-page [data-technology-section] {
    scroll-margin-top: var(--cu-technology-anchor-offset-mobile);
  }

  .cu-technology-page-nav {
    top: var(--cu-header-height-mobile);
  }

  .cu-technology-page-nav__links {
    justify-content: flex-start;
  }

  .cu-technology-ai-workflows .cu-grid {
    grid-template-columns: 1fr;
  }

  .cu-technology-hero {
    height: auto;
    min-height: auto;
    padding: clamp(4rem, 12vw, 5.5rem) 0;
  }

  .cu-technology-hero h1 {
    font-size: clamp(2rem, 10vw, 3rem);
    line-height: 1.16;
  }

  .cu-technology-hero p {
    font-size: 1.02rem;
    line-height: 1.68;
  }

  .cu-technology-hero .cu-hero__ctas {
    align-items: stretch;
  }

  .cu-technology-hero .cu-button {
    width: 100%;
    justify-content: center;
  }
}

.cu-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--cu-color-text-tertiary);
}

.cu-back-link::before {
  content: '←';
  font-size: 0.85rem;
  color: inherit;
}

.cu-service-hero {
  --service-hero-background: linear-gradient(135deg, rgba(34, 139, 34, 0.92), rgba(15, 93, 15, 0.78));
  position: relative;
  color: var(--cu-color-text-inverse);
  padding: var(--cu-spacing-18) 0 var(--cu-spacing-14);
  text-align: center;
  overflow: hidden;
}

.cu-service-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--service-hero-background);
  background-size: cover;
  background-position: center;
  filter: blur(9px);
  transform: scale(1.06);
  z-index: 0;
}

.cu-service-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(6, 32, 18, 0.55);
  z-index: 0;
}

.cu-service-hero > .cu-container {
  position: relative;
  z-index: 1;
}

.cu-service-hero__inner {
  background: rgba(0, 0, 0, 0.35);
  border-radius: 28px;
  padding: var(--cu-spacing-8);
  max-width: 780px;
  margin: 0 auto;
  backdrop-filter: blur(6px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-4);
  text-align: center;
}

.cu-service-hero .cu-back-link,
.cu-service-hero .cu-back-link:visited {
  color: var(--cu-color-text-inverse);
}

.cu-service-hero .cu-back-link:hover,
.cu-service-hero .cu-back-link:focus-visible {
  color: var(--cu-color-text-inverse);
  opacity: 0.85;
}

.cu-service-hero .cu-back-link::before {
  color: currentColor;
}

.cu-service-hero__inner h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.25rem;
  margin: 0;
}

.cu-service-hero__inner p {
  font-size: 1.05rem;
  margin: 0;
}

.cu-service-hero__highlight {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  font-weight: 600;
}

.cu-service-section {
  padding: var(--cu-spacing-12) 0;
}

.cu-service-section h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.8rem;
  margin: 0 auto var(--cu-spacing-4);
  text-align: center;
}

.cu-service-section p {
  max-width: 820px;
  font-size: 1.05rem;
}

.cu-service-deliverables {
  text-align: center;
}

.cu-service-deliverables ul {
  list-style: none;
  margin: var(--cu-spacing-6) auto 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-4);
  justify-items: center;
  max-width: 1000px;
}

@media (min-width: 768px) {
  .cu-service-section > .cu-container,
  .cu-service-summary > .cu-container,
  .cu-service-related > .cu-container {
    max-width: 1040px;
    padding-left: var(--cu-spacing-6);
    padding-right: var(--cu-spacing-6);
  }

  .cu-service-deliverables > .cu-container {
    max-width: 1000px;
  }

  .cu-service-deliverables ul {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
  }
}

.cu-service-deliverables li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-3);
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-5) var(--cu-spacing-4);
  border-radius: 20px;
  text-align: center;
}

.cu-service-deliverables__icon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(12, 43, 18, 0.12);
}

.cu-service-deliverables__icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  filter: grayscale(100%);
}

.cu-service-deliverables li span:last-child {
  font-size: 1.05rem;
  line-height: 1.6;
}

.cu-service-process ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-4);
}

.cu-service-process li {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-4);
  border-radius: 16px;
}

.cu-service-process h3 {
  margin-top: 0;
  margin-bottom: var(--cu-spacing-2);
}

.cu-service-summary {
  background: var(--cu-color-surface-emphasis);
  padding: var(--cu-spacing-12) 0;
}

.cu-service-summary__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--cu-spacing-4);
}

.cu-service-summary__item {
  background: var(--cu-color-surface-base);
  border-radius: 20px;
  padding: var(--cu-spacing-4);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.04);
}

.cu-service-summary__item h3 {
  margin-top: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.25rem;
}

.cu-service-related {
  padding: var(--cu-spacing-12) 0 var(--cu-spacing-16);
  background: var(--cu-color-surface-muted);
}

.cu-service-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-8);
}

.cu-service-related ul {
  margin: 0;
  padding-left: var(--cu-spacing-6);
  list-style: disc;
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-service-related details {
  background: var(--cu-color-surface-base);
  border-radius: 12px;
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
}

.cu-service-related summary {
  cursor: pointer;
  font-weight: 600;
}

.cu-service-related__faq-links {
  margin-top: var(--cu-spacing-4);
  padding-top: var(--cu-spacing-3);
  border-top: 1px solid var(--cu-color-border-subtle);
}

.cu-service-related__faq-links h3 {
  font-size: 1rem;
  margin: 0 0 var(--cu-spacing-2) 0;
  font-weight: 600;
}

.cu-service-related__faq-links-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-back-link--footer {
  margin-top: var(--cu-spacing-8);
  display: inline-flex;
}

@media (max-width: 768px) {
  .cu-service-hero {
    padding: var(--cu-spacing-12) 0 var(--cu-spacing-10);
  }

  .cu-service-hero__inner {
    padding: var(--cu-spacing-6);
  }

  .cu-portfolio-hero {
    padding: var(--cu-spacing-12) 0;
  }

  .cu-portfolio-hero__content {
    padding: var(--cu-spacing-6) var(--cu-spacing-4);
  }

  .cu-service-section {
    padding: var(--cu-spacing-8) 0;
  }

  .cu-service-related__grid {
    gap: var(--cu-spacing-6);
  }
}

.cu-portfolio-hero {
  position: relative;
  color: var(--cu-color-text-inverse);
  padding: var(--cu-hero-padding-block) 0;
  overflow: hidden;
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-portfolio-hero::before {
  content: "";
  position: absolute;
  inset: -12%;
  background: url("/assets/portfolio/0.4.jpg") center / cover no-repeat;
  filter: blur(2px);
  transform: scale(1.05);
  z-index: 0;
}

.cu-portfolio-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(210deg, rgba(10, 34, 14, 0.68), rgba(6, 18, 9, 0.42));
  z-index: 0;
}

.cu-portfolio-hero > .cu-container {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}

.cu-portfolio-hero__content {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--cu-spacing-4);
  padding: var(--cu-spacing-8) var(--cu-spacing-6);
  border-radius: 28px;
  background: rgba(4, 24, 10, 0.28);
  backdrop-filter: blur(3px);
  box-shadow: 0 18px 46px rgba(5, 35, 18, 0.22);
}

.cu-portfolio-hero__content h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.4rem;
  margin-bottom: var(--cu-spacing-3);
}

.cu-portfolio-hero__content p {
  font-size: 1.1rem;
  margin-bottom: var(--cu-spacing-6);
}

.cu-portfolio-hero .cu-button--ghost,
.cu-contact-hero .cu-button--ghost {
  color: var(--cu-color-brand-primary-dark);
  background: rgba(255, 255, 255, 0.92);
  border: 2px solid transparent;
  font-weight: 600;
  box-shadow: 0 12px 30px rgba(5, 40, 25, 0.35);
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cu-portfolio-hero .cu-button--ghost:hover,
.cu-portfolio-hero .cu-button--ghost:focus,
.cu-contact-hero .cu-button--ghost:hover,
.cu-contact-hero .cu-button--ghost:focus {
  background: #ffffff;
  color: var(--cu-color-brand-primary-dark);
  box-shadow: 0 16px 36px rgba(5, 40, 25, 0.45);
  transform: translateY(-2px);
}

.cu-portfolio-stats {
  background: var(--cu-color-surface-base);
  padding: var(--cu-spacing-12) 0;
}

.cu-portfolio-stats__inner {
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-portfolio-stats__heading {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  text-align: center;
}

.cu-portfolio-stats .cu-stat-strip__grid {
  justify-items: stretch;
}

.cu-stat--frame {
  background: var(--cu-color-surface-base);
  border: 2px solid var(--cu-color-text-primary);
  text-align: center;
  padding: var(--cu-spacing-5);
  display: grid;
  gap: var(--cu-spacing-2);
  justify-items: center;
}

.cu-stat--frame .cu-stat__value {
  font-size: 1.4rem;
}

.cu-stat--frame .cu-stat__label {
  color: var(--cu-color-text-secondary);
}

.cu-portfolio-filters {
  padding: var(--cu-spacing-8) 0 var(--cu-spacing-6);
  background: var(--cu-color-surface-base);
  border-bottom: 1px solid #D4E2D4;
}

.cu-portfolio-filters__intro {
  display: grid;
  gap: var(--cu-spacing-2);
  margin-bottom: var(--cu-spacing-4);
}

.cu-portfolio-filters__intro h2 {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
  text-align: center;
}

.cu-portfolio-filters__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  margin-bottom: var(--cu-spacing-4);
}

.cu-portfolio-browse {
  margin: 0;
  font-weight: 600;
}

.cu-portfolio-show-all {
  font-weight: 600;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}

.cu-portfolio-filters [data-portfolio-apply] {
  font-weight: 600;
  min-width: 11rem;
  transition: opacity 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.cu-portfolio-filters [data-portfolio-apply]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

.cu-portfolio-filters [data-portfolio-apply].is-dirty {
  box-shadow: 0 10px 28px rgba(7, 54, 41, 0.35);
  transform: translateY(-1px);
}

.cu-portfolio-filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cu-spacing-4);
  flex-wrap: wrap;
  margin-bottom: var(--cu-spacing-6);
}

.cu-portfolio-catalogue-status {
  align-items: center;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 248, 0.94));
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-radius: var(--cu-radius-md);
  display: flex;
  flex: 1 1 340px;
  flex-wrap: wrap;
  gap: var(--cu-spacing-2);
  padding: var(--cu-spacing-3);
}

.cu-portfolio-count {
  margin: 0;
  font-weight: 600;
}

.cu-portfolio-subset-frame {
  border: 1px solid rgba(20, 83, 45, 0.24);
  border-radius: 999px;
  color: var(--cu-color-text-primary);
  font-size: 0.85rem;
  font-weight: 800;
  margin: 0;
  padding: 0.25rem 0.7rem;
  white-space: nowrap;
}

.cu-portfolio-search {
  flex: 1 1 280px;
  max-width: 360px;
  display: flex;
}

.cu-portfolio-search input {
  width: 100%;
  border: 1px solid #C6D5C6;
  border-radius: 999px;
  padding: 0.65rem 1rem;
  font-size: 0.95rem;
}

.cu-portfolio-filters__buttons {
  display: flex;
  gap: var(--cu-spacing-3);
  flex-wrap: wrap;
}

.cu-portfolio-filters__body {
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-portfolio-field {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-portfolio-field--regions {
  position: relative;
}

.cu-portfolio-field--regions::after {
  content: "";
  position: absolute;
  top: 0;
  right: calc(-1 * var(--cu-spacing-4) / 2);
  width: 1px;
  height: 100%;
  background: #D4E2D4;
  pointer-events: none;
}

.cu-portfolio-field h3 {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.1rem;
  display: inline-flex;
  align-items: center;
  gap: var(--cu-spacing-2);
}

.cu-portfolio-field--services {
  gap: var(--cu-spacing-4);
}

.cu-portfolio-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  padding: 0 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--cu-color-brand-primary);
  background: var(--cu-color-surface-emphasis);
  border-radius: 999px;
}

.cu-portfolio-crops__heading {
  justify-content: flex-end;
  text-align: right;
  width: 100%;
  margin-left: auto;
}

.cu-portfolio-field--crops-group {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
}

.cu-portfolio-crops__columns {
  display: grid;
  gap: var(--cu-spacing-4);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cu-portfolio-checkbox-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-2);
}

.cu-filter-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid #D4E2D4;
  border-radius: 12px;
  padding: 0.45rem 0.9rem;
  background: var(--cu-color-surface-muted);
  font-size: 0.9rem;
}

.cu-filter-checkbox input {
  accent-color: var(--cu-color-brand-primary);
}

.cu-portfolio-announcement {
  margin-top: var(--cu-spacing-4);
  font-size: 0.9rem;
  color: var(--cu-color-text-secondary);
}

.cu-portfolio-catalogue-status .cu-portfolio-announcement {
  border-left: 1px solid rgba(20, 83, 45, 0.18);
  margin: 0;
  padding-left: var(--cu-spacing-2);
}

.cu-portfolio-filters__matrix {
  display: grid;
  gap: var(--cu-spacing-4);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.cu-portfolio-filters__matrix .cu-portfolio-field {
  gap: var(--cu-spacing-3);
}

.cu-portfolio-filters__matrix .cu-portfolio-checkbox-grid,
.cu-portfolio-crops__column .cu-portfolio-checkbox-grid {
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-portfolio-filter-count--crops {
  order: -1;
}

@media (max-width: 768px) {
  .cu-portfolio-field--regions::after {
    display: none;
  }
}

@media (min-width: 960px) {
  .cu-portfolio-field--crops-group {
    grid-column: span 2;
  }
  .cu-portfolio-filters__matrix {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.cu-portfolio-grid {
  padding: var(--cu-spacing-12) 0 var(--cu-spacing-16);
}

.cu-portfolio-grid__inner {
  display: grid;
  gap: var(--cu-spacing-7);
}

.cu-portfolio-region-section {
  position: relative;
  display: grid;
  gap: var(--cu-spacing-4);
  padding-top: var(--cu-spacing-4);
  border-top: 1px solid rgba(20, 83, 45, 0.22);
}

.cu-portfolio-region-section.is-hidden {
  display: none;
}

.cu-portfolio-region-section__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--cu-spacing-4);
}

.cu-portfolio-region-section__header h3 {
  margin: 0;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  color: var(--cu-color-text-primary);
}

.cu-portfolio-region-section__header span {
  border: 1px solid rgba(20, 83, 45, 0.22);
  border-radius: 999px;
  color: var(--cu-color-text-secondary);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.2rem 0.65rem;
  white-space: nowrap;
}

.cu-portfolio-region-section__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--cu-spacing-4);
}

@media (max-width: 1024px) {
  .cu-portfolio-region-section__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .cu-portfolio-region-section__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-portfolio-region-section__header {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--cu-spacing-2);
  }
}

.cu-portfolio-card {
  background: var(--cu-surface-card-evidence);
  border: 1px solid var(--cu-border-card);
  border-radius: var(--cu-radius-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: var(--cu-elevation-card);
  min-height: 100%;
  position: relative;
}

.cu-portfolio-card.is-hidden {
  display: none !important;
}

.cu-portfolio-card.is-reflowing {
  will-change: transform;
}

.cu-portfolio-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--cu-color-surface-muted);
  overflow: hidden;
}

.cu-portfolio-card__media picture {
  display: block;
  width: 100%;
  height: 100%;
}

.cu-portfolio-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--cu-motion-slow) var(--cu-motion-ease);
}

.cu-portfolio-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  padding: var(--cu-spacing-4);
  flex: 1 1 auto;
}

.cu-portfolio-card__accession {
  position: absolute;
  top: var(--cu-spacing-3);
  right: var(--cu-spacing-3);
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: rgba(8, 31, 17, 0.78);
  color: var(--cu-color-text-inverse);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  padding: 0.42rem 0.55rem;
  letter-spacing: 0;
}

.cu-portfolio-card__location {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cu-color-text-tertiary);
  margin: 0;
}

.cu-portfolio-card h3 {
  min-height: 3.25rem;
}

.cu-portfolio-card__summary {
  display: -webkit-box;
  min-height: 4.8rem;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.cu-portfolio-card__baseline {
  border-top: 1px solid rgba(20, 83, 45, 0.16);
  color: var(--cu-color-text-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
  min-height: 2.8rem;
  padding-top: var(--cu-spacing-2);
}

.cu-portfolio-card__cta {
  align-self: flex-end;
  margin-top: auto;
}

.cu-portfolio-card__chips {
  margin-top: var(--cu-spacing-1, 0.25rem);
}

.cu-portfolio-empty {
  margin-top: var(--cu-spacing-6);
  font-weight: 600;
  color: var(--cu-color-text-secondary);
}

.cu-portfolio-project-hero {
  background: linear-gradient(135deg, rgba(11, 26, 11, 0.92), rgba(34, 139, 34, 0.75));
  color: var(--cu-color-text-inverse);
  padding: var(--cu-spacing-16) 0 var(--cu-spacing-12);
}

.cu-portfolio-project-hero__inner {
  background: rgba(0, 0, 0, 0.25);
  border-radius: 24px;
  padding: var(--cu-spacing-8);
  margin-top: var(--cu-spacing-4);
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-portfolio-project-hero__body {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-portfolio-project-hero__media {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.35);
}

.cu-portfolio-project-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cu-portfolio-project-hero .cu-button--ghost {
  color: var(--cu-color-brand-primary-dark);
  border: 2px solid rgba(15, 83, 45, 0.85);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 14px 32px rgba(5, 40, 25, 0.4);
}

.cu-portfolio-project-hero .cu-button--ghost:hover,
.cu-portfolio-project-hero .cu-button--ghost:focus {
  border-color: var(--cu-color-brand-primary);
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
}

.cu-portfolio-project-meta__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--cu-spacing-6);
  align-items: start;
}

.cu-portfolio-meta-group h3 {
  font-family: var(--cu-font-heading);
  font-size: 1.1rem;
  margin: 0 0 var(--cu-spacing-3);
}

.cu-tag-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  margin: 0;
  padding: 0;
}

.cu-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--cu-color-border-subtle);
  background: var(--cu-color-surface-muted);
  color: var(--cu-color-text-secondary);
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
}

.cu-portfolio-project-hero__location {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.85rem;
  margin-bottom: var(--cu-spacing-2);
}

.cu-portfolio-project-hero__inner h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.3rem;
  margin-bottom: var(--cu-spacing-3);
}

.cu-portfolio-project-hero__inner p {
  font-size: 1.1rem;
}

.cu-portfolio-project-hero__highlight {
  display: inline-flex;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  margin: var(--cu-spacing-4) 0;
  font-weight: 600;
}

@media (min-width: 768px) {
  .cu-portfolio-project-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
  }
}

@media (min-width: 1024px) {
  .cu-portfolio-project-hero__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  }
}

.cu-portfolio-project-section {
  padding: var(--cu-spacing-16) 0;
}

.cu-portfolio-project-section h2,
.cu-portfolio-project-section h3 {
  font-family: var(--cu-font-heading);
}

.cu-portfolio-project-section h2 {
  text-align: center;
  margin: 0 auto var(--cu-spacing-4);
}

.cu-portfolio-project-details__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-6);
}

.cu-portfolio-project-details ol {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-4);
  border-radius: 16px;
  list-style: decimal inside;
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-table-responsive {
  overflow-x: auto;
  background: var(--cu-color-surface-base);
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.05);
}

.cu-table-responsive table {
  width: 100%;
  border-collapse: collapse;
}

.cu-table-responsive th,
.cu-table-responsive td {
  padding: var(--cu-spacing-3);
  border-bottom: 1px solid #E0E7E0;
  text-align: left;
}

.cu-portfolio-project-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--cu-spacing-5);
  justify-content: center;
  justify-items: center;
  align-items: stretch;
}

.cu-portfolio-project-gallery__grid--single {
  grid-template-columns: minmax(0, var(--cu-portfolio-gallery-card-max-width));
}

@media (min-width: 768px) {
  .cu-portfolio-project-gallery__grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .cu-portfolio-project-gallery__grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.cu-portfolio-project-gallery figure {
  margin: 0;
  padding: var(--cu-spacing-4);
  background: var(--cu-color-surface-base);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-3);
  width: 100%;
  max-width: var(--cu-portfolio-gallery-card-max-width);
}

.cu-portfolio-project-gallery img {
  width: 100%;
  height: var(--cu-portfolio-gallery-image-height);
  max-height: var(--cu-portfolio-gallery-image-height);
  object-fit: contain;
  display: block;
  border-radius: 12px;
  background: var(--cu-color-surface-muted);
}

.cu-portfolio-project-gallery figcaption {
  padding: 0;
  color: var(--cu-color-text-secondary);
  text-align: center;
  width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cu-portfolio-project-related ul {
  list-style: disc;
  padding-left: var(--cu-spacing-6);
  display: grid;
  gap: var(--cu-spacing-2);
  color: var(--cu-color-text-secondary);
}

.cu-contact-hero {
  background: linear-gradient(135deg, rgba(34, 139, 34, 0.88), rgba(15, 93, 15, 0.78));
  color: var(--cu-color-text-inverse);
  padding: var(--cu-hero-padding-block) 0;
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-contact-hero__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  justify-content: center;
  align-items: center;
  height: 100%;
}

.cu-contact-hero__inner h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.4rem;
  margin: 0;
}

.cu-contact-hero__inner p {
  font-size: 1.1rem;
  margin: 0;
}

.cu-legal-hero {
  background: linear-gradient(135deg, #dff26a 0%, #3f7f23 100%);
  color: var(--cu-color-text-inverse);
  padding: var(--cu-hero-padding-block) 0;
}

.cu-legal-hero__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--cu-spacing-5);
}

.cu-legal-hero__inner h1 {
  font-family: var(--cu-font-heading);
  font-size: clamp(2.1rem, 4vw, 2.6rem);
  margin: 0;
}

.cu-legal-hero__meta {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-2);
  font-size: 1.05rem;
  line-height: 1.5;
}

.cu-legal-hero__meta p {
  margin: 0;
}

.cu-legal-hero__meta span {
  font-weight: 600;
  opacity: 0.85;
}

.cu-legal-hero__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--cu-spacing-2);
}

.cu-contact-options {
  padding: var(--cu-spacing-14) 0;
  background: var(--cu-color-surface-muted);
}

.cu-contact-options h2 {
  text-align: center;
  font-family: var(--cu-font-heading);
  font-size: 2rem;
  margin: 0 0 var(--cu-spacing-6) 0;
}

.cu-contact-options__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cu-spacing-4);
  max-width: 980px;
  margin: 0 auto;
}

.cu-contact-option {
  background: var(--cu-color-surface-base);
  border-radius: 20px;
  padding: var(--cu-spacing-5);
  box-shadow: 0 14px 32px rgba(12, 48, 16, 0.08);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  align-items: center;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
}

.cu-contact-option:hover,
.cu-contact-option:focus-within {
  transform: translateY(-4px);
  box-shadow: 0 22px 40px rgba(12, 48, 16, 0.14);
}

.cu-contact-option__header {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cu-spacing-3);
}

.cu-contact-option__icon {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: rgba(34, 197, 94, 0.14);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(22, 101, 52, 0.18);
}

.cu-contact-option__icon svg {
  width: 34px;
  height: 34px;
}

.cu-contact-option__title {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: 1.2rem;
}

.cu-contact-option__body {
  margin: 0;
  color: var(--cu-color-text-secondary);
  text-align: center;
  width: 100%;
}

.cu-contact-option__link {
  margin-top: auto;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  align-self: stretch;
  justify-content: center;
  padding: 0.85rem 1rem;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.08);
  transition: background 0.2s ease, transform 0.2s ease;
}

.cu-contact-option__link:hover,
.cu-contact-option__link:focus-visible {
  background: rgba(34, 197, 94, 0.16);
  transform: translateY(-2px);
}

@media (max-width: 760px) {
  .cu-hero .cu-hero__ctas {
    flex-wrap: wrap;
  }

  .cu-contact-options__grid {
    grid-template-columns: 1fr;
  }
}

.cu-contact-form {
  padding: var(--cu-spacing-12) 0;
  background: var(--cu-color-surface-base);
}

.cu-contact-form form {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-6);
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-6);
}

.cu-contact-calendly {
  padding: var(--cu-spacing-14) 0;
  background: var(--cu-color-surface-muted);
}

.cu-contact-calendly__inner {
  background: var(--cu-color-surface-base);
  border-radius: 24px;
  padding: 3.5rem;
  min-height: 760px;
  box-shadow: 0 18px 36px rgba(12, 48, 16, 0.12);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 3.5rem;
  align-items: start;
}

.cu-contact-calendly__copy {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-6);
  padding: 0 var(--cu-spacing-5);
  height: 100%;
}

.cu-contact-calendly__copy h2 {
  font-family: var(--cu-font-heading);
  margin: 0;
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
  text-align: center;
}

.cu-contact-calendly__copy p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--cu-color-text-secondary);
}

.cu-contact-calendly__privacy,
.cu-contact-calendly__fallback {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--cu-color-text-secondary);
}

.cu-contact-calendly__fallback {
  text-align: left;
}

.cu-contact-calendly__fallback-link {
  margin-top: auto;
  align-self: flex-start;
}

.cu-contact-calendly__widget {
  min-width: 0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 22px 42px rgba(17, 17, 17, 0.12);
  background: var(--cu-color-surface-base);
  border: 1px solid rgba(22, 101, 52, 0.16);
  padding: 0;
}

.cu-contact-calendly__widget .calendly-inline-widget {
  width: 100%;
  min-height: 600px;
  border: none;
}

.cu-contact-calendly__widget iframe {
  min-height: 600px;
  border: none;
}

.cu-contact-form__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--cu-spacing-4);
}

.cu-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cu-field label,
.cu-field legend {
  font-weight: 600;
}

.cu-field input,
.cu-field select,
.cu-field textarea {
  border: 1px solid #C6D5C6;
  border-radius: 12px;
  padding: 0.75rem 1rem;
  font-family: var(--cu-font-body);
}

.cu-field textarea {
  min-height: 140px;
  resize: vertical;
}

.cu-field .cu-field__helper {
  font-size: 0.85rem;
  color: var(--cu-color-text-secondary);
}

.cu-contact-collapsible {
  border: 1px solid var(--cu-color-border-subtle);
  border-radius: 24px;
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  background: var(--cu-color-surface-base);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  min-height: 100%;
}

.cu-contact-collapsible summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cu-spacing-3);
  line-height: 1.5;
  min-height: calc(1.5em * 2);
  outline: none;
}

.cu-contact-collapsible summary::-webkit-details-marker {
  display: none;
}

.cu-contact-collapsible summary::after {
  content: '▾';
  font-size: 0.85rem;
  transform: rotate(-90deg);
  transition: transform 0.2s ease;
  color: rgba(22, 101, 52, 0.85);
}

.cu-contact-collapsible[open] summary::after {
  transform: rotate(0deg);
}

.cu-contact-collapsible summary:focus-visible {
  outline: 2px solid var(--cu-color-brand-primary);
  outline-offset: 4px;
}

.cu-contact-collapsible[open] {
  box-shadow: 0 20px 32px rgba(12, 36, 12, 0.12);
  border-color: rgba(22, 101, 52, 0.3);
}

.cu-contact-collapsible__label {
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
}

.cu-contact-collapsible__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: rgba(22, 101, 52, 0.16);
  color: var(--cu-color-brand-primary);
  font-weight: 600;
  font-size: 0.85rem;
  white-space: nowrap;
}

.cu-contact-collapsible__count[hidden] {
  display: none;
}

.cu-contact-collapsible[open] .cu-contact-collapsible__count {
  display: none;
}

.cu-contact-collapsible[data-has-selections="true"] {
  border-color: rgba(22, 101, 52, 0.35);
  box-shadow: 0 22px 40px rgba(22, 101, 52, 0.18);
}

.cu-contact-collapsible__panel {
  margin: 0;
  display: grid;
  gap: var(--cu-spacing-3);
  max-height: 280px;
  overflow-y: auto;
  padding-right: 0.4rem;
}

.cu-contact-collapsible__panel::-webkit-scrollbar {
  width: 6px;
}

.cu-contact-collapsible__panel::-webkit-scrollbar-thumb {
  background: rgba(22, 101, 52, 0.3);
  border-radius: 999px;
}

.cu-field--collapsible-inner {
  gap: var(--cu-spacing-2);
}

.cu-contact-consent {
  background: var(--cu-color-surface-emphasis);
  padding: var(--cu-spacing-4);
  border-radius: 16px;
  color: var(--cu-color-text-secondary);
}

.cu-contact-form__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--cu-spacing-2);
}

.cu-contact-form__actions .cu-button {
  align-self: flex-end;
}

.cu-contact-feedback {
  font-size: 0.9rem;
  color: var(--cu-color-text-secondary);
  text-align: right;
}

.cu-contact-feedback--error {
  color: #C0392B;
}

.cu-contact-honeypot {
  position: absolute;
  left: -9999px;
}

.cu-contact-location {
  padding: var(--cu-spacing-12) 0;
  background: var(--cu-color-surface-muted);
}

.cu-contact-location__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-6);
  align-items: start;
}

.cu-contact-location figure {
  margin: 0;
  background: var(--cu-color-surface-base);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.05);
}

.cu-contact-location img {
  width: 100%;
  display: block;
}

.cu-contact-location iframe {
  width: 100%;
  display: block;
  border: 0;
  height: clamp(280px, 45vw, 420px);
}

.cu-contact-location figcaption {
  padding: var(--cu-spacing-4);
  text-align: center;
  color: var(--cu-color-text-secondary);
}

.cu-contact-map-fallback {
  font-size: 0.85rem;
  margin: var(--cu-spacing-2) 0 var(--cu-spacing-4);
  color: var(--cu-color-text-secondary);
}

.cu-contact-faq {
  padding: var(--cu-spacing-12) 0 var(--cu-spacing-16);
  background: var(--cu-color-surface-base);
}

/* System pages (404, maintenance) */
.cu-error {
  padding: var(--cu-spacing-12) 0 var(--cu-spacing-16);
  background: var(--cu-color-surface-base);
}

.cu-error__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-8);
  align-items: center;
}

.cu-error__content h1 {
  font-family: var(--cu-font-heading);
  font-size: 2.2rem;
  margin: 0 0 var(--cu-spacing-3);
}

.cu-error__content p {
  margin: 0 0 var(--cu-spacing-3);
  color: var(--cu-color-text-secondary);
}

.cu-error__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  margin-top: var(--cu-spacing-4);
}

.cu-error__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  margin-top: var(--cu-spacing-4);
}

.cu-error__links .cu-button {
  background: var(--cu-color-surface-muted);
  color: var(--cu-color-text-primary);
}

.cu-error__links .cu-button:hover,
.cu-error__links .cu-button:focus {
  background: var(--cu-color-surface-emphasis);
  color: var(--cu-color-text-primary);
}

.cu-error__illustration img {
  width: 100%;
  max-width: 420px;
  display: block;
  margin: 0 auto;
  border-radius: 24px;
  box-shadow: 0 14px 40px rgba(10, 31, 10, 0.12);
}

.cu-error-resources {
  margin-top: var(--cu-spacing-12);
  padding-top: var(--cu-spacing-8);
  border-top: 1px solid #D7E4DA;
}

.cu-error-resources__heading {
  font-family: var(--cu-font-heading);
  font-size: 1.75rem;
  margin: 0 auto var(--cu-spacing-4);
  text-align: center;
}

.cu-error-resources__intro {
  margin: 0 0 var(--cu-spacing-6);
  color: var(--cu-color-text-secondary);
  max-width: 720px;
}

.cu-error-resources__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--cu-spacing-6);
}

.cu-error-resources__section {
  background: var(--cu-color-surface-muted);
  border-radius: 18px;
  padding: var(--cu-spacing-6);
  box-shadow: 0 18px 42px rgba(25, 52, 25, 0.08);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
}

.cu-error-resources__title {
  font-family: var(--cu-font-heading);
  font-size: 1.35rem;
  margin: 0;
}

.cu-error-resources__description {
  margin: 0;
  color: var(--cu-color-text-secondary);
}

.cu-error-resources__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-error-resources__link {
  font-size: 1rem;
}

.cu-error-resources__link-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.cu-error-resources__link-description {
  margin: 0;
  color: var(--cu-color-text-secondary);
  font-size: 0.95rem;
}

.cu-maintenance-updates {
  margin-top: var(--cu-spacing-12);
  padding: var(--cu-spacing-6);
  background: var(--cu-color-surface-muted);
  border-radius: 18px;
  box-shadow: 0 12px 36px rgba(25, 52, 25, 0.08);
}

.cu-maintenance-updates__heading {
  font-family: var(--cu-font-heading);
  font-size: 1.6rem;
  margin: 0 auto var(--cu-spacing-3);
  text-align: center;
}

.cu-maintenance-updates__intro {
  margin: 0 0 var(--cu-spacing-4);
  color: var(--cu-color-text-secondary);
  max-width: 680px;
}

.cu-maintenance-updates__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
}

.cu-maintenance-updates__item {
  display: grid;
  grid-template-columns: minmax(110px, 140px) 1fr;
  gap: var(--cu-spacing-4);
  align-items: flex-start;
  background: var(--cu-color-surface-base);
  border-radius: 16px;
  padding: var(--cu-spacing-4);
  border: 1px solid #D7E4DA;
  box-shadow: 0 10px 28px rgba(15, 35, 15, 0.07);
}

.cu-maintenance-updates__time {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--cu-color-text-secondary);
}

.cu-maintenance-updates__details {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-2);
}

.cu-maintenance-updates__message {
  margin: 0;
}

.cu-maintenance-updates__badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.85rem;
  font-weight: 600;
  background: var(--cu-color-surface-emphasis);
  color: var(--cu-color-text-primary);
}

.cu-maintenance-updates__item--in-progress .cu-maintenance-updates__badge {
  background: #FDE7C7;
  color: #7A4D00;
}

.cu-maintenance-updates__item--verification .cu-maintenance-updates__badge {
  background: #DFE9FF;
  color: #1F3D8A;
}

.cu-maintenance-updates__item--complete .cu-maintenance-updates__badge {
  background: #D9F0DC;
  color: #155724;
}

.cu-error-search {
  margin-top: var(--cu-spacing-6);
}

.cu-error-search__label {
  display: block;
  font-weight: 600;
  margin-bottom: var(--cu-spacing-2);
}

.cu-error-search__controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
}

.cu-error-search__controls input {
  flex: 1;
  min-width: 220px;
  padding: var(--cu-spacing-3);
  border: 1px solid #C6D5C8;
  border-radius: 10px;
  font-size: 1rem;
}

.cu-error-search__controls input:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
}

.cu-error-search__help {
  margin-top: var(--cu-spacing-2);
  font-size: 0.95rem;
  color: var(--cu-color-text-secondary);
}

.cu-error-search__feedback {
  margin-top: var(--cu-spacing-2);
  font-size: 0.95rem;
  color: #C0392B;
}

.cu-maintenance__status {
  margin-top: var(--cu-spacing-4);
  padding: var(--cu-spacing-3);
  border-left: 4px solid var(--cu-color-border-strong);
  background: var(--cu-color-surface-muted);
  border-radius: 12px;
  color: var(--cu-color-text-secondary);
}

@media (max-width: 720px) {
  .cu-error__content h1 {
    font-size: 1.8rem;
  }

  .cu-error__illustration img {
    max-width: 100%;
  }

  .cu-error-resources {
    margin-top: var(--cu-spacing-10);
    padding-top: var(--cu-spacing-6);
  }

  .cu-error-resources__grid {
    grid-template-columns: 1fr;
  }

  .cu-maintenance-updates {
    margin-top: var(--cu-spacing-10);
    padding: var(--cu-spacing-5);
  }

  .cu-maintenance-updates__item {
    grid-template-columns: 1fr;
  }
}

.cu-contact-faq__inner {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-4);
  align-items: center;
  justify-content: space-between;
}

.cu-contact-faq__inner h2 {
  font-family: var(--cu-font-heading);
  margin-bottom: var(--cu-spacing-2);
  margin-left: 0;
  margin-right: auto;
  width: auto;
  text-align: left;
}

.cu-contact-faq__inner a {
  font-weight: 600;
}

@media (max-width: 960px) {
  .cu-contact-calendly__inner {
    grid-template-columns: 1fr;
  }

  .cu-portfolio-filters__controls {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }

  .cu-portfolio-filters__actions {
    gap: var(--cu-spacing-3);
  }

  .cu-portfolio-search input {
    min-width: 200px;
  }
}

@media (max-width: 768px) {
  .cu-portfolio-hero__content h1,
  .cu-contact-hero__inner h1 {
    font-size: 2rem;
  }

  .cu-portfolio-project-hero__inner {
    padding: var(--cu-spacing-6);
  }

  .cu-portfolio-project-details__grid {
    gap: var(--cu-spacing-4);
  }

  .cu-contact-form form {
    padding: var(--cu-spacing-4);
  }

  .cu-contact-calendly__inner {
    padding: var(--cu-spacing-4);
  }

  .cu-contact-faq__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 540px) {
  .cu-contact-calendly__inner {
    padding: 5rem var(--cu-spacing-4);
    gap: var(--cu-spacing-5);
  }

  .cu-contact-calendly__copy {
    padding: 0;
  }

  .cu-contact-calendly__widget {
    padding: 0;
  }

  .cu-contact-calendly__widget .calendly-inline-widget,
  .cu-contact-calendly__widget iframe {
    min-height: 360px;
  }
}

.cu-about-hero {
  background: var(--cu-color-surface-muted);
  padding: clamp(6.5rem, 12vw, 8.5rem) 0;
}

.cu-about-hero__inner {
  display: grid;
  gap: var(--cu-spacing-8);
  max-width: 1100px;
  margin: 0 auto;
  align-items: center;
}

.cu-about-hero__content {
  display: grid;
  gap: var(--cu-spacing-6);
  align-self: center;
}

.cu-about-hero__content h1 {
  margin: 0 0 var(--cu-spacing-5);
  font-size: clamp(2.6rem, 4vw, 3.05rem);
  line-height: 1.18;
}

.cu-about-hero__content p {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.7;
}

.cu-about-hero__side {
  display: grid;
  gap: var(--cu-spacing-4);
}

.cu-about-hero__media {
  align-self: center;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(12, 36, 12, 0.16);
  width: min(100%, 460px);
  aspect-ratio: 3 / 4;
  display: flex;
}

.cu-about-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cu-about-hero__panels {
  display: grid;
  gap: var(--cu-spacing-3);
}

@media (min-width: 992px) {
  .cu-about-hero__inner {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 460px);
  }
}

@media (min-width: 1024px) {
  .cu-about-intro__inner {
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  }
}

.cu-about-intro {
  padding: var(--cu-spacing-18) 0;
  background: var(--cu-color-surface-base);
}

.cu-about-intro__inner {
  display: grid;
  row-gap: var(--cu-spacing-3);
  column-gap: var(--cu-spacing-8);
  max-width: 1160px;
  margin: 0 auto;
  align-items: start;
  padding: var(--cu-spacing-6) var(--cu-spacing-8);
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  grid-template-areas:
    "about-heading about-heading"
    "about-sub about-sub"
    "about-card1 about-media"
    "about-card2 about-media"
    "about-card3 about-media"
    "about-technology about-mission"
    "about-divider about-divider";
}

.cu-about-intro__content {
  display: contents;
}

.cu-about-intro__content > h2 {
  grid-area: about-heading;
  margin: 0;
  font-size: 2.2rem;
  text-align: center;
  justify-self: center;
}

.cu-about-intro__content > p {
  grid-area: about-sub;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.7;
  text-align: center;
  max-width: 560px;
  justify-self: center;
}

.cu-about-timeline {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-about-timeline h2 {
  margin: 0 0 var(--cu-spacing-6) 0;
  text-align: center;
}

.cu-about-timeline__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-about-timeline__year {
  font-family: var(--cu-font-heading);
  font-weight: 600;
  color: var(--cu-color-brand-primary);
  font-size: 1.25rem;
  margin: 0 0 var(--cu-spacing-2) 0;
}

.cu-about-timeline li {
  background: var(--cu-color-surface-base);
  border-radius: 18px;
  padding: var(--cu-spacing-5);
  display: grid;
  gap: var(--cu-spacing-2);
  box-shadow: 0 18px 36px rgba(12, 48, 16, 0.08);
}

.cu-about-timeline li h3 {
  margin: 0 0 var(--cu-spacing-2) 0;
}

.cu-about-timeline li p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.6;
}

.cu-about-intro__panels {
  grid-area: about-panels;
  display: contents;
}

.cu-about-intro__divider {
  grid-area: about-divider;
  width: min(100%, 880px);
  height: 3px;
  margin: var(--cu-spacing-5) auto 0;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(20, 83, 45, 0.45),
    var(--cu-color-brand-primary-dark),
    rgba(20, 83, 45, 0.45),
    transparent
  );
}

.cu-about-intro__media {
  grid-area: about-media;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 20px 36px rgba(12, 36, 12, 0.14);
  justify-self: stretch;
  width: 100%;
  max-width: 100%;
  padding: var(--cu-spacing-2);
  display: flex;
  align-items: stretch;
  justify-content: center;
  align-self: stretch;
  margin: 0;
}

.cu-about-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cu-about-panel {
  border: 1px solid var(--cu-color-border-subtle);
  border-radius: 14px;
  padding: var(--cu-spacing-3) var(--cu-spacing-3) var(--cu-spacing-4);
  background: var(--cu-color-surface-base);
  display: grid;
  gap: var(--cu-spacing-2);
  align-content: start;
  transition: transform 160ms ease, box-shadow 160ms ease;
  min-height: 0;
  margin: 0;
  width: 100%;
}

.cu-about-panel:nth-of-type(1) {
  grid-area: about-card1;
  justify-self: stretch;
}

.cu-about-panel:nth-of-type(2) {
  grid-area: about-card2;
  justify-self: stretch;
}

.cu-about-panel:nth-of-type(3) {
  grid-area: about-card3;
  justify-self: stretch;
}

.cu-about-panel--technology {
  grid-area: about-technology;
  justify-self: stretch;
  align-self: stretch;
  margin-top: var(--cu-spacing-5);
  padding: var(--cu-spacing-5) clamp(var(--cu-spacing-5), 3vw, var(--cu-spacing-6)) var(--cu-spacing-6);
  border-color: rgba(20, 83, 45, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.98)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 38px rgba(12, 36, 12, 0.1);
  gap: var(--cu-spacing-3);
}

.cu-about-panel:hover,
.cu-about-panel:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 18px 30px rgba(12, 36, 12, 0.12);
}

.cu-about-panel h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}

.cu-about-panel p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.5;
  font-size: 0.92rem;
}

.cu-about-panel--mission {
  grid-area: about-mission;
  justify-self: stretch;
  align-self: stretch;
  margin-top: var(--cu-spacing-5);
  padding: var(--cu-spacing-5) clamp(var(--cu-spacing-5), 3vw, var(--cu-spacing-6)) var(--cu-spacing-6);
  border-color: rgba(20, 83, 45, 0.32);
  background:
    linear-gradient(180deg, rgba(246, 251, 247, 0.98), rgba(235, 246, 238, 0.98)),
    var(--cu-color-surface-muted);
  text-align: center;
  box-shadow: 0 22px 44px rgba(12, 36, 12, 0.14);
  gap: var(--cu-spacing-3);
}

.cu-about-panel--technology h3 {
  font-size: 1.35rem;
  line-height: 1.3;
  text-align: center;
}

.cu-about-panel--mission h3 {
  font-size: 1.5rem;
  line-height: 1.3;
  text-align: center;
}

.cu-about-panel--technology p,
.cu-about-panel--mission p {
  max-width: 58ch;
  margin: 0 auto;
  font-size: 1rem;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 900px) {
  .cu-about-intro__inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "about-heading"
      "about-sub"
      "about-media"
      "about-card1"
      "about-card2"
      "about-card3"
      "about-technology"
      "about-mission"
      "about-divider";
    padding: var(--cu-spacing-5);
  }

  .cu-about-intro__content > p {
    max-width: 100%;
  }

  .cu-about-intro__media {
    width: min(100%, 420px);
    max-width: min(420px, 100%);
    justify-self: center;
    align-self: start;
    margin-top: var(--cu-spacing-2);
    grid-row: auto;
  }

  .cu-about-intro__media img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

.cu-about-career {
  padding: var(--cu-spacing-16) 0;
}

.cu-about-career h2,
.cu-about-education h2,
.cu-about-approach h2,
.cu-about-collaborators h2 {
  margin: 0 0 var(--cu-spacing-5);
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
  text-align: center;
}

.cu-about-career__grid {
  display: grid;
  gap: var(--cu-spacing-4);
  margin-top: var(--cu-spacing-5);
}

.cu-about-career__item {
  display: grid;
  grid-template-columns: 104px 1fr;
  gap: var(--cu-spacing-5);
  align-items: center;
  padding: var(--cu-spacing-5);
  border-radius: 18px;
  border: 1px solid var(--cu-color-border-subtle);
  background: var(--cu-color-surface-base);
  box-shadow: 0 16px 34px rgba(12, 36, 12, 0.1);
}

@media (max-width: 640px) {
  .cu-about-career__item {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
}

.cu-about-career__icon {
  width: 84px;
  height: 84px;
  border-radius: 16px;
  background: var(--cu-color-surface-muted);
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--cu-color-brand-primary-dark);
  box-shadow: inset 0 0 0 1px rgba(37, 86, 37, 0.15), 0 8px 20px rgba(12, 36, 12, 0.12);
  justify-self: center;
}

.cu-about-career__icon img {
  width: 72%;
  height: 72%;
  object-fit: contain;
  border-radius: 14px;
  box-shadow: none;
}

.cu-about-career__content {
  display: grid;
  gap: var(--cu-spacing-2);
  align-content: start;
}

.cu-about-career__content h3 {
  margin: 0;
  font-size: 1.15rem;
}

.cu-about-career__meta {
  margin: 0;
  color: var(--cu-color-text-secondary);
  font-weight: 500;
}

.cu-about-career__summary {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.65;
}

.cu-about-education {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-about-education__list {
  display: grid;
  gap: var(--cu-spacing-4);
  margin-top: var(--cu-spacing-5);
}

.cu-about-education__item {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: var(--cu-spacing-4);
  align-items: center;
  padding: var(--cu-spacing-5);
  border-radius: 16px;
  border: 1px solid var(--cu-color-border-subtle);
  background: var(--cu-color-surface-base);
  box-shadow: 0 14px 28px rgba(12, 36, 12, 0.08);
}

@media (max-width: 640px) {
  .cu-about-education__item {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
  }
}

.cu-about-education__logo {
  width: 68px;
  height: 68px;
  border-radius: 14px;
  background: var(--cu-color-surface-muted);
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1px rgba(37, 86, 37, 0.15), 0 6px 18px rgba(12, 36, 12, 0.1);
  justify-self: center;
}

.cu-about-education__logo img {
  width: 72%;
  height: 72%;
  object-fit: contain;
  border-radius: 12px;
}

.cu-about-education__content {
  display: grid;
  gap: var(--cu-spacing-2);
  align-content: start;
}

.cu-about-education__item h3 {
  margin: 0 0 var(--cu-spacing-2);
  font-size: 1.15rem;
}

.cu-about-education__qualification {
  margin: 0;
  font-weight: 500;
  color: var(--cu-color-text-secondary);
}

.cu-about-education__summary {
  margin: var(--cu-spacing-2) 0;
  color: var(--cu-color-text-secondary);
}

.cu-about-education__location {
  margin: 0;
  color: var(--cu-color-text-tertiary);
  font-size: 0.95rem;
}

.cu-about-education__period {
  margin: 0;
  color: var(--cu-color-text-tertiary);
  font-size: 0.95rem;
}

.cu-about-impact {
  padding: var(--cu-spacing-16) 0;
}

.cu-about-impact .cu-container {
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-about-impact h2 {
  margin: 0;
  text-align: center;
  margin-left: 0;
  width: 100%;
}

.cu-about-impact .cu-stat-strip__grid {
  margin-top: 0;
}

.cu-about-impact .cu-stat {
  align-items: center;
  text-align: center;
  gap: var(--cu-spacing-3);
  background: var(--cu-color-surface-base);
  border: 1px solid rgba(17, 17, 17, 0.12);
}

.cu-about-impact .cu-stat__value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.9rem;
  border: 1px solid var(--cu-color-text-primary);
  border-radius: 999px;
  font-size: 1.2rem;
  margin: 0;
}

.cu-about-impact .cu-stat__label {
  text-align: center;
  line-height: 1.6;
}

.cu-about-approach {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-about-approach__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--cu-spacing-6);
  align-items: stretch;
}

.cu-about-approach__item {
  background: var(--cu-color-surface-base);
  border-radius: 16px;
  padding: var(--cu-spacing-6);
  box-shadow: 0 12px 24px rgba(12, 48, 16, 0.08);
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: var(--cu-spacing-4);
  justify-items: center;
  text-align: center;
}

.cu-about-approach__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto;
  filter: brightness(0) saturate(100%) invert(28%) sepia(39%) saturate(1017%) hue-rotate(91deg) brightness(92%) contrast(88%);
}

.cu-about-approach__item h3 {
  margin: 0;
  text-align: center;
}

.cu-about-approach__item p {
  margin: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  line-height: 1.6;
}

@media (min-width: 1024px) {
  .cu-about-approach__item {
    grid-column: span 2;
  }

  .cu-about-approach__item:nth-child(4) {
    grid-column: 2 / span 2;
  }

  .cu-about-approach__item:nth-child(5) {
    grid-column: 4 / span 2;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .cu-about-approach__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cu-about-approach__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    width: min(100%, 420px);
    justify-self: center;
  }
}

@media (max-width: 639px) {
  .cu-about-approach__grid {
    grid-template-columns: 1fr;
  }
}

.cu-about-collaborators {
  padding: var(--cu-spacing-16) 0;
}

.cu-about-collaborators__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--cu-spacing-6);
}

.cu-cta-band {
  padding: var(--cu-spacing-16) 0;
  background: linear-gradient(135deg, rgba(34, 139, 34, 0.12), rgba(15, 93, 15, 0.18));
}

.cu-cta-band__inner {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  justify-content: space-between;
}

.cu-cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  justify-content: flex-end;
  margin-top: var(--cu-spacing-5);
  width: 100%;
}

.cu-faq-hero {
  padding: var(--cu-hero-padding-block) 0;
  background: var(--cu-color-surface-muted);
  position: relative;
  overflow: hidden;
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-faq-hero--has-media {
  color: var(--cu-color-text-inverse);
}

.cu-faq-hero--has-media::before {
  content: "";
  position: absolute;
  inset: -10%;
  background: var(--faq-hero-background, var(--cu-color-surface-muted)) center / cover no-repeat;
  filter: blur(4px);
  transform: scale(1.05);
  z-index: 0;
}

.cu-faq-hero--has-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, rgba(8, 23, 38, 0.74), rgba(8, 23, 38, 0.82));
  z-index: 0;
}

.cu-faq-hero--has-media > .cu-container {
  position: relative;
  z-index: 1;
  max-width: 780px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-4);
  text-align: center;
  height: 100%;
  justify-content: center;
}

.cu-faq-hero--has-media h1,
.cu-faq-hero--has-media p {
  color: inherit;
}

.cu-faq-hero--has-media h1 {
  margin: 0;
}

.cu-faq-hero--has-media p {
  margin: 0;
  font-size: 1.05rem;
}

.cu-faq-hero--has-media .cu-button {
  box-shadow: 0 12px 28px rgba(8, 23, 38, 0.22);
}

.cu-faq-hero--has-media .cu-hero__ctas {
  justify-content: center;
}

@media (max-width: 640px) {
  .cu-faq-hero {
    padding: clamp(4.5rem, 18vw, 6rem) 0;
    min-height: clamp(360px, 70vh, 520px);
    height: auto;
  }

  .cu-faq-hero--has-media > .cu-container {
    gap: var(--cu-spacing-3);
    height: auto;
  }

  .cu-services-snapshot h2,
  .cu-clients h2,
  .cu-services-clients h2,
  .cu-about-teaser h2,
  .cu-faq-teaser h2,
  .cu-courses-teaser h2,
  .cu-portfolio-filters__intro h2,
  .cu-contact-calendly__copy h2,
  .cu-courses-faq__header h2,
  .cu-about-career h2,
  .cu-about-education h2,
  .cu-about-approach h2,
  .cu-about-collaborators h2 {
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
  }

  .cu-contact-faq__inner h2 {
    margin-left: 0;
    margin-right: auto;
    width: auto;
    text-align: left;
  }

  .cu-research-intro__panel {
    padding: var(--cu-spacing-6) var(--cu-spacing-4);
    gap: var(--cu-spacing-4);
  }

  .cu-research-intro__highlight {
    font-size: 1.12rem;
  }

  .cu-research-intro p {
    font-size: 1.02rem;
  }

  .cu-courses-card__ordinal {
    width: 48px;
    height: 48px;
    font-size: 1.2rem;
  }

  .cu-courses-teaser .cu-card {
    padding: var(--cu-spacing-4);
    min-height: 0;
  }
}

.cu-faq-search {
  padding: var(--cu-spacing-12) 0;
}

.cu-faq-search__controls {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  align-items: center;
}

.cu-faq-search__label {
  display: block;
  font-weight: 600;
  text-align: center;
  font-size: 1.05rem;
}

.cu-faq-search__inputs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  align-items: center;
  width: min(720px, 100%);
  margin: 0 auto;
}

.cu-faq-search__inputs input[type="search"] {
  width: 100%;
  flex: 1 1 260px;
  min-width: 200px;
  padding: var(--cu-spacing-3);
  border-radius: 12px;
  border: 1px solid #C6D5C6;
  font-size: 1rem;
}

.cu-faq-search__reset {
  align-self: stretch;
  padding: var(--cu-spacing-3) var(--cu-spacing-5);
  white-space: nowrap;
}

.cu-faq-search__helper {
  margin-top: var(--cu-spacing-3);
  color: var(--cu-color-text-tertiary);
  text-align: center;
  max-width: 640px;
}

.cu-faq-categories {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-base);
}

.cu-faq-categories .cu-container {
  display: grid;
  gap: var(--cu-spacing-10);
}

.cu-faq-category {
  margin-bottom: var(--cu-spacing-8);
}

.cu-faq-category > h2 {
  text-align: center;
  font-size: 1.9rem;
  margin-bottom: var(--cu-spacing-5);
}

.cu-faq-category__items {
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-faq-item {
  background: var(--cu-color-surface-muted);
  border-radius: 12px;
  padding: var(--cu-spacing-4) var(--cu-spacing-5);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08);
}

.cu-faq-item summary {
  font-weight: 600;
  cursor: pointer;
  font-size: 1.15rem;
  line-height: 1.45;
}

.cu-faq-item p {
  margin-top: var(--cu-spacing-3);
  font-size: 1rem;
  line-height: 1.8;
}

.cu-faq-related {
  margin-top: var(--cu-spacing-4);
  padding-top: var(--cu-spacing-3);
  border-top: 1px solid var(--cu-color-border-subtle);
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-faq-related__group h4 {
  font-size: 1rem;
  margin: 0 0 var(--cu-spacing-2) 0;
  font-weight: 600;
}

.cu-faq-related__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-2) var(--cu-spacing-3);
}

.cu-faq-related__links li {
  margin: 0;
}

.cu-faq-related__link {
  color: var(--cu-color-brand-primary);
  text-decoration: none;
  font-weight: 600;
}

.cu-faq-related__link:hover,
.cu-faq-related__link:focus {
  text-decoration: underline;
}

.cu-courses-hero {
  padding: var(--cu-hero-padding-block) 0;
  background: var(--cu-color-surface-muted);
  min-height: var(--cu-hero-height);
  height: var(--cu-hero-height);
}

.cu-courses-page .cu-container {
  padding-left: clamp(1.75rem, 5vw, 4.25rem);
  padding-right: clamp(1.75rem, 5vw, 4.25rem);
}

.cu-courses-hero .cu-container {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-4);
  text-align: center;
  height: 100%;
  justify-content: center;
}

.cu-courses-hero .cu-container h1 {
  margin: 0;
}

.cu-courses-hero--has-media {
  background: linear-gradient(205deg, rgba(12, 31, 48, 0.85), rgba(12, 31, 48, 0.78)),
    var(--courses-hero-background, var(--cu-color-surface-muted));
  background-size: cover;
  background-position: center;
  color: var(--cu-color-text-inverse);
}

.cu-courses-hero .cu-container p {
  margin: 0;
  font-size: 1.1rem;
  color: inherit;
}

.cu-courses-hero--has-media h1,
.cu-courses-hero--has-media p {
  color: inherit;
}

.cu-courses-hero--has-media .cu-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  justify-content: center;
}

.cu-courses-hero--has-media .cu-button--ghost {
  border-color: rgba(255, 255, 255, 0.85);
  color: var(--cu-color-text-inverse);
}

.cu-courses-hero--has-media .cu-button--ghost:hover,
.cu-courses-hero--has-media .cu-button--ghost:focus {
  background: var(--cu-color-text-inverse);
  color: var(--cu-color-brand-primary);
}

@media (max-width: 640px) {
  .cu-courses-page .cu-container {
    padding-left: var(--cu-spacing-4);
    padding-right: var(--cu-spacing-4);
  }
}

.cu-courses-feature {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-base);
}

.cu-courses-feature .cu-container {
  max-width: 860px;
  margin: 0 auto;
}

.cu-courses-feature__grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(260px, 1fr);
  gap: var(--cu-spacing-8);
  align-items: center;
  justify-content: center;
  justify-items: center;
  text-align: center;
}

.cu-courses-feature__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--cu-spacing-4);
  padding: var(--cu-spacing-6);
  position: relative;
  overflow: visible;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.cu-courses-feature__card--solo {
  position: static;
  padding: var(--cu-spacing-6);
  max-width: 100%;
  width: 100%;
}

.cu-courses-feature__card figure {
  margin: 0;
}

.cu-courses-feature__content h2 {
  font-family: var(--cu-font-heading);
  margin: 0 auto var(--cu-spacing-3);
  text-align: center;
}

.cu-courses-feature__content {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  align-items: center;
}

.cu-courses-feature__content p {
  margin: 0;
  max-width: 50ch;
}

.cu-courses-feature__cta .cu-button {
  box-shadow: 0 12px 28px rgba(12, 31, 48, 0.18);
  margin-top: var(--cu-spacing-3);
}

.cu-courses-feature__thumb {
  position: absolute;
  bottom: var(--cu-spacing-4);
  right: var(--cu-spacing-4);
  max-width: 230px;
}

.cu-courses-feature__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom center;
  border-radius: 18px;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.22);
}

.cu-courses-feature__images {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.cu-courses-feature__visual {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.24);
  transform: translateY(0);
  margin: 0;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.cu-courses-feature__image-link {
  display: block;
  height: 100%;
}

.cu-courses-feature__visual:hover,
.cu-courses-feature__visual:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 28px 58px rgba(15, 23, 42, 0.28);
}

.cu-courses-feature__images {
  justify-content: center;
}

.cu-courses-feature__visual a,
.cu-courses-feature__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1024px) {
  .cu-courses-feature__grid {
    grid-template-columns: 1fr;
  }

  .cu-courses-feature__images {
    justify-content: center;
  }

  .cu-courses-feature__visual {
    transform: translateX(0);
    max-width: 420px;
  }

  .cu-courses-feature__visual:hover,
  .cu-courses-feature__visual:focus-within {
    transform: translateY(-6px);
  }
}

@media (max-width: 768px) {
  .cu-courses-feature {
    padding: var(--cu-spacing-14) 0;
  }

  .cu-courses-feature__card {
    padding: var(--cu-spacing-5);
  }
}

@media (max-width: 520px) {
  .cu-courses-feature__card {
    padding: var(--cu-spacing-5);
  }
}

.cu-courses-cards {
  padding: var(--cu-spacing-16) 0;
}

.cu-courses-cards h2 {
  text-align: center;
  margin-bottom: var(--cu-spacing-10);
  font-family: var(--cu-font-heading);
  font-size: clamp(2.1rem, 4vw, 2.6rem);
  color: var(--cu-color-brand-primary);
}

.cu-courses-rows {
  display: grid;
  gap: var(--cu-spacing-10);
}

.cu-courses-rows--additional {
  width: min(100%, 920px);
  margin: 0 auto;
  grid-template-columns: 1fr;
  gap: var(--cu-spacing-6);
}

.cu-courses-row {
  display: grid;
  gap: var(--cu-spacing-6);
}

.cu-courses-row--master {
  display: block;
}

.cu-courses-card {
  position: relative;
}

.cu-courses-card--additional {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: clamp(1.35rem, 2.5vw, 2rem);
  min-height: auto;
  padding: clamp(2rem, 4.5vw, 3rem);
  border-radius: clamp(1.2rem, 2vw, 1.7rem);
  border-color: rgba(20, 83, 45, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 246, 0.96)),
    var(--cu-surface-card);
  box-shadow:
    0 24px 58px rgba(12, 36, 12, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.cu-courses-card--additional::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, rgba(20, 83, 45, 0.82), rgba(14, 116, 144, 0.52));
}

.cu-courses-card .cu-link {
  margin-top: auto;
}

.cu-courses-card__heading {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.cu-courses-card--additional .cu-courses-card__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--cu-spacing-5);
  padding-bottom: var(--cu-spacing-5);
  border-bottom: 1px solid rgba(20, 83, 45, 0.13);
}

.cu-courses-card__heading h3 {
  margin: 0;
}

.cu-courses-card--additional .cu-courses-card__heading h3 {
  display: grid;
  gap: 0.35rem;
  max-width: 46rem;
  font-size: clamp(1.55rem, 2.7vw, 2.2rem);
  line-height: 1.08;
  color: var(--cu-color-brand-primary-dark);
}

.cu-courses-card__title-primary,
.cu-courses-card__title-secondary {
  display: block;
}

.cu-courses-card__title-secondary {
  font-family: var(--cu-font-body);
  font-size: clamp(1rem, 1.45vw, 1.16rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--cu-color-text-secondary);
}

.cu-courses-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--cu-color-surface-emphasis);
  color: var(--cu-color-brand-primary);
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  margin: var(--cu-spacing-3) 0 0 0;
  white-space: nowrap;
}

.cu-courses-card__heading .cu-courses-card__badge {
  margin-top: 0;
  flex-shrink: 0;
}

.cu-courses-card--additional .cu-courses-card__badge {
  margin: 0;
  border: 1px solid rgba(20, 83, 45, 0.18);
  background: rgba(220, 247, 229, 0.72);
}

.cu-courses-card__body--additional {
  display: grid;
  gap: var(--cu-spacing-4);
  max-width: 100%;
}

.cu-courses-card__body--additional p {
  margin: 0;
  max-width: 48rem;
  font-size: 1.02rem;
  line-height: 1.75;
}

.cu-courses-card__intro em {
  font-style: normal;
  font-weight: 800;
  color: var(--cu-color-brand-primary-dark);
}

.cu-courses-card__lesson-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--cu-spacing-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cu-courses-card__lesson-list li {
  position: relative;
  min-height: 100%;
  padding: 0.85rem 1rem 0.85rem 2.05rem;
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--cu-color-text-primary);
  font-weight: 750;
  line-height: 1.45;
  box-shadow: 0 10px 22px rgba(12, 36, 12, 0.06);
}

.cu-courses-card__lesson-list li::before {
  content: "";
  position: absolute;
  left: 1rem;
  top: 1.35rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: var(--cu-color-technical-accent, #0e7490);
  box-shadow: 0 0 0 4px rgba(14, 116, 144, 0.10);
}

.cu-courses-card__summary {
  color: var(--cu-color-text-secondary);
}

.cu-courses-card--additional .cu-link {
  align-self: flex-start;
  margin-top: var(--cu-spacing-1);
}

.cu-courses-card__meta {
  margin-top: var(--cu-spacing-1, 0.25rem);
}

.cu-courses-card--microgreens .cu-courses-card__heading,
.cu-courses-card--microgreens .cu-courses-card__heading h3 {
  white-space: nowrap;
}

.cu-courses-card__headline {
  display: grid;
  justify-items: center;
  gap: var(--cu-spacing-3);
  text-align: center;
  align-self: center;
  width: 100%;
  max-width: none;
}

.cu-courses-card__headline h3 {
  font-family: var(--cu-font-heading);
  font-size: 1.45rem;
  line-height: 1.2;
  margin: 0;
  color: var(--cu-color-brand-primary-dark);
}

.cu-courses-card__ordinal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
  font-family: var(--cu-font-heading);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  box-shadow: 0 18px 36px rgba(22, 101, 52, 0.28);
}

.cu-courses-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
  max-width: 36rem;
  text-align: left;
  align-items: flex-start;
  flex: 1 1 auto;
}

.cu-courses-card--master .cu-courses-card__content {
  padding-top: var(--cu-spacing-3);
  gap: var(--cu-spacing-4);
}

.cu-courses-card--master {
  padding: var(--cu-spacing-5);
  gap: var(--cu-spacing-6);
}

.cu-courses-card__main {
  display: grid;
  gap: var(--cu-spacing-5);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
}

.cu-courses-card__visual {
  margin: 0;
}

.cu-courses-card__visual-link {
  display: block;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 26px 52px rgba(15, 23, 42, 0.26);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  aspect-ratio: 4 / 3;
}

.cu-courses-card__visual-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cu-courses-card__visual-link:hover,
.cu-courses-card__visual-link:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(15, 23, 42, 0.3);
}

.cu-courses-card__media-wide {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.22);
}

.cu-courses-card__media-wide img {
  display: block;
  width: 100%;
  height: auto;
}

.cu-courses-card--master .cu-link {
  align-self: flex-start;
  margin-top: auto;
  margin-left: 0;
}

.cu-courses-row--micro {
  justify-items: center;
}

.cu-courses-row--micro .cu-courses-card {
  width: 100%;
  max-width: none;
  align-items: center;
  text-align: center;
}

.cu-courses-card--microgreens {
  gap: var(--cu-spacing-4);
}

.cu-courses-row--micro .cu-courses-card p {
  text-align: center;
}

.cu-courses-row--micro .cu-courses-card__heading {
  justify-content: center;
}

.cu-courses-row--micro .cu-courses-card .cu-link {
  align-self: center;
  margin-top: var(--cu-spacing-4);
}

.cu-courses-strip {
  display: flex;
  gap: var(--cu-spacing-3);
  margin: var(--cu-spacing-2) 0 var(--cu-spacing-4);
  padding: 0.5rem 0.25rem;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  justify-content: center;
}

.cu-courses-strip__item {
  flex: 1 1 0;
  min-width: 160px;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: center;
  justify-content: flex-start;
  text-decoration: none;
  color: inherit;
  background: var(--cu-color-surface-muted);
  border-radius: 16px;
  padding: 0.9rem;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  scroll-snap-align: start;
}

.cu-courses-strip__item:hover,
.cu-courses-strip__item:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.18);
  outline: 2px solid var(--cu-color-brand-primary);
  outline-offset: 2px;
}

.cu-courses-strip__item img {
  width: 100%;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
}

.cu-courses-strip__item span {
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  color: var(--cu-color-brand-primary-dark, #065f46);
}

@media (max-width: 1024px) {
  .cu-courses-cards .cu-container,
  .cu-courses-rows,
  .cu-courses-row,
  .cu-courses-card,
  .cu-courses-card__main,
  .cu-courses-card__content,
  .cu-courses-card__headline,
  .cu-courses-card__heading {
    min-width: 0;
    max-width: 100%;
  }

  .cu-courses-row {
    width: 100%;
    justify-items: center;
  }

  .cu-courses-card--master {
    width: 100%;
    max-width: min(720px, 100%);
    margin: 0 auto;
  }

  .cu-courses-row--micro .cu-courses-card {
    width: 100%;
    max-width: min(760px, 100%);
  }

  .cu-courses-card__main {
    grid-template-columns: 1fr;
  }

  .cu-courses-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
    scroll-snap-type: none;
    width: 100%;
    justify-content: stretch;
  }

  .cu-courses-strip__item {
    min-width: 0;
    width: 100%;
    flex: initial;
  }
}

@media (max-width: 640px) {
  .cu-courses-card--master {
    padding: var(--cu-spacing-4);
    gap: var(--cu-spacing-5);
  }
}

@media (max-width: 768px) {
  .cu-courses-cards .cu-container,
  .cu-courses-rows,
  .cu-courses-row,
  .cu-courses-card,
  .cu-courses-card__main,
  .cu-courses-card__content,
  .cu-courses-card__headline,
  .cu-courses-card__heading {
    min-width: 0;
    max-width: 100%;
  }

  .cu-courses-row {
    gap: var(--cu-spacing-5);
  }

  .cu-courses-card__heading,
  .cu-courses-row--micro .cu-courses-card__heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }

  .cu-courses-card__heading h3,
  .cu-courses-card--microgreens .cu-courses-card__heading h3 {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-align: center;
  }

  .cu-courses-card__badge {
    white-space: normal;
  }

  .cu-courses-card--additional {
    padding: var(--cu-spacing-6);
  }

  .cu-courses-card--additional .cu-courses-card__heading {
    display: grid;
    justify-items: start;
    gap: var(--cu-spacing-3);
  }

  .cu-courses-card--additional .cu-courses-card__heading h3 {
    text-align: left;
  }

  .cu-courses-card__lesson-list {
    grid-template-columns: 1fr;
  }

  .cu-courses-row--micro .cu-courses-card p {
    overflow-wrap: anywhere;
  }

  .cu-courses-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--cu-spacing-3);
    margin: var(--cu-spacing-2) 0 var(--cu-spacing-4);
    padding: 0;
    width: 100%;
    overflow: visible;
    justify-content: stretch;
    scroll-snap-type: none;
  }

  .cu-courses-strip__item {
    min-width: 0;
    width: 100%;
    flex: initial;
  }

  .cu-courses-strip__item img {
    width: 100%;
    height: auto;
  }
}

@media (max-width: 480px) {
  .cu-courses-strip {
    grid-template-columns: 1fr;
  }
}

.cu-courses-comparison {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-courses-comparison__desktop {
  display: block;
}

.cu-courses-comparison__mobile {
  display: none;
}

@media (max-width: 768px) {
  .cu-courses-comparison__desktop {
    display: none !important;
  }

  .cu-courses-comparison__mobile {
    display: block !important;
    margin-top: var(--cu-spacing-4);
  }
}

.cu-courses-comparison__table {
  margin-top: var(--cu-spacing-5);
}

.cu-courses-comparison__table .cu-course-table thead th:first-child {
  text-align: left;
  width: auto;
}

.cu-courses-comparison__table .cu-course-table tbody th[scope="row"] {
  text-align: left;
  font-weight: 600;
}

.cu-courses-comparison__table .cu-course-table td {
  text-align: left;
  font-style: normal;
  color: inherit;
}

.cu-courses-proof {
  padding: var(--cu-spacing-16) 0;
}

.cu-courses-proof .cu-container {
  text-align: center;
}

.cu-courses-proof h2 {
  margin: 0 auto var(--cu-spacing-6);
  text-align: center;
}

.cu-courses-proof .cu-stat-strip__grid {
  justify-items: center;
}

.cu-courses-proof .cu-stat {
  align-items: center;
  text-align: center;
}

.cu-courses-proof .cu-stat__value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.4rem 1.4rem;
  border: 2px solid var(--cu-color-text-primary);
  border-radius: 999px;
}

.cu-courses-proof .cu-stat__label {
  text-align: center;
}

.cu-courses-faq {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-courses-faq__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cu-spacing-3);
  margin-bottom: var(--cu-spacing-4);
}

.cu-courses-faq__header h2 {
  margin: 0;
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
  text-align: center;
}

.cu-courses-faq__link {
  white-space: nowrap;
}

.cu-courses-faq__items {
  display: grid;
  gap: var(--cu-spacing-3);
  margin-bottom: var(--cu-spacing-4);
}

@media (max-width: 640px) {
  .cu-courses-faq__header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--cu-spacing-2);
  }
}

.cu-course-hero {
  padding: var(--cu-spacing-16) 0;
  background: var(--cu-color-surface-muted);
}

.cu-course-hero--has-media {
  background: linear-gradient(200deg, rgba(6, 22, 38, 0.82), rgba(6, 22, 38, 0.78)),
    var(--course-hero-background, var(--cu-color-surface-muted));
  background-size: cover;
  background-position: center;
  color: var(--cu-color-text-inverse);
}

.cu-course-hero__inner {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}

.cu-course-hero__inner > div {
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-4);
  align-items: center;
  text-align: center;
}

.cu-course-hero__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cu-color-brand-primary);
  color: var(--cu-color-text-inverse);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  font-size: 0.9rem;
  max-width: max-content;
}

.cu-course-hero__inner h1 {
  margin: 0;
}

.cu-course-hero__inner p {
  margin: 0;
  max-width: 56ch;
}

.cu-course-hero__highlight {
  margin: 0;
  font-weight: 600;
  color: var(--cu-color-brand-primary);
}

.cu-course-hero--has-media .cu-course-hero__highlight {
  color: inherit;
}

.cu-course-hero--has-media h1,
.cu-course-hero--has-media p {
  color: inherit;
}

.cu-course-hero--has-media .cu-button--ghost {
  border-color: rgba(255, 255, 255, 0.8);
  color: var(--cu-color-text-inverse);
}

.cu-course-hero--has-media .cu-button--ghost:hover,
.cu-course-hero--has-media .cu-button--ghost:focus {
  background: var(--cu-color-text-inverse);
  color: var(--cu-color-brand-primary);
}

.cu-course-hero__inner .cu-hero__ctas {
  justify-content: center;
}

@media (max-width: 640px) {
  .cu-course-hero {
    padding: var(--cu-spacing-14) 0;
  }

  .cu-course-hero__inner > div {
    gap: var(--cu-spacing-3);
  }
}

.cu-course-languages {
  padding: var(--cu-spacing-16) 0;
  background: linear-gradient(180deg, rgba(8, 27, 43, 0.04), rgba(8, 27, 43, 0.02));
}

.cu-course-languages__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--cu-spacing-4);
  list-style: none;
  padding: 0;
  margin: var(--cu-spacing-4) 0 0;
}

.cu-course-languages__item {
  display: block;
}

.cu-course-languages__link {
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  text-align: center;
  padding: var(--cu-spacing-4);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  text-decoration: none;
  color: var(--cu-color-text-primary);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cu-course-languages__link:hover,
.cu-course-languages__link:focus {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.22);
}

.cu-course-languages__link:focus-visible {
  outline: 2px solid rgba(12, 31, 48, 0.6);
  outline-offset: 4px;
}

.cu-course-languages__link figure {
  margin: 0;
  display: grid;
  gap: 0.75rem;
  justify-items: center;
  text-align: center;
}

.cu-course-languages__link img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(12, 36, 12, 0.12);
  background: var(--cu-color-surface-muted);
}

.cu-course-languages__link figcaption {
  font-weight: 600;
  color: var(--cu-color-text-primary);
}

.cu-course-languages__item figcaption {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--cu-color-text-secondary);
}

.cu-course-section {
  padding: var(--cu-spacing-16) 0;
}

.cu-course-section ul:not(.cu-course-list) {
  margin: 0;
  padding-left: var(--cu-spacing-6);
}

.cu-course-section--centered .cu-course-section__wrap {
  max-width: 760px;
  margin: 0 auto;
  display: grid;
  gap: var(--cu-spacing-5);
  text-align: center;
}

.cu-course-section__wrap h2 {
  margin: 0 auto;
  text-align: center;
}

.cu-course-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-course-list__item {
  display: flex;
  align-items: flex-start;
  gap: var(--cu-spacing-3);
  justify-content: flex-start;
  text-align: left;
  max-width: 640px;
  margin: 0 auto;
  width: 100%;
}

.cu-course-list__icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.1rem;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 12px;
  background: rgba(22, 101, 52, 0.1);
  box-shadow: inset 0 0 0 1px rgba(22, 101, 52, 0.14);
  color: var(--cu-color-brand-primary);
}

.cu-course-list__icons svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
  color: inherit;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cu-course-list__text {
  display: block;
  flex: 1 1 auto;
  font-weight: 400;
  line-height: 1.6;
}

@media (max-width: 640px) {
  .cu-course-list__item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--cu-spacing-2);
  }

  .cu-course-list__text {
    text-align: center;
  }
}

@supports (background: color-mix(in srgb, red 50%, transparent)) {
  .cu-course-list__icons[style] {
    background: color-mix(in srgb, currentColor 18%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 28%, transparent);
  }
}

.cu-course-table-wrapper {
  margin-top: var(--cu-spacing-5);
  border-radius: 22px;
  background: var(--cu-color-surface-base);
  box-shadow: 0 24px 48px rgba(12, 44, 26, 0.12);
  overflow: hidden;
  overflow-x: auto;
  scrollbar-color: rgba(22, 101, 52, 0.45) transparent;
}

.cu-course-table {
  width: 100%;
  min-width: 640px;
  border-collapse: separate;
  border-spacing: 0;
}

.cu-course-table thead th {
  background: linear-gradient(135deg, #166534, #0f766e);
  color: var(--cu-color-text-inverse);
  padding: 0.85rem 1.35rem;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  font-weight: 600;
  text-align: left;
}

.cu-course-table tbody th[scope="row"],
.cu-course-table tbody td {
  padding: 0.85rem 1.35rem;
  font-size: 0.95rem;
  line-height: 1.6;
}

.cu-course-table tbody td {
  border-bottom: 1px solid rgba(22, 101, 52, 0.12);
  vertical-align: top;
  background: rgba(255, 255, 255, 0.96);
}

.cu-course-table tbody td:last-child {
  color: var(--cu-color-text-secondary);
  font-style: italic;
}

.cu-course-table tbody tr:nth-child(even) td {
  background: rgba(22, 101, 52, 0.05);
}

.cu-course-table tbody tr:last-child td {
  border-bottom: none;
}

.cu-course-table th:first-child,
.cu-course-table td:first-child {
  width: auto;
  text-align: left;
  font-weight: 600;
}

.cu-course-table-wrapper::-webkit-scrollbar {
  height: 8px;
}

.cu-course-table-wrapper::-webkit-scrollbar-thumb {
  background: rgba(22, 101, 52, 0.35);
  border-radius: 999px;
}

@media (max-width: 768px) {
  .cu-course-table-wrapper {
    overflow-x: hidden;
  }

  .cu-course-table {
    min-width: 0;
    table-layout: fixed;
  }

  .cu-course-table th,
  .cu-course-table td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

.cu-course-logistics {
  background: var(--cu-color-surface-muted);
}

.cu-course-logistics__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--cu-spacing-4);
  margin: 0;
}

.cu-course-logistics__item {
  background: var(--cu-color-surface-base);
  border-radius: 12px;
  padding: var(--cu-spacing-4);
  box-shadow: 0 12px 24px rgba(12, 48, 16, 0.06);
  display: grid;
  grid-template-rows: auto 1fr;
  justify-items: center;
  gap: var(--cu-spacing-3);
  text-align: center;
}

.cu-course-logistics__icon {
  width: 2rem;
  height: 2rem;
  color: var(--cu-color-brand-primary);
}

.cu-course-logistics__copy {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.cu-course-logistics__copy dt {
  font-weight: 700;
  font-size: 0.95rem;
  margin: 0 auto;
}

.cu-course-logistics__copy dd {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--cu-color-text-secondary);
  text-align: left;
}

.cu-course-guarantee {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-6);
  border-radius: 16px;
}

.cu-course-microcopy {
  margin: 0;
  padding-left: var(--cu-spacing-6);
}

.cu-course-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--cu-spacing-4);
  margin: 0 0 var(--cu-spacing-4) 0;
}

.cu-course-related__group {
  background: var(--cu-color-surface-muted);
  border-radius: 12px;
  padding: var(--cu-spacing-4);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-course-related__group h3 {
  margin: 0;
  font-size: 1.1rem;
  font-family: var(--cu-font-heading);
}

.cu-course-related__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-course-related__cta {
  background: var(--cu-color-surface-muted);
  padding: var(--cu-spacing-4);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-course-related__cta h3 {
  margin: 0 0 var(--cu-spacing-2) 0;
  font-family: var(--cu-font-heading);
}

.cu-course-related__cta-actions {
  display: flex;
  gap: var(--cu-spacing-3);
  flex-wrap: wrap;
}

@media (min-width: 768px) {
  .cu-course-related__cta {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

.cu-legal {
  padding: var(--cu-spacing-16) 0 var(--cu-spacing-20);
}

.cu-legal .cu-container {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.cu-legal__content {
  margin-top: 0;
  line-height: 1.8;
  text-align: left;
}

.cu-legal__content h2 {
  font-family: var(--cu-font-heading);
  font-size: 1.8rem;
  margin: var(--cu-spacing-10) 0 var(--cu-spacing-4);
  text-align: center;
}

.cu-legal__content h2:first-child {
  margin-top: 0;
}

@media (min-width: 768px) {
  .cu-cta-band__inner {
    flex-direction: row;
    align-items: center;
  }

  .cu-cta-band__actions {
    margin-left: auto;
    justify-content: flex-end;
  }

  .cu-course-hero__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cu-spacing-4);
  }
}

.cu-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--cu-color-surface-base);
  border-top: 4px solid var(--cu-color-border-strong);
  box-shadow: 0 -12px 24px rgba(0, 0, 0, 0.1);
  padding: var(--cu-spacing-4);
  z-index: 200;
}

.cu-cookie-banner[hidden] {
  display: none !important;
}

.cu-cookie-banner[hidden],
.cu-cookie-banner[aria-hidden="true"] {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(110%) !important;
}

.cu-cookie-banner__inner {
  max-width: var(--cu-max-width);
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--cu-spacing-6);
}

.cu-cookie-banner__copy {
  flex: 1;
}

.cu-cookie-banner__copy p {
  margin-bottom: var(--cu-spacing-3);
}

.cu-cookie-banner__preferences {
  background: var(--cu-color-surface-muted);
  border-radius: 12px;
  padding: var(--cu-spacing-3);
  margin-top: var(--cu-spacing-3);
  font-size: 0.95rem;
}

.cu-cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
  justify-content: flex-end;
  align-items: center;
}

.cu-cookie-manage {
  background: none;
  border: none;
  color: rgba(233, 242, 236, 0.85);
  cursor: pointer;
  font-size: 0.9rem;
  padding: 0;
}

.cu-cookie-manage:hover,
.cu-cookie-manage:focus {
  color: var(--cu-color-brand-primary);
}

@media (max-width: 768px) {
  .cu-cookie-banner__inner {
    flex-direction: column;
    gap: var(--cu-spacing-4);
  }
  .cu-cookie-banner__actions {
    justify-content: flex-start;
  }
}

/* ================================================================
   VIZ-02 — VISUAL SYSTEM FOUNDATION
   Semantic surfaces · border aliases · motion aliases · status
   extensions · type scale · texture · section header primitive ·
   eyebrow treatment · body link · alignment · page-family
   atmospheres · signature page-family moves.
   All new tokens map to existing values first — no colour rewrite.
   ================================================================ */

/* --- Additional :root tokens ----------------------------------- */
:root {
  /* Semantic section/surface backgrounds (opaque; not card gradients) */
  --cu-surface-field: var(--cu-color-surface-emphasis);
  --cu-surface-technical: var(--cu-color-surface-muted);
  --cu-surface-research: #FBFBF8;
  --cu-surface-training: #F4F7F4;
  --cu-surface-trust: var(--cu-color-surface-base);

  /* Named border aliases (consolidate repeated hardcoded values) */
  --cu-border-subtle: var(--cu-color-border-subtle);
  --cu-border-standard: rgba(20, 83, 45, 0.16);
  --cu-border-active: var(--green-600);
  --cu-border-strong: var(--green-800);

  /* Motion standard alias + emphasized easing */
  --cu-motion-standard: var(--cu-motion-base);
  --cu-ease-standard: var(--cu-motion-ease);
  --cu-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* Research / lifecycle status tokens */
  --cu-color-status-concept: #4A7C59;
  --cu-color-status-archived: #71717A;
  --cu-color-status-deferred: #78716C;
  --cu-surface-status-concept: rgba(74, 124, 89, 0.09);
  --cu-surface-status-archived: rgba(113, 113, 122, 0.08);
  --cu-surface-status-deferred: rgba(120, 113, 108, 0.08);

  /* Type scale (Inter headings / Source Sans 3 body; no new dependency) */
  --cu-text-xs: 0.75rem;
  --cu-text-sm: 0.875rem;
  --cu-text-base: 1rem;
  --cu-text-md: 1.125rem;
  --cu-text-lg: 1.375rem;
  --cu-text-xl: 1.75rem;
  --cu-text-2xl: 2.25rem;
  --cu-text-3xl: 3rem;
  --cu-line-width: 68ch;

  /* Texture: faint fieldlines for technical section backgrounds only (≤ 0.04) */
  --cu-texture-fieldlines: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 31px,
    rgba(20, 83, 45, 0.035) 31px,
    rgba(20, 83, 45, 0.035) 32px
  );
}

/* --- Status chip extensions: concept / archived / deferred (O-0033) */
.cu-status-chip--concept {
  background: var(--cu-surface-status-concept);
  border-color: rgba(74, 124, 89, 0.22);
  color: var(--cu-color-status-concept);
}

.cu-status-chip--archived,
.cu-status-chip--under-development {
  background: var(--cu-surface-status-archived);
  border-color: rgba(113, 113, 122, 0.22);
  color: var(--cu-color-status-archived);
}

.cu-status-chip--deferred,
.cu-status-chip--unavailable {
  background: var(--cu-surface-status-deferred);
  border-color: rgba(120, 113, 108, 0.2);
  color: var(--cu-color-status-deferred);
}

/* --- Tabular / lining numerals (O-0037) ------------------------ */
/* Stats, maturity metadata, dates, status, technical metrics,    */
/* service counts — shape aligns, no shimmy on update.            */
.cu-stat__value,
.cu-status-chip,
.cu-evidence-chip,
.cu-technology-spec__number,
.cu-portfolio-stats .cu-stat__value,
.cu-technology-status .cu-stat__value,
[data-tabular-nums] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* --- Section header primitive (O-0039) ------------------------- */
/* Optional eyebrow + heading + intro; one spacing rhythm site-wide */
.cu-section__header {
  display: grid;
  gap: var(--cu-spacing-3);
  margin-bottom: var(--cu-spacing-10);
}

.cu-section__header--centered {
  text-align: center;
  justify-items: center;
}

.cu-section__header h2 {
  margin: 0;
}

.cu-section__header > p {
  max-width: var(--cu-line-width);
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.7;
}

/* --- Eyebrow / label treatment (O-0040) ------------------------ */
/* Formalises the existing .cu-card__title-line pill as a shared  */
/* primitive. Use .cu-eyebrow--pill for the green-tint pill form. */
.cu-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: var(--cu-text-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  line-height: 1.2;
  color: var(--cu-color-brand-primary);
  width: fit-content;
}

.cu-eyebrow--pill {
  background: rgba(20, 83, 45, 0.1);
  padding: 0.22rem 0.75rem;
  border-radius: var(--cu-radius-pill);
}

.cu-eyebrow--technical {
  color: var(--cu-color-technical-accent);
  letter-spacing: 0.05em;
}

/* --- Body link treatment (O-0041) ------------------------------ */
/* Underline by default; hover thickens; no colour-only affordance */
.cu-prose a:not(.cu-button):not([class]),
.cu-body-copy a:not(.cu-button):not([class]) {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: text-decoration-thickness var(--cu-motion-fast) var(--cu-ease-standard);
}

.cu-prose a:not(.cu-button):not([class]):hover,
.cu-prose a:not(.cu-button):not([class]):focus,
.cu-body-copy a:not(.cu-button):not([class]):hover,
.cu-body-copy a:not(.cu-button):not([class]):focus {
  text-decoration-thickness: 2px;
}

/* --- Section dividers (O-0044): whitespace or hairline only ---- */
.cu-divider {
  border: none;
  border-top: 1px solid var(--cu-border-subtle);
  margin: 0;
}

.cu-divider--strong {
  border-top-color: var(--cu-border-standard);
}

/* --- Alignment rules (O-0038) ---------------------------------- */
/* Centered: intros, bridges, stat strips, compact outcome cards  */
.cu-section--intro,
.cu-section--bridge,
.cu-section--centered {
  text-align: center;
}

.cu-section--intro > .cu-container > p,
.cu-section--bridge > .cu-container > p,
.cu-section--centered > .cu-container > p {
  max-width: var(--cu-line-width);
  margin-left: auto;
  margin-right: auto;
}

/* Left-aligned: evidence, case details, long reading, lists     */
.cu-section--evidence,
.cu-section--detail,
.cu-section--reading {
  text-align: left;
}

/* --- Page-family atmospheres (O-0045) -------------------------- */

/* Warm / documentary — Home bridge sections, Portfolio evidence  */
.cu-portfolio-technology-bridge,
.cu-portfolio-highlight,
.cu-home-technology {
  background: var(--cu-surface-field);
}

/* Precise / instrument — Technology technical panels             */
.cu-technology-page .cu-technology-modules,
.cu-technology-page .cu-technology-brief {
  background: var(--cu-surface-technical);
  border-block: 1px solid rgba(14, 116, 144, 0.11);
}

/* Editorial / notebook — Research warm paper surface             */
.cu-research-page {
  background: var(--cu-surface-research);
}

/* Editorial / notebook — Courses warm training surface           */
.cu-courses-page {
  background: var(--cu-surface-training);
}

/* --- Signature page-family moves (O-0046) --------------------- */

/* Technology: teal hairline top-border on input/output list cards */
.cu-technology-page .cu-technology-list-card {
  border-top: 2px solid var(--cu-color-technical-accent);
}

/* Technology: tabular-numeral treatment on status and spec fields */
.cu-technology-page .cu-technology-flow__kicker,
.cu-technology-page .cu-technology-spec__number {
  color: var(--cu-color-technical-accent);
}

/* Research: margin-note style for boundary/method notes          */
.cu-research-note {
  padding-left: var(--cu-spacing-5);
  border-left: 2px solid rgba(14, 116, 144, 0.22);
  color: var(--cu-color-text-secondary);
  font-size: var(--cu-text-sm);
  font-style: italic;
  line-height: 1.75;
}

/* Portfolio: museum placard evidence caption treatment           */
.cu-portfolio-card__caption {
  font-size: var(--cu-text-sm);
  color: var(--cu-color-text-secondary);
  line-height: 1.55;
  font-style: italic;
}

/* Courses: syllabus-style list numbering primitive               */
.cu-syllabus-list {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: syllabus;
}

.cu-syllabus-list > li {
  counter-increment: syllabus;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-4);
  padding: var(--cu-spacing-4) 0;
  border-top: 1px solid var(--cu-border-subtle);
}

.cu-syllabus-list > li:first-child {
  border-top: none;
  padding-top: 0;
}

.cu-syllabus-list > li::before {
  content: counter(syllabus, decimal-leading-zero);
  font-family: var(--cu-font-heading);
  font-size: var(--cu-text-sm);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--cu-color-text-tertiary);
  padding-top: 0.15em;
}

/* Contact: routing card surface decisive emphasis                */
.cu-contact-channel {
  background: var(--cu-surface-card-routing);
  border-color: var(--cu-border-standard);
}

/* --- Fieldline texture on technical section backgrounds (O-0035) */
/* Never behind body text; opacity ≤ 0.04; CSS/SVG only.         */
.cu-texture--fieldlines {
  background-image: var(--cu-texture-fieldlines);
}

.cu-technology-page .cu-technology-architecture {
  background-color: var(--cu-surface-technical);
  background-image: var(--cu-texture-fieldlines);
  border-block: 1px solid rgba(14, 116, 144, 0.11);
}

/* --- Warm paper surface (Research / Courses) (O-0035) ---------- */
.cu-surface--paper {
  background-color: var(--cu-surface-research);
}

/* --- Restrained teal technical accent (O-0047) ----------------- */
/* Only in technical / research surfaces; never blue-purple.     */
.cu-technology-page .cu-technology-flow__kicker {
  color: var(--cu-color-technical-accent);
}

/* --- Guard against one-note green / card sameness (O-0048) ----- */
/* Handled by: card role variants (--evidence, --technical, etc.) */
/* already in place; teal accent differentiates technical panels; */
/* research/courses use warm surfaces; trust/FAQ use base white.  */
/* Static informational cards must not lift on hover.             */
/* The @media (hover: hover) .cu-card rule already exists above;  */
/* override it here for explicitly non-linked static cards.       */
.cu-card[data-static] {
  pointer-events: auto;
}

.cu-card[data-static]:hover,
.cu-card[data-static]:focus-within {
  transform: none;
  box-shadow: var(--cu-elevation-card);
  border-color: var(--cu-border-card);
}

/* ================================================================
   VIZ-03 — SHARED COMPONENTS · MOTION · ACCESSIBILITY BASELINE
   O-0049..O-0081
   Cards · Chips · CTA grammar · Footer · Header active state ·
   Hamburger fix · Section reveal · Accordion · Filter transitions ·
   Diagram highlight · Reject-pattern verification
   ================================================================ */

/* ---- Card role completions (O-0049–O-0057) ------------------- */

/* Trust card: static high-contrast surface; no lift (O-0056)    */
.cu-card--trust {
  background: var(--cu-surface-trust);
  border-color: var(--cu-border-standard);
  box-shadow: none;
}

/* Research card: warm paper surface, flat resting depth (O-0053) */
.cu-card--research {
  background: var(--cu-surface-research);
  border-color: var(--cu-border-subtle);
  box-shadow: none;
}

/* Routing card hover: decisive lift + active border (O-0055)    */
@media (hover: hover) {
  .cu-card--routing:hover,
  .cu-card--routing:focus-within {
    border-color: var(--cu-border-active);
    box-shadow: var(--cu-elevation-card-raised);
    transform: translateY(-3px);
  }
}

/* Static / display-only card contexts: suppress hover lift      */
/* Home tech-in-development cards are non-linked status displays */
@media (hover: hover) {
  .cu-home-technology .cu-card:hover,
  .cu-home-technology .cu-card:focus-within,
  .cu-portfolio-technology-bridge .cu-card:hover,
  .cu-portfolio-technology-bridge .cu-card:focus-within {
    transform: none;
    box-shadow: var(--cu-elevation-card);
    border-color: var(--cu-border-card);
  }
}

/* Trust/static cards never lift (O-0056, O-0057) */
@media (hover: hover) {
  .cu-card--trust:hover,
  .cu-card--trust:focus-within {
    transform: none;
    box-shadow: none;
    border-color: var(--cu-border-standard);
  }
  .cu-card--research:hover,
  .cu-card--research:focus-within {
    transform: none;
    box-shadow: none;
    border-color: var(--cu-border-subtle);
  }
}

/* ---- Chip role consolidation (O-0058–O-0061) ----------------- */

/* Status chips: non-interactive label; dot carries shape meaning */
/* Color + shape + dot together — never color-only (O-0059)      */
.cu-status-chip {
  cursor: default;
  user-select: none;
}

.cu-status-chip::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
  opacity: 0.65;
}

/* Filter chips: clearly interactive, distinct visual from status */
.cu-chip {
  cursor: pointer;
}

.cu-chip:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
}

/* Evidence / factual chips: non-interactive metadata tags (O-0061) */
.cu-evidence-chip {
  cursor: default;
  user-select: none;
}

/* ---- Button / CTA grammar (O-0062–O-0066) -------------------- */

/* Secondary ghost hover: border → active green, light tint      */
/* Clearly distinct from primary (which fills solid dark green)  */
/* Hero-variant overrides (cu-hero .cu-button--ghost) are below  */
/* in the file and win via specificity; this covers non-hero use */
.cu-button--ghost:hover,
.cu-button--ghost:focus {
  background: rgba(20, 83, 45, 0.07);
  border-color: var(--green-600);
  color: var(--green-700);
  box-shadow: none;
  transform: translateY(-1px);
}

.cu-button--ghost:active {
  background: rgba(20, 83, 45, 0.12);
  border-color: var(--green-700);
  transform: translateY(0);
}

/* Disabled CTA: muted, no pointer, no hover (O-0066) */
.cu-button[disabled],
.cu-button[aria-disabled="true"],
.cu-button.is-disabled {
  opacity: 0.42;
  pointer-events: none;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* Loading CTA: only where genuinely pending (O-0066)            */
/* Contact submit; Calendly CTA if async. Existing label stays.  */
.cu-button.is-loading {
  pointer-events: none;
  cursor: wait;
}

.cu-button.is-loading::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  margin-left: 0.5em;
  vertical-align: -0.1em;
  animation: cu-spin 0.75s linear infinite;
}

.cu-button--ghost.is-loading::after {
  border-color: rgba(20, 83, 45, 0.22);
  border-top-color: var(--cu-color-brand-primary);
}

@keyframes cu-spin {
  to { transform: rotate(360deg); }
}

/* Static end-state under reduced motion (spinner stops) */
@media (prefers-reduced-motion: reduce) {
  .cu-button.is-loading::after {
    animation: none;
    opacity: 0.5;
  }
}

/* ---- Footer structure refinement (O-0069) -------------------- */
/* Group-heading layer ("offer/evidence/knowledge/company/legal") */
/* BLOCKED: requires new public text. Styling only.              */
/* Hover: soften rather than fully highlight on dark background  */
.cu-footer__grid a:hover,
.cu-footer__grid a:focus {
  color: rgba(233, 242, 236, 0.82);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---- Header active-state marker (O-0070) --------------------- */
/* Markup: renderHeader adds class="is-current" aria-current="page" */
/* on the matching nav link in both desktop and mobile navs.     */

/* Desktop nav: green underline indicator */
.cu-header__nav a.is-current {
  color: var(--cu-color-brand-primary);
  position: relative;
}

.cu-header__nav a.is-current::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: -4px;
  height: 2px;
  background: var(--cu-color-brand-primary);
  border-radius: 1px;
}

/* Mobile nav: brand tint background */
.cu-header__menu-nav a.is-current {
  color: var(--cu-color-brand-primary);
  background: rgba(20, 83, 45, 0.1);
}

/* ---- Fix hamburger transition: remove layout-triggering top   */
/* (O-0074) — only transform + box-shadow animated; top is static */
.cu-header__menu-icon::before,
.cu-header__menu-icon::after {
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

/* Open state uses translateY instead of changing `top` value    */
.cu-header__menu[open] .cu-header__menu-icon::before {
  top: 2px;
  box-shadow: none;
  transform: translateY(5px) rotate(45deg);
}

.cu-header__menu[open] .cu-header__menu-icon::after {
  top: 12px;
  transform: translateY(-5px) rotate(-45deg);
}

/* ---- Section reveal (O-0075) --------------------------------- */
/* Progressive enhancement: CSS scroll-driven animation.        */
/* Default state is fully visible — no JS, no-motion, old       */
/* browser all show content immediately.                        */
/* Applied only to Technology and Research argument surfaces.   */
/* NOT on Home, Services, Portfolio, Courses, FAQ, Contact.     */
@keyframes cu-reveal-up {
  from { opacity: 0.72; transform: translateY(12px); }
  to   { opacity: 1;    transform: none; }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .cu-technology-page .cu-technology-modules,
    .cu-technology-page .cu-technology-architecture,
    .cu-technology-page .cu-technology-brief,
    .cu-research-page .cu-research-boundaries,
    .cu-research-page .cu-research-decision-support {
      animation: cu-reveal-up var(--cu-motion-slow) var(--cu-ease-emphasized) both;
      animation-timeline: view();
      animation-range: entry 0% entry 28%;
    }
  }
}

/* ---- Accordion chevron motion (O-0077) ----------------------- */
/* FAQ / native details / Technology card details.              */
/* Chevron rotates on open; instant under reduced motion.       */

/* Suppress native disclosure triangle on accordion summaries   */
.cu-accordion summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cu-spacing-3);
}

.cu-accordion summary::-webkit-details-marker {
  display: none;
}

.cu-accordion summary::marker {
  content: "";
}

/* Chevron pseudo-element */
.cu-accordion summary::after {
  content: "▾";
  font-size: 0.85em;
  color: var(--cu-color-text-tertiary);
  flex-shrink: 0;
  transition: transform var(--cu-motion-base) var(--cu-ease-standard);
  display: inline-block;
}

.cu-accordion details[open] summary::after {
  transform: rotate(-180deg);
}

/* Technology card details: inline chevron next to label        */
.cu-technology-card__details summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
}

.cu-technology-card__details summary::-webkit-details-marker {
  display: none;
}

.cu-technology-card__details summary::marker {
  content: "";
}

.cu-technology-card__details summary::after {
  content: "▾";
  font-size: 0.8em;
  opacity: 0.65;
  flex-shrink: 0;
  transition: transform var(--cu-motion-base) var(--cu-ease-standard);
  display: inline-block;
}

.cu-technology-card__details[open] summary::after {
  transform: rotate(-180deg);
}

/* Reduced motion: accordion transitions are instant */
@media (prefers-reduced-motion: reduce) {
  .cu-accordion summary::after,
  .cu-technology-card__details summary::after {
    transition: none;
  }
}

/* ---- Filter chip state transitions (O-0078) ------------------ */
/* Calibrate to motion tokens; active/inactive calmly (O-0078)  */
.cu-chip,
.svc-chip {
  transition:
    background var(--cu-motion-fast) var(--cu-ease-standard),
    border-color var(--cu-motion-fast) var(--cu-ease-standard),
    color var(--cu-motion-fast) var(--cu-ease-standard),
    box-shadow var(--cu-motion-base) var(--cu-ease-standard),
    transform var(--cu-motion-fast) var(--cu-ease-standard);
}

/* Active chip: clear focus ring for keyboard users */
.cu-chip.is-active:focus-visible,
.svc-chip.active:focus-visible,
.svc-chip.is-active:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
}

/* ---- Diagram node highlight (O-0079) ------------------------- */
/* Technology pipeline: focus/hover dims siblings; never essential */
.cu-technology-flow li {
  transition: opacity var(--cu-motion-fast) var(--cu-ease-standard);
}

.cu-technology-flow:has(li:hover) li:not(:hover),
.cu-technology-flow:has(li:focus-within) li:not(:focus-within) {
  opacity: 0.6;
}

/* Expert-review node gets a subtle focus glow (existing --review class) */
.cu-technology-flow__item--review .cu-technology-flow__number {
  transition: box-shadow var(--cu-motion-base) var(--cu-ease-standard);
}

.cu-technology-flow li:hover .cu-technology-flow__number,
.cu-technology-flow li:focus-within .cu-technology-flow__number {
  box-shadow: 0 0 0 3px rgba(14, 116, 144, 0.18);
}

/* Reduced motion: no opacity/glow transitions on diagram nodes */
@media (prefers-reduced-motion: reduce) {
  .cu-technology-flow li,
  .cu-technology-flow__item--review .cu-technology-flow__number {
    transition: none;
  }
  .cu-technology-flow:has(li:hover) li:not(:hover),
  .cu-technology-flow:has(li:focus-within) li:not(:focus-within) {
    opacity: 1;
  }
}

/* ---- O-0071 Conditional dropdown: condition not met ---------- */
/* Nav stays flat (9 links); Services/Technology do not require  */
/* dropdown at current scale. Deferred per ledger condition.     */

/* ---- O-0080 View Transitions: DEFERRED ----------------------- */
/* Static MPA on Spaceship/GitHub Pages hosting; cross-document  */
/* View Transitions require same-origin navigation + browser     */
/* support verification. Progressive enhancement path deferred.  */

/* ---- O-0081 Reject harmful patterns: VERIFIED ---------------- */
/* No scroll-jacking, parallax, looping ambient motion, typing   */
/* effects, skeleton shimmers, magnetic cursors, CSS animated    */
/* gradient borders, confetti, or "AI sparkle" in VIZ-03.       */
/* cu-spin is gated to .is-loading only; accordion/reveal are    */
/* transform/opacity only; no layout-heavy animation introduced. */

/* ---- VIZ-03 mobile overflow repair -------------------------- */
/* Defensive responsive constraints; no content or data changes. */
.cu-header__inner,
.cu-header__actions,
.cu-header__menu,
.cu-hero__ctas,
.cu-cookie-banner__inner,
.cu-cookie-banner__copy,
.cu-cookie-banner__actions {
  min-width: 0;
}

.cu-button {
  max-width: 100%;
  min-width: 0;
  text-align: center;
  white-space: normal;
}

.cu-hero__ctas .cu-button {
  flex: 0 1 auto;
}

.cu-cookie-banner {
  box-sizing: border-box;
  max-width: 100vw;
  overflow-x: clip;
}

.cu-cookie-banner__inner,
.cu-cookie-banner__actions {
  box-sizing: border-box;
}

.cu-cookie-banner__inner {
  width: min(100%, var(--cu-max-width));
}

.cu-cookie-banner__copy {
  flex: 1 1 34rem;
  max-width: min(100%, 48rem);
}

.cu-cookie-banner__actions {
  flex: 0 1 auto;
  max-width: 100%;
}

.cu-cookie-banner__actions .cu-link {
  appearance: none;
  border: 1px solid var(--cu-border-strong);
  border-radius: var(--cu-radius-pill);
  background: transparent;
  color: var(--cu-color-brand-primary);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  justify-content: center;
  padding: 0.68rem 1rem;
  text-align: center;
}

@media (max-width: 480px) {
  .cu-container {
    padding-left: var(--cu-spacing-3);
    padding-right: var(--cu-spacing-3);
  }

  .cu-header__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--cu-spacing-2);
    padding-left: var(--cu-spacing-3);
    padding-right: var(--cu-spacing-3);
  }

  .cu-header__brand {
    min-width: 0;
  }

  .cu-header__brand a {
    width: clamp(76px, 24vw, 92px);
  }

  .cu-header__menu {
    justify-self: end;
    max-width: 100%;
  }

  .cu-header__menu-toggle {
    max-width: 100%;
    padding: 0.5rem 0.7rem;
    white-space: nowrap;
  }

  .cu-header__menu-panel {
    position: fixed;
    top: calc(var(--cu-header-height-mobile) + 3.4rem);
    left: var(--cu-spacing-3);
    right: var(--cu-spacing-3);
    width: auto;
    max-height: calc(100vh - var(--cu-header-height-mobile) - 4.4rem);
    overflow-y: auto;
  }

  .cu-header__actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    justify-content: stretch;
    width: 100%;
  }

  .cu-header__actions .cu-button {
    width: 100%;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
    line-height: 1.2;
    white-space: normal;
  }

  .cu-lang-switch {
    flex: 0 1 auto;
    min-width: 0;
  }

  .cu-technology-hero {
    overflow-x: clip;
  }

  .cu-technology-hero > .cu-container,
  .cu-hero__copy,
  .cu-technology-hero .cu-hero__copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .cu-hero__copy h1,
  .cu-technology-hero h1 {
    font-size: clamp(1.85rem, 7.6vw, 2.25rem);
    overflow-wrap: break-word;
    hyphens: manual;
  }

  .cu-hero__copy p,
  .cu-technology-hero p {
    overflow-wrap: break-word;
  }

  .cu-technology-hero .cu-hero__ctas {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .cu-hero__ctas .cu-button,
  .cu-technology-hero .cu-button,
  .cu-cookie-banner__actions .cu-button,
  .cu-cookie-banner__actions .cu-link {
    width: 100%;
  }

  .cu-cookie-banner {
    padding: var(--cu-spacing-3);
  }

  .cu-cookie-banner__inner,
  .cu-cookie-banner__actions {
    width: 100%;
  }

  .cu-cookie-banner__copy {
    flex: 0 1 auto;
    max-width: 100%;
  }

  .cu-cookie-banner__actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    justify-content: stretch;
  }
}

/* ================================================================
   VIZ-05 - Technology flagship system
   O-0109..O-0132
   ================================================================ */

.cu-technology-page .cu-card--technical {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 250, 0.98)),
    var(--cu-surface-card-technical);
  border-color: rgba(14, 116, 144, 0.18);
  box-shadow: 0 16px 38px rgba(12, 36, 12, 0.07);
}

.cu-technology-page .cu-card--technical h3 {
  letter-spacing: 0;
}

.cu-technology-split-section {
  background:
    linear-gradient(180deg, #FFFFFF 0%, rgba(240, 247, 244, 0.78) 100%);
}

.cu-technology-split {
  gap: clamp(1.25rem, 4vw, 3.25rem);
}

.cu-technology-split::before {
  top: calc(var(--cu-spacing-5) * -1);
  bottom: calc(var(--cu-spacing-5) * -1);
  width: 2px;
  background:
    linear-gradient(180deg, transparent 0%, rgba(14, 116, 144, 0.2) 18%, rgba(20, 83, 45, 0.24) 50%, rgba(14, 116, 144, 0.2) 82%, transparent 100%);
}

.cu-technology-list-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--cu-radius-xl);
  box-shadow: 0 18px 45px rgba(12, 36, 12, 0.08);
}

.cu-technology-list-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.75);
  pointer-events: none;
}

.cu-technology-list-card--input {
  border-color: rgba(14, 116, 144, 0.22);
}

.cu-technology-list-card--output {
  border-color: rgba(20, 83, 45, 0.24);
}

.cu-technology-list-card li {
  margin: 0;
  padding: 0.85rem;
  border-top: 1px solid rgba(14, 116, 144, 0.09);
  border-radius: var(--cu-radius-md);
  background: rgba(255, 255, 255, 0.62);
}

.cu-technology-list-card li:first-child {
  padding-top: 0.85rem;
}

.cu-technology-list-card li:last-child {
  padding-bottom: 0.85rem;
}

.cu-technology-spec__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(14, 116, 144, 0.2);
  border-radius: 999px;
  background: rgba(14, 116, 144, 0.08);
  line-height: 1;
}

.cu-technology-flow-section {
  position: relative;
  overflow: clip;
  background:
    linear-gradient(180deg, rgba(241, 247, 244, 0.88), rgba(246, 250, 250, 0.96)),
    var(--cu-color-surface-muted);
}

.cu-technology-flow-section .cu-container {
  position: relative;
}

.cu-technology-flow {
  position: relative;
  gap: clamp(0.75rem, 1.4vw, var(--cu-spacing-4));
  padding: var(--cu-spacing-5) 0 var(--cu-spacing-4);
  isolation: isolate;
}

.cu-technology-flow::before {
  content: "";
  position: absolute;
  left: 4%;
  right: 4%;
  top: calc(50% - 0.2rem);
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(14, 116, 144, 0.2), rgba(20, 83, 45, 0.28), rgba(14, 116, 144, 0.2), transparent);
  pointer-events: none;
  z-index: 0;
}

.cu-technology-flow::after {
  display: none;
}

.cu-technology-flow li {
  position: relative;
  z-index: 1;
  min-height: 205px;
  overflow: hidden;
  border-color: rgba(14, 116, 144, 0.18);
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(248, 251, 250, 0.97));
  box-shadow:
    0 16px 38px rgba(12, 36, 12, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
  outline: none;
  transition:
    opacity var(--cu-motion-fast) var(--cu-ease-standard),
    transform var(--cu-motion-base) var(--cu-ease-standard),
    border-color var(--cu-motion-base) var(--cu-ease-standard),
    box-shadow var(--cu-motion-base) var(--cu-ease-standard);
}

.cu-technology-flow li::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid rgba(14, 116, 144, 0.16);
  border-radius: inherit;
  pointer-events: none;
}

.cu-technology-flow li:not(:last-child)::after {
  top: 2.55rem;
  right: calc(clamp(0.75rem, 1.4vw, var(--cu-spacing-4)) * -1);
  width: clamp(0.75rem, 1.4vw, var(--cu-spacing-4));
  height: 2px;
  background: rgba(14, 116, 144, 0.28);
}

.cu-technology-flow li:hover,
.cu-technology-flow li:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(14, 116, 144, 0.34);
  box-shadow:
    0 22px 52px rgba(12, 36, 12, 0.12),
    0 0 0 4px rgba(14, 116, 144, 0.08);
}

.cu-technology-flow li:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 3px;
}

.cu-technology-flow__number {
  width: 3rem;
  height: 3rem;
  border: 1px solid rgba(14, 116, 144, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(224, 243, 246, 0.92));
  box-shadow: 0 8px 20px rgba(14, 116, 144, 0.12);
  color: var(--cu-color-technical-accent);
  font-variant-numeric: tabular-nums;
}

.cu-technology-flow__content > span:not(.cu-technology-flow__kicker):not(.cu-status-chip) {
  font-weight: 700;
  line-height: 1.35;
}

.cu-technology-flow__kicker {
  color: var(--cu-color-technical-accent);
}

.cu-technology-flow__item--review {
  border-color: rgba(51, 65, 85, 0.34);
  background:
    linear-gradient(180deg, #FFFFFF 0%, rgba(248, 250, 252, 0.98) 100%);
  box-shadow:
    0 24px 58px rgba(15, 23, 42, 0.13),
    inset 0 0 0 2px rgba(51, 65, 85, 0.08);
  transform: translateY(-0.35rem);
}

.cu-technology-flow__item--review::before {
  border-top-color: rgba(51, 65, 85, 0.48);
}

.cu-technology-flow__item--review .cu-technology-flow__number {
  border-color: rgba(51, 65, 85, 0.3);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(241, 245, 249, 0.94));
  color: var(--cu-color-status-review);
  box-shadow:
    0 0 0 6px rgba(51, 65, 85, 0.08),
    0 10px 24px rgba(15, 23, 42, 0.12);
}

.cu-technology-flow__item--feedback::before {
  border-top-style: dashed;
}

.cu-technology-flow-trust {
  border-color: rgba(51, 65, 85, 0.22);
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(248, 250, 252, 0.86));
  box-shadow:
    0 18px 44px rgba(12, 36, 12, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.cu-technology-status .cu-stat-strip__grid {
  align-items: stretch;
}

.cu-technology-status .cu-stat {
  position: relative;
  overflow: hidden;
  border-color: rgba(14, 116, 144, 0.18);
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 250, 0.98));
  box-shadow:
    0 16px 38px rgba(12, 36, 12, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.cu-technology-status .cu-stat::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid rgba(14, 116, 144, 0.18);
  pointer-events: none;
}

.cu-technology-status-card__header {
  position: relative;
  z-index: 1;
}

.cu-technology-status .cu-stat__value {
  border-color: rgba(14, 116, 144, 0.28);
  background: rgba(255, 255, 255, 0.68);
  color: var(--cu-color-text-primary);
}

.cu-technology-status .cu-stat__label {
  position: relative;
  z-index: 1;
}

.cu-technology-modules .cu-grid,
.cu-technology-ai-workflows .cu-grid {
  align-items: stretch;
}

.cu-technology-modules .cu-technology-card,
.cu-technology-ai-workflows .cu-technology-card {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  border-radius: var(--cu-radius-xl);
  border-top: 3px solid rgba(14, 116, 144, 0.18);
}

.cu-technology-ai-workflows .cu-technology-card {
  padding-top: calc(var(--cu-spacing-6) + 0.1rem);
}

.cu-technology-ai-workflows .cu-technology-card::before {
  content: attr(data-workflow-index);
  position: absolute;
  top: 1rem;
  right: 1rem;
  color: rgba(14, 116, 144, 0.22);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

/* :not(:nth-child(3n)) connector assumes 3 cards per row; correct for 6 cards (O-0189) */
.cu-technology-ai-workflows .cu-technology-card:not(:nth-child(3n))::after {
  top: 2.6rem;
  background: linear-gradient(90deg, rgba(14, 116, 144, 0.28), rgba(20, 83, 45, 0.16));
}

.cu-technology-ai-workflows .cu-technology-card:hover,
.cu-technology-ai-workflows .cu-technology-card:focus-within {
  border-color: rgba(14, 116, 144, 0.32);
  box-shadow: 0 24px 54px rgba(12, 36, 12, 0.12);
}

.cu-technology-card__details summary:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 3px;
  border-radius: var(--cu-radius-sm);
}

.cu-technology-cloud__panel {
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(135deg, rgba(245, 250, 247, 0.94), rgba(235, 248, 250, 0.88));
  box-shadow:
    0 20px 50px rgba(12, 36, 12, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.cu-technology-trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border-color: rgba(51, 65, 85, 0.18);
  background: rgba(255, 255, 255, 0.74);
  color: var(--cu-color-text-primary);
  cursor: default;
}

.cu-technology-trust-badge::before {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--cu-color-technical-accent);
  opacity: 0.72;
  flex: 0 0 auto;
}

.cu-technology-brief__panel {
  border-color: rgba(14, 116, 144, 0.2);
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(238, 248, 249, 0.92));
  box-shadow: 0 22px 55px rgba(12, 36, 12, 0.09);
}

.cu-technology-changelog__grid--timeline {
  position: relative;
  align-items: stretch;
}

.cu-technology-changelog__grid--timeline::before {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 1.35rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(14, 116, 144, 0.24), rgba(20, 83, 45, 0.16), rgba(14, 116, 144, 0.24));
  pointer-events: none;
}

.cu-technology-changelog__item {
  position: relative;
  z-index: 1;
  border-radius: var(--cu-radius-xl);
  border-top: 3px solid rgba(14, 116, 144, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.98));
}

.cu-technology-changelog__date {
  display: inline-flex;
  width: fit-content;
  padding: 0.28rem 0.65rem;
  border: 1px solid rgba(14, 116, 144, 0.18);
  border-radius: var(--cu-radius-pill);
  background: rgba(14, 116, 144, 0.08);
  color: var(--cu-color-technical-accent);
}

@media (max-width: 1024px) {
  .cu-technology-flow {
    padding-bottom: 0;
  }

  .cu-technology-flow::before {
    left: calc(1.5rem + var(--cu-spacing-4));
    right: auto;
    top: var(--cu-spacing-7);
    bottom: var(--cu-spacing-7);
    width: 2px;
    height: auto;
    background:
      linear-gradient(180deg, rgba(14, 116, 144, 0.24), rgba(20, 83, 45, 0.18), rgba(14, 116, 144, 0.24));
  }

  .cu-technology-flow::after,
  .cu-technology-changelog__grid--timeline::before {
    display: none;
  }

  .cu-technology-flow li {
    min-height: auto;
  }

  .cu-technology-flow li::before {
    border-top: 0;
    border-left: 3px solid rgba(14, 116, 144, 0.16);
  }

  .cu-technology-flow li:not(:last-child)::after {
    left: calc(1.5rem + var(--cu-spacing-4));
    bottom: calc(var(--cu-spacing-3) * -1);
    width: 2px;
    height: var(--cu-spacing-3);
    background: rgba(14, 116, 144, 0.28);
  }

  .cu-technology-flow__item--review {
    transform: none;
  }
}

@media (max-width: 767px) {
  .cu-technology-list-card li {
    padding: 0.75rem;
  }

  .cu-technology-ai-workflows .cu-grid {
    grid-template-columns: 1fr;
  }

  .cu-technology-ai-workflows .cu-technology-card::before {
    opacity: 0.68;
  }

  .cu-technology-brief__actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-technology-flow li,
  .cu-technology-ai-workflows .cu-technology-card,
  .cu-technology-modules .cu-technology-card {
    transition: none;
  }

  .cu-technology-flow li:hover,
  .cu-technology-flow li:focus-visible,
  .cu-technology-ai-workflows .cu-technology-card:hover,
  .cu-technology-ai-workflows .cu-technology-card:focus-within {
    transform: none;
  }
}

/* ================================================================
   Pipeline instrument panel — state modifiers
   --cu-technology-pipeline-progress · completed / current / pending
   ================================================================ */

/* Instrument panel: sticky scaffold at desktop */
@media (min-width: 1024px) {
  .cu-technology-flow-section {
    position: relative;
    top: auto;
    z-index: auto;
  }
}

/* Connector fill-front driven by --cu-technology-pipeline-progress */
.cu-technology-flow {
  --cu-technology-pipeline-progress: 0%;
}

.cu-technology-flow::before {
  height: 4px;
  top: calc(50% - 0.32rem);
  background: linear-gradient(
    90deg,
    rgba(14, 116, 144, 0.80) 0%,
    rgba(20, 83, 45, 0.68) var(--cu-technology-pipeline-progress),
    rgba(14, 116, 144, 0.09) var(--cu-technology-pipeline-progress)
  );
  box-shadow: 0 0 0 1px rgba(14, 116, 144, 0.10);
  border-radius: 999px;
  transition: background var(--cu-motion-slow, 0.5s) var(--cu-ease-standard);
}

.cu-technology-flow li:not(:last-child)::after {
  height: 3px;
  border-radius: 999px;
  background: rgba(14, 116, 144, 0.18);
}

@media (max-width: 1023px) {
  .cu-technology-flow::before {
    width: 3px;
    background: linear-gradient(
      180deg,
      rgba(14, 116, 144, 0.80) 0%,
      rgba(20, 83, 45, 0.68) var(--cu-technology-pipeline-progress),
      rgba(14, 116, 144, 0.09) var(--cu-technology-pipeline-progress)
    );
  }
}

/* Pending: dimmed */
.cu-technology-flow__item--pending {
  opacity: 0.36;
  border-color: rgba(14, 116, 144, 0.06);
  background: linear-gradient(180deg, rgba(248, 252, 251, 0.72), rgba(242, 248, 247, 0.68));
  box-shadow: 0 3px 10px rgba(12, 36, 12, 0.025);
}

.cu-technology-flow__item--pending::before {
  border-top-color: rgba(14, 116, 144, 0.07);
}

.cu-technology-flow__item--pending .cu-technology-flow__number {
  box-shadow: none;
  opacity: 0.38;
}

/* Completed: settled */
.cu-technology-flow__item--completed {
  border-color: rgba(20, 83, 45, 0.38);
  background: linear-gradient(180deg, rgba(245, 255, 249, 1), rgba(220, 247, 229, 0.98));
  box-shadow:
    0 14px 30px rgba(20, 83, 45, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    inset 0 0 0 1px rgba(20, 83, 45, 0.08);
}

.cu-technology-flow__item--completed::before {
  border-top-color: rgba(20, 83, 45, 0.30);
}

.cu-technology-flow__item--completed .cu-technology-flow__number {
  border-color: rgba(20, 83, 45, 0.24);
  background: linear-gradient(180deg, rgba(240, 253, 244, 0.98), rgba(187, 247, 208, 0.42));
  color: rgba(20, 83, 45, 0.88);
  box-shadow:
    0 0 0 4px rgba(20, 83, 45, 0.08),
    0 8px 18px rgba(20, 83, 45, 0.16);
}

.cu-technology-flow__item--completed:not(:last-child)::after {
  background: linear-gradient(90deg, rgba(20, 83, 45, 0.72), rgba(14, 116, 144, 0.62));
  box-shadow: 0 0 0 1px rgba(20, 83, 45, 0.08);
}

/* Check mark (no pseudo-element text) */
.cu-technology-flow__check {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: rgba(20, 83, 45, 0.85);
  font-size: 0;
}

.cu-technology-flow__check::after {
  content: "";
  display: block;
  width: 0.27rem;
  height: 0.52rem;
  border-right: 1.5px solid #ffffff;
  border-bottom: 1.5px solid #ffffff;
  transform: rotate(45deg) translate(-0.03rem, -0.06rem);
}

/* Current: strong presence */
.cu-technology-flow__item--current {
  border-color: rgba(14, 116, 144, 0.44);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(232, 248, 252, 0.97));
  box-shadow:
    0 22px 52px rgba(12, 36, 12, 0.12),
    0 0 0 3px rgba(14, 116, 144, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
  transform: translateY(-6px);
}

.cu-technology-flow__item--current::before {
  border-top-color: rgba(14, 116, 144, 0.52);
}

.cu-technology-flow__item--current .cu-technology-flow__number {
  border-color: rgba(14, 116, 144, 0.36);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(203, 238, 248, 0.68));
  color: var(--cu-color-technical-accent);
  box-shadow:
    0 0 0 7px rgba(14, 116, 144, 0.13),
    0 8px 20px rgba(14, 116, 144, 0.16);
}

.cu-technology-flow__item--current:not(:last-child)::after {
  height: 4px;
  background: linear-gradient(90deg, rgba(14, 116, 144, 0.82), rgba(20, 83, 45, 0.30));
  box-shadow:
    0 0 0 1px rgba(14, 116, 144, 0.14),
    0 8px 20px rgba(14, 116, 144, 0.16);
}

/* Review node: neutral until selected, with the human-review note below the flow */
.cu-technology-flow__item--review {
  z-index: 1;
  border-left: 3px solid rgba(51, 65, 85, 0.24);
  transform: none;
}

.cu-technology-flow__item--review.cu-technology-flow__item--current {
  z-index: 3;
  border-color: rgba(51, 65, 85, 0.46);
  transform: translateY(-16px) scale(1.04);
  box-shadow:
    0 44px 96px rgba(15, 23, 42, 0.22),
    0 8px 24px rgba(15, 23, 42, 0.10),
    0 0 0 5px rgba(51, 65, 85, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.94),
    inset 0 0 0 1px rgba(51, 65, 85, 0.10);
}

.cu-technology-flow__item--review.cu-technology-flow__item--current::before {
  border-top-width: 5px;
  border-top-color: rgba(51, 65, 85, 0.72);
}

.cu-technology-flow__item--review.cu-technology-flow__item--current .cu-technology-flow__number {
  position: relative;
  border-width: 2px;
  box-shadow:
    0 0 0 8px rgba(51, 65, 85, 0.14),
    0 0 0 15px rgba(14, 116, 144, 0.08),
    0 14px 28px rgba(15, 23, 42, 0.18);
}

.cu-technology-flow__item--review.cu-technology-flow__item--current .cu-technology-flow__number::after {
  content: "";
  position: absolute;
  inset: -1.05rem;
  border: 1px solid rgba(14, 116, 144, 0.22);
  border-radius: 50%;
  pointer-events: none;
}

.cu-technology-review-note {
  --review-note-x: 68%;
  position: relative;
  width: min(100%, 760px);
  margin: clamp(1.25rem, 3vw, 2rem) auto 0;
  padding-top: clamp(1.55rem, 3vw, 2rem);
  opacity: 0.92;
  transform: translateY(0);
  transition:
    transform var(--cu-motion-base, 0.24s) var(--cu-ease-standard),
    opacity var(--cu-motion-base, 0.24s) var(--cu-ease-standard);
}

.cu-technology-review-note__arrow {
  position: absolute;
  left: var(--review-note-x);
  top: 0;
  width: 1px;
  height: clamp(1.1rem, 2vw, 1.45rem);
  background: linear-gradient(180deg, rgba(51, 65, 85, 0.12), rgba(51, 65, 85, 0.42));
  transform: translateX(-50%);
}

.cu-technology-review-note__arrow::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -0.28rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--cu-color-technical-accent, #0e7490);
  box-shadow:
    0 0 0 5px rgba(14, 116, 144, 0.10),
    0 8px 18px rgba(15, 23, 42, 0.14);
  transform: translateX(-50%);
}

.cu-technology-review-note__body::before {
  content: "";
  position: absolute;
  top: -0.36rem;
  left: var(--review-note-x);
  width: 0.68rem;
  height: 0.68rem;
  border-top: 1px solid rgba(51, 65, 85, 0.18);
  border-left: 1px solid rgba(51, 65, 85, 0.18);
  background: rgba(255, 255, 255, 0.98);
  transform: translateX(-50%) rotate(45deg);
}

.cu-technology-review-note__body {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--cu-spacing-3, 0.75rem);
  padding: clamp(0.85rem, 2vw, 1.1rem) clamp(1rem, 3vw, 1.4rem);
  border: 1px solid rgba(51, 65, 85, 0.17);
  border-radius: var(--cu-radius-lg, 0.75rem);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));
  box-shadow:
    0 18px 36px rgba(15, 23, 42, 0.11),
    0 1px 3px rgba(15, 23, 42, 0.06),
    inset 0 0 0 1px rgba(51, 65, 85, 0.06);
}

.cu-technology-review-note p {
  margin: 0;
  font-size: 0.83rem;
  line-height: 1.55;
  color: var(--cu-color-text-secondary, rgba(51, 65, 85, 0.82));
  max-width: 42rem;
}

.cu-technology-review-note.is-active {
  opacity: 1;
  transform: translateY(-2px);
}

.cu-technology-review-note.is-active .cu-technology-review-note__body {
  border-color: rgba(51, 65, 85, 0.28);
  box-shadow:
    0 24px 48px rgba(15, 23, 42, 0.15),
    0 0 0 5px rgba(51, 65, 85, 0.09),
    inset 0 0 0 1px rgba(51, 65, 85, 0.08);
}

@media (max-width: 1023px) {
  .cu-technology-flow {
    gap: var(--cu-spacing-5);
  }

  .cu-technology-review-note {
    --review-note-x: 50%;
    width: min(100%, 42rem);
  }
}

@media (max-width: 640px) {
  .cu-technology-review-note__body {
    display: grid;
    justify-items: start;
  }
}

/* Desktop >=1024: equal card columns; the human-review note sits outside the flow */
@media (min-width: 1024px) {
  .cu-technology-flow {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .cu-technology-flow__item--review {
    overflow: hidden;
  }
}

/* Reduced motion: collapse all transitions on state elements */
@media (prefers-reduced-motion: reduce) {
  .cu-technology-flow::before,
  .cu-technology-flow__item--completed,
  .cu-technology-flow__item--current,
  .cu-technology-flow__item--pending,
  .cu-technology-review-note {
    transition: none;
    animation: none;
  }

  .cu-technology-flow__item--current,
  .cu-technology-flow__item--review.cu-technology-flow__item--current {
    transform: none;
  }

  .cu-technology-flow__item--pending {
    opacity: 0.36;
  }

  .cu-technology-review-note {
    transform: none;
  }
}

/* ================================================================
   VIZ-07 - Home + Portfolio rollout
   O-0145..O-0153
   ================================================================ */

.cu-home-technology,
.cu-region-strip,
.cu-portfolio-highlight,
.cu-portfolio-technology-bridge,
.cu-portfolio-stats {
  position: relative;
  overflow: clip;
}

.cu-home-technology {
  border-block: 1px solid rgba(20, 83, 45, 0.11);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(241, 247, 244, 0.92)),
    var(--cu-surface-field);
}

.cu-home-technology .cu-container {
  gap: clamp(var(--cu-spacing-5), 3vw, var(--cu-spacing-8));
}

.cu-home-technology .cu-home-technology__card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 100%;
  border-color: rgba(14, 116, 144, 0.18);
  border-radius: var(--cu-radius-lg);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 250, 0.98)),
    var(--cu-surface-card-technical);
  box-shadow:
    0 14px 34px rgba(12, 36, 12, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.cu-home-technology .cu-home-technology__card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 3px solid rgba(14, 116, 144, 0.22);
  border-radius: inherit;
  pointer-events: none;
}

.cu-home-technology .cu-home-technology__card::after {
  content: "";
  position: absolute;
  top: var(--cu-spacing-4);
  right: var(--cu-spacing-4);
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid rgba(14, 116, 144, 0.16);
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 50%, rgba(14, 116, 144, 0.14) 0 2px, transparent 3px),
    rgba(255, 255, 255, 0.58);
  opacity: 0.62;
  pointer-events: none;
}

.cu-home-technology .cu-home-technology__card > * {
  position: relative;
  z-index: 1;
}

.cu-home-technology .cu-home-technology__card .cu-card__header {
  gap: var(--cu-spacing-3);
}

.cu-home-technology .cu-home-technology__card p {
  max-width: 34rem;
  margin-inline: auto;
}

.cu-evidence-entry {
  width: min(100%, 880px);
  margin-inline: auto;
  border: 1px solid var(--cu-border-standard);
  border-radius: var(--cu-radius-lg);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(249, 252, 250, 0.94)),
    var(--cu-surface-card-evidence);
  box-shadow:
    0 16px 40px rgba(12, 36, 12, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.cu-region-strip {
  background:
    linear-gradient(180deg, rgba(245, 247, 247, 0.96), rgba(241, 247, 244, 0.9)),
    var(--cu-color-surface-muted);
}

.cu-region-strip__frame {
  padding: clamp(var(--cu-spacing-6), 5vw, var(--cu-spacing-10));
}

.cu-region-strip__frame h2,
.cu-portfolio-highlight__frame h2 {
  margin-top: 0;
}

.cu-region-strip__frame p,
.cu-portfolio-highlight__frame p {
  margin-inline: auto;
}

.cu-portfolio-highlight {
  background:
    linear-gradient(180deg, rgba(241, 247, 244, 0.9), rgba(255, 255, 255, 0.98)),
    var(--cu-surface-field);
}

.cu-portfolio-highlight__frame {
  display: grid;
  justify-items: center;
  gap: var(--cu-spacing-4);
  padding: clamp(var(--cu-spacing-6), 5vw, var(--cu-spacing-10));
}

.cu-portfolio-technology-bridge {
  border-block: 1px solid rgba(14, 116, 144, 0.1);
  background:
    linear-gradient(180deg, rgba(246, 250, 250, 0.96), rgba(241, 247, 244, 0.92)),
    var(--cu-surface-technical);
}

.cu-portfolio-technology-bridge__frame {
  width: min(100%, 920px);
  border: 1px solid rgba(14, 116, 144, 0.16);
  border-radius: var(--cu-radius-lg);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(247, 251, 250, 0.9));
  padding: clamp(var(--cu-spacing-5), 4vw, var(--cu-spacing-8));
  box-shadow: 0 14px 34px rgba(12, 36, 12, 0.06);
}

.cu-portfolio-technology-bridge__card {
  position: relative;
  overflow: hidden;
  border-color: rgba(14, 116, 144, 0.18);
  border-top: 3px solid rgba(14, 116, 144, 0.22);
}

.cu-portfolio-technology-bridge__card p {
  max-width: 34rem;
  margin-inline: auto;
}

.cu-portfolio-card {
  border-color: var(--cu-border-standard);
  border-radius: var(--cu-radius-lg);
  box-shadow:
    0 14px 32px rgba(12, 36, 12, 0.075),
    inset 0 1px 0 rgba(255, 255, 255, 0.72);
  transition:
    border-color var(--cu-motion-base) var(--cu-ease-standard),
    box-shadow var(--cu-motion-base) var(--cu-ease-standard),
    transform var(--cu-motion-base) var(--cu-ease-standard);
}

.cu-portfolio-card .cu-portfolio-card__media {
  min-height: clamp(240px, 26vw, var(--cu-portfolio-gallery-image-height));
  border-bottom: 1px solid rgba(20, 83, 45, 0.12);
}

.cu-portfolio-card__media::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 42%;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.14));
  pointer-events: none;
}

.cu-portfolio-card__body {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 252, 250, 0.98));
}

.cu-portfolio-card__location {
  width: fit-content;
  max-width: 100%;
  padding: 0.2rem 0.55rem;
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-radius: var(--cu-radius-pill);
  background: rgba(20, 83, 45, 0.06);
  letter-spacing: 0.06em;
}

.cu-portfolio-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-2);
  align-items: center;
}

.cu-portfolio-stats {
  background:
    linear-gradient(180deg, #fff, rgba(245, 247, 247, 0.82));
  border-block: 1px solid rgba(20, 83, 45, 0.1);
}

.cu-portfolio-stats__inner {
  width: min(100%, 980px);
  margin-inline: auto;
}

.cu-portfolio-stats .cu-stat-strip__grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.cu-portfolio-stats .cu-stat--frame {
  min-height: 0;
  border: 1px solid var(--cu-border-standard);
  border-radius: var(--cu-radius-md);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: none;
}

.cu-portfolio-stats .cu-stat__value {
  margin: 0;
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
}

@media (hover: hover) {
  .cu-home-technology .cu-home-technology__card:hover,
  .cu-home-technology .cu-home-technology__card:focus-within,
  .cu-portfolio-technology-bridge .cu-portfolio-technology-bridge__card:hover,
  .cu-portfolio-technology-bridge .cu-portfolio-technology-bridge__card:focus-within {
    transform: translateY(-3px);
    border-color: rgba(14, 116, 144, 0.34);
    box-shadow:
      0 20px 48px rgba(12, 36, 12, 0.12),
      0 0 0 4px rgba(14, 116, 144, 0.07);
  }

  .cu-portfolio-card:hover,
  .cu-portfolio-card:focus-within {
    transform: translateY(-3px);
    border-color: rgba(20, 83, 45, 0.24);
    box-shadow: 0 20px 46px rgba(12, 36, 12, 0.12);
  }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .cu-home-technology,
    .cu-region-strip,
    .cu-portfolio-highlight,
    .cu-portfolio-stats,
    .cu-portfolio-technology-bridge {
      animation: cu-viz07-section-reveal linear both;
      animation-timeline: view();
      animation-range: entry 8% cover 26%;
    }
  }
}

@keyframes cu-viz07-section-reveal {
  from {
    opacity: 0.82;
    filter: saturate(0.92);
  }

  to {
    opacity: 1;
    filter: saturate(1);
  }
}

@media (max-width: 767px) {
  .cu-home-technology,
  .cu-portfolio-technology-bridge {
    display: block;
  }

  .cu-region-strip__frame,
  .cu-portfolio-highlight__frame,
  .cu-portfolio-technology-bridge__frame {
    padding: var(--cu-spacing-5);
    border-radius: var(--cu-radius-md);
  }

  .cu-home-technology .cu-home-technology__card::after {
    opacity: 0.4;
  }

  .cu-portfolio-card .cu-portfolio-card__media {
    min-height: 220px;
  }

  .cu-portfolio-card__cta {
    align-self: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-home-technology,
  .cu-region-strip,
  .cu-portfolio-highlight,
  .cu-portfolio-stats,
  .cu-portfolio-technology-bridge,
  .cu-home-technology .cu-home-technology__card,
  .cu-portfolio-technology-bridge .cu-portfolio-technology-bridge__card,
  .cu-portfolio-card {
    animation: none;
    transition: none;
    transform: none;
  }

  .cu-home-technology .cu-home-technology__card:hover,
  .cu-home-technology .cu-home-technology__card:focus-within,
  .cu-portfolio-technology-bridge .cu-portfolio-technology-bridge__card:hover,
  .cu-portfolio-technology-bridge .cu-portfolio-technology-bridge__card:focus-within,
  .cu-portfolio-card:hover,
  .cu-portfolio-card:focus-within {
    transform: none;
  }
}

/* ================================================================
   VIZ-08 — Research + Services rollout
   O-0154..O-0161
   ================================================================ */

/* --- Tokens (paper grain texture for Research / Courses) ------- */
:root {
  --cu-texture-paper-grain:
    repeating-linear-gradient(
      -45deg,
      transparent 0 2px,
      rgba(100, 72, 36, 0.013) 2px 3px
    ),
    repeating-linear-gradient(
      45deg,
      transparent 0 2px,
      rgba(100, 72, 36, 0.009) 2px 3px
    );
}

/* O-0154: Research notebook surface                               */
/* Subtle paper grain over the warm #FBFBF8 base already in place. */
/* Section rhythm via hairline rules between major content areas.  */
.cu-research-page {
  background-image: var(--cu-texture-paper-grain);
}

.cu-research-intro,
.cu-research-projects {
  border-top: 1px solid rgba(100, 72, 36, 0.08);
}

/* Warm the intro panel border to match editorial mood */
.cu-research-intro__panel {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(100, 72, 36, 0.13);
}

/* Decision-support items: warm surface instead of base white */
.cu-research-decision-support .cu-research-decision-support__list li {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(100, 72, 36, 0.11);
}

/* Projects section: warm gradient to reinforce notebook feel */
.cu-research-projects {
  background:
    linear-gradient(180deg, rgba(251, 251, 248, 0.97), rgba(247, 245, 240, 0.92)),
    var(--cu-surface-research);
}

/* O-0155: Research boundary cards — claim/validation frame       */
/* CSS counters provide numbered rigour without new labels.        */
/* Only two boundary cards exist; three-part map deferred (note). */
.cu-research-boundaries .cu-grid {
  counter-reset: boundary-card;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-5);
}

.cu-boundary-card {
  counter-increment: boundary-card;
  position: relative;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(100, 72, 36, 0.12);
  border-top: 3px solid rgba(48, 48, 58, 0.5);
  border-radius: var(--cu-radius-lg);
  padding: var(--cu-spacing-6) var(--cu-spacing-5) var(--cu-spacing-5);
  box-shadow: 0 8px 22px rgba(12, 36, 12, 0.06);
  min-height: 0;
}

.cu-boundary-card::before {
  content: counter(boundary-card, decimal-leading-zero);
  position: absolute;
  top: var(--cu-spacing-3);
  right: var(--cu-spacing-4);
  font-family: var(--cu-font-heading);
  font-size: var(--cu-text-sm);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: rgba(48, 48, 58, 0.32);
  letter-spacing: 0.08em;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.cu-boundary-card h3 {
  margin: 0 0 var(--cu-spacing-3) 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--cu-color-text-primary);
  line-height: 1.4;
}

.cu-boundary-card p {
  margin: 0;
  font-size: var(--cu-text-base);
  color: var(--cu-color-text-secondary);
  line-height: 1.75;
}

/* Boundary cards are trust/claim cards; suppress hover lift */
@media (hover: hover) {
  .cu-boundary-card:hover,
  .cu-boundary-card:focus-within {
    transform: none;
    box-shadow: 0 8px 22px rgba(12, 36, 12, 0.06);
    border-color: rgba(100, 72, 36, 0.12);
  }
}

/* O-0156: Research project evidence cards — teal accent on        */
/* methodology chips; method chips carry research accent to         */
/* distinguish from green evidence/field chips.                    */
.cu-research-project__methods .cu-evidence-chip {
  background: rgba(14, 116, 144, 0.07);
  border-color: rgba(14, 116, 144, 0.2);
  color: rgba(14, 116, 144, 0.88);
}

/* O-0157: Research editorial reveal — calm opacity/translate      */
/* Only under animation-timeline support; disabled under           */
/* prefers-reduced-motion.                                         */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .cu-research-intro,
    .cu-research-boundaries {
      animation: cu-viz08-research-reveal linear both;
      animation-timeline: view();
      animation-range: entry 5% cover 28%;
    }

    .cu-research-projects__item {
      animation: cu-viz08-research-reveal linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 50%;
    }
  }
}

@keyframes cu-viz08-research-reveal {
  from {
    opacity: 0.82;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-research-intro,
  .cu-research-boundaries,
  .cu-research-projects__item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* ================================================================
   BVI-03 — Research Claim-Boundary Board
   Opus strengthened brief: field-research plate + datum boundary +
   ruled project register. Existing strings only; pseudo-elements are
   decorative and render no words.
   ================================================================ */

.cu-research-plate-section {
  padding: clamp(4rem, 8vw, 6.5rem) 0 clamp(3.25rem, 7vw, 5.5rem);
  background:
    linear-gradient(180deg, rgba(251, 251, 248, 0.98), rgba(246, 244, 237, 0.96)),
    var(--cu-surface-research);
  border-block: 1px solid rgba(100, 72, 36, 0.09);
}

.cu-research-plate {
  --cu-research-rule: rgba(48, 48, 58, 0.62);
  --cu-research-rule-soft: rgba(100, 72, 36, 0.16);
  position: relative;
  box-sizing: border-box;
  display: grid;
  gap: clamp(2.4rem, 5vw, 4.25rem);
  width: 100%;
  max-width: 100%;
  padding: clamp(2rem, 4.4vw, 4.5rem);
  border: 2px solid var(--cu-research-rule);
  border-radius: 7px;
  background:
    linear-gradient(90deg, rgba(100, 72, 36, 0.045) 1px, transparent 1px) 0 0 / 4.5rem 4.5rem,
    linear-gradient(180deg, rgba(100, 72, 36, 0.035) 1px, transparent 1px) 0 0 / 4.5rem 4.5rem,
    rgba(255, 255, 252, 0.94);
  box-shadow:
    0 34px 84px rgba(38, 34, 24, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.74);
  overflow: hidden;
}

.cu-research-plate *,
.cu-research-project * {
  min-width: 0;
}

.cu-research-plate::before,
.cu-research-plate::after,
.cu-research-plate__claim::before,
.cu-research-plate__claim::after {
  content: "";
  position: absolute;
  width: 2rem;
  height: 2rem;
  pointer-events: none;
  background:
    linear-gradient(var(--cu-research-rule), var(--cu-research-rule)) 0 0 / 100% 2px no-repeat,
    linear-gradient(var(--cu-research-rule), var(--cu-research-rule)) 0 0 / 2px 100% no-repeat;
}

.cu-research-plate::before {
  top: 1rem;
  left: 1rem;
}

.cu-research-plate::after {
  right: 1rem;
  bottom: 1rem;
  transform: rotate(180deg);
}

.cu-research-plate__claim::before {
  top: 1rem;
  right: 1rem;
  transform: rotate(90deg);
}

.cu-research-plate__claim::after {
  left: 1rem;
  bottom: 1rem;
  transform: rotate(270deg);
}

.cu-research-plate__claim {
  position: relative;
  display: grid;
  gap: clamp(1.25rem, 2.2vw, 2rem);
  max-width: 960px;
  min-height: 0;
  padding: clamp(1.25rem, 2.2vw, 2rem) clamp(0.25rem, 1vw, 1rem);
}

.cu-research-plate__headline {
  margin: 0;
  max-width: 16ch;
  font-family: var(--cu-font-heading);
  font-size: clamp(2.15rem, 4.8vw, 4.6rem);
  line-height: 0.98;
  color: var(--cu-color-brand-primary-dark);
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.cu-research-plate__body {
  margin: 0;
  max-width: 68ch;
  font-size: clamp(1.05rem, 1.7vw, 1.24rem);
  line-height: 1.85;
  color: var(--cu-color-text-primary);
  overflow-wrap: anywhere;
}

.cu-research-plate__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: clamp(0.5rem, 1.8vw, 1.35rem) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--cu-research-rule-soft);
  border-left: 1px solid var(--cu-research-rule-soft);
}

.cu-research-plate__item {
  min-width: 0;
  padding: 0.95rem 1rem;
  border-right: 1px solid var(--cu-research-rule-soft);
  border-bottom: 1px solid var(--cu-research-rule-soft);
  color: var(--cu-color-text-secondary);
  line-height: 1.55;
  background: rgba(255, 255, 255, 0.45);
  overflow-wrap: anywhere;
}

.cu-research-plate__datum {
  position: relative;
  display: grid;
  gap: clamp(1.4rem, 2.8vw, 2.2rem);
}

.cu-research-plate__datum-rule {
  display: block;
  width: 100%;
  height: 8px;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.88) 0 1px,
      transparent 1px 1.15rem
    ),
    linear-gradient(90deg, rgba(48, 48, 58, 0.95), rgba(14, 116, 144, 0.72), rgba(48, 48, 58, 0.95));
  box-shadow:
    0 0 0 1px rgba(48, 48, 58, 0.30),
    0 10px 24px rgba(48, 48, 58, 0.11);
}

.cu-research-plate__annotations {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

.cu-research-plate__annotation {
  position: relative;
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  margin: 0;
  padding: clamp(1.15rem, 2vw, 1.55rem);
  border: 1px solid rgba(48, 48, 58, 0.24);
  border-top: 4px solid rgba(48, 48, 58, 0.72);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 14px 28px rgba(38, 34, 24, 0.07);
}

.cu-research-plate__annotation::before {
  content: "";
  position: absolute;
  top: -1.55rem;
  left: clamp(1.25rem, 4vw, 3rem);
  width: 2px;
  height: 1.55rem;
  background: rgba(48, 48, 58, 0.46);
  pointer-events: none;
}

.cu-research-plate__annotation-title {
  margin: 0;
  font-family: var(--cu-font-heading);
  font-size: clamp(1rem, 1.35vw, 1.24rem);
  line-height: 1.25;
  color: var(--cu-color-text-primary);
  overflow-wrap: anywhere;
}

.cu-research-plate__annotation-body {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.72;
  overflow-wrap: anywhere;
}

.cu-research-projects {
  padding: clamp(3.25rem, 7vw, 5.5rem) 0 var(--cu-spacing-24);
  background:
    linear-gradient(180deg, rgba(246, 244, 237, 0.96), rgba(251, 251, 248, 0.98)),
    var(--cu-surface-research);
}

.cu-research-projects__list {
  gap: 0;
  border-top: 2px solid rgba(48, 48, 58, 0.54);
  border-bottom: 2px solid rgba(48, 48, 58, 0.42);
}

.cu-research-projects__item + .cu-research-projects__item {
  border-top: 1px solid rgba(100, 72, 36, 0.18);
}

.cu-research-project {
  display: grid;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  grid-template-columns: minmax(9rem, 0.25fr) minmax(0, 1fr) minmax(13rem, 0.34fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  padding: clamp(1.25rem, 2.5vw, 2rem) 0;
  border: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  transform-origin: center;
  transition:
    transform var(--cu-motion-base, 0.24s) var(--cu-ease-standard),
    box-shadow var(--cu-motion-base, 0.24s) var(--cu-ease-standard),
    background-color var(--cu-motion-base, 0.24s) var(--cu-ease-standard),
    border-color var(--cu-motion-base, 0.24s) var(--cu-ease-standard);
}

.cu-research-project__method-gutter {
  min-width: 0;
  padding: 0 clamp(1rem, 2vw, 1.4rem) 0 0;
  border-right: 2px solid rgba(14, 116, 144, 0.28);
  background:
    linear-gradient(90deg, rgba(14, 116, 144, 0.045), transparent 72%);
}

.cu-research-project__method-gutter:empty {
  min-height: 3rem;
}

.cu-research-project__methods {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 0.55rem;
  margin: 0;
}

.cu-research-project__methods .cu-evidence-chip {
  max-width: 100%;
  white-space: normal;
  border-radius: 4px;
  border-color: rgba(14, 116, 144, 0.28);
  background: rgba(14, 116, 144, 0.09);
  color: rgba(11, 95, 118, 0.96);
  box-shadow: inset 0 -1px 0 rgba(14, 116, 144, 0.08);
}

.cu-research-project__content {
  gap: var(--cu-spacing-3);
  min-width: 0;
  padding-right: clamp(0.25rem, 1vw, 0.75rem);
}

.cu-research-project h2 {
  font-size: clamp(1.45rem, 2.5vw, 2.15rem);
  line-height: 1.16;
  max-width: 18ch;
}

.cu-research-project__subtitle {
  color: rgba(14, 116, 144, 0.90);
}

.cu-research-project__media {
  width: 100%;
  min-width: 0;
  margin: 0;
  border-radius: 4px;
  border: 1px solid rgba(48, 48, 58, 0.24);
  box-shadow:
    0 0 0 4px rgba(255, 255, 252, 0.78),
    0 14px 28px rgba(38, 34, 24, 0.08);
}

.cu-research-project__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: saturate(0.94) contrast(1.04);
  transition: transform var(--cu-motion-base, 0.24s) var(--cu-ease-standard);
}

@media (hover: hover) {
  .cu-research-project:hover,
  .cu-research-project:focus-within {
    transform: translateY(-3px) scale(1.012);
    background: rgba(255, 255, 252, 0.46);
    box-shadow:
      0 18px 38px rgba(38, 34, 24, 0.08),
      inset 0 0 0 1px rgba(48, 48, 58, 0.08);
    border-color: rgba(48, 48, 58, 0.18);
  }

  .cu-research-project:hover .cu-research-project__media img,
  .cu-research-project:focus-within .cu-research-project__media img {
    transform: scale(1.018);
  }

  .cu-research-plate__annotation:hover,
  .cu-research-plate__annotation:focus-within {
    transform: translateY(-2px);
    border-color: rgba(48, 48, 58, 0.38);
    box-shadow: 0 18px 34px rgba(38, 34, 24, 0.09);
  }
}

@media (max-width: 1040px) {
  .cu-research-project {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.42fr);
  }

  .cu-research-project__method-gutter {
    grid-column: 1 / -1;
    padding: 0 0 var(--cu-spacing-4);
    border-right: 0;
    border-bottom: 2px solid rgba(14, 116, 144, 0.24);
    background: linear-gradient(180deg, rgba(14, 116, 144, 0.055), transparent 88%);
  }
}

@media (max-width: 760px) {
  .cu-research-plate {
    gap: var(--cu-spacing-8);
    border-width: 1px;
    padding: clamp(1.35rem, 6vw, 2rem);
  }

  .cu-research-plate__headline {
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 3.1rem);
  }

  .cu-research-plate__items,
  .cu-research-plate__annotations,
  .cu-research-project {
    grid-template-columns: 1fr;
  }

  .cu-research-plate__annotation::before {
    left: 1.25rem;
  }

  .cu-research-project {
    gap: var(--cu-spacing-5);
  }

  .cu-research-project__content {
    padding-right: 0;
  }

  .cu-research-project h2 {
    max-width: 100%;
  }

  .cu-research-project__media {
    min-height: 14rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-research-plate,
  .cu-research-plate__annotation,
  .cu-research-project,
  .cu-research-project__media {
    transition: none;
    animation: none;
    transform: none;
  }
}

/* O-0158: Services taxonomy visual layer over existing groups      */
/* CSS counter derives from existing group structure; no new labels. */
/* Teal hairline + numbered kicker index the five service families. */
.cu-services-grid > .cu-container {
  counter-reset: svc-group;
}

.svc-group {
  counter-increment: svc-group;
}

.svc-group__header {
  position: relative;
  border-top: 2px solid rgba(14, 116, 144, 0.13);
  padding-top: var(--cu-spacing-5);
}

.svc-group__header::before {
  content: counter(svc-group, decimal-leading-zero);
  position: absolute;
  top: var(--cu-spacing-3);
  right: 0;
  font-family: var(--cu-font-heading);
  font-size: 0.7rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: rgba(14, 116, 144, 0.42);
  letter-spacing: 0.1em;
  pointer-events: none;
  user-select: none;
}

/* O-0159: Services routing/technical card treatment               */
/* Cards read as decisive routing destinations; sharper hover      */
/* border + lift without slowing scanning on resting state.        */
.cu-card.svc-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(249, 252, 250, 0.97)),
    var(--cu-surface-card-evidence);
  border-color: rgba(20, 83, 45, 0.12);
}

@media (hover: hover) {
  .cu-card.svc-card:hover,
  .cu-card.svc-card:focus-within {
    transform: translateY(-2px);
    border-color: var(--cu-border-active);
    box-shadow:
      0 14px 32px rgba(12, 36, 12, 0.1),
      0 0 0 3px rgba(20, 83, 45, 0.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-card.svc-card {
    transition: none;
  }

  .cu-card.svc-card:hover,
  .cu-card.svc-card:focus-within {
    transform: none;
  }
}

/* Services filter count: tabular numerals for stable layout       */
.svc-count {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
  font-size: var(--cu-text-sm);
  color: var(--cu-color-text-secondary);
}

/* O-0160: Service detail — related projects, FAQ, summary         */

/* Related projects list as evidence links with left-border accent */
ul.cu-service-related__projects-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-service-related__projects-list li {
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  padding-left: var(--cu-spacing-5);
  border-left: 2px solid rgba(20, 83, 45, 0.2);
  background: rgba(255, 255, 255, 0.9);
  border-radius: 0 var(--cu-radius-sm) var(--cu-radius-sm) 0;
}

.cu-service-related__projects-list li a {
  color: var(--cu-color-brand-primary-dark);
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.5;
  text-decoration: none;
}

.cu-service-related__projects-list li a:hover,
.cu-service-related__projects-list li a:focus-visible {
  text-decoration: underline;
}

/* FAQ details: tighter frame with bottom hairline accent */
.cu-service-related details {
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-bottom-width: 2px;
  background: rgba(255, 255, 255, 0.95);
  padding: var(--cu-spacing-4) var(--cu-spacing-5);
  border-radius: var(--cu-radius-md);
}

.cu-service-related details[open] {
  border-color: rgba(20, 83, 45, 0.2);
}

.cu-service-related details + details {
  margin-top: var(--cu-spacing-2);
}

/* Service summary items: technical framing with brand top border */
.cu-service-summary__item {
  border: 1px solid rgba(20, 83, 45, 0.11);
  border-top: 3px solid var(--cu-color-brand-primary);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 20px rgba(12, 36, 12, 0.05);
}

/* FAQ cross-links: teal technical separator */
.cu-service-related__faq-links {
  margin-top: var(--cu-spacing-5);
  padding-top: var(--cu-spacing-4);
  border-top: 2px solid rgba(14, 116, 144, 0.11);
}

.cu-service-related__faq-links h3 {
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(14, 116, 144, 0.65);
  margin: 0 0 var(--cu-spacing-3) 0;
}

.cu-faq-related__link {
  color: var(--cu-color-brand-primary);
  font-weight: 600;
  font-size: 0.95rem;
}

.cu-faq-related__link:hover,
.cu-faq-related__link:focus-visible {
  color: var(--cu-color-brand-primary-dark);
  text-decoration: underline;
}

/* Service process: numbered technical steps */
.cu-service-process ol {
  counter-reset: process-step;
}

.cu-service-process li {
  counter-increment: process-step;
  position: relative;
  padding-left: calc(var(--cu-spacing-4) + 1.75rem);
  border-left: 3px solid rgba(20, 83, 45, 0.15);
  border-radius: 0 var(--cu-radius-md) var(--cu-radius-md) 0;
  background: rgba(255, 255, 255, 0.88);
}

.cu-service-process li::before {
  content: counter(process-step, decimal-leading-zero);
  position: absolute;
  left: var(--cu-spacing-3);
  top: var(--cu-spacing-4);
  font-family: var(--cu-font-heading);
  font-size: var(--cu-text-sm);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: rgba(20, 83, 45, 0.5);
  line-height: 1;
}

/* O-0161: "Which service fits me" chips — deferred               */
/* Existing svc-chip filter chips already route by category        */
/* without duplication. Separate fit chips not implemented.        */

/* ================================================================
   VIZ-09 — Courses / Contact / About / FAQ / Legal / Error rollout
   O-0162..O-0172
   ================================================================ */

/* --- O-0162: Courses training/workbook surface ------------------- */
/* Paper grain from VIZ-08 token applied to the full courses page.   */
/* Ordinals restyled as graphite syllabus chapter markers.           */
/* Warm workbook border-top accent on featured course cards.         */

.cu-courses-page {
  background-image: var(--cu-texture-paper-grain);
}

.cu-courses-card__ordinal {
  background: rgba(48, 48, 58, 0.06);
  color: rgba(48, 48, 58, 0.7);
  border: 2px solid rgba(48, 48, 58, 0.2);
  box-shadow: none;
  font-variant-numeric: tabular-nums lining-nums;
}

.cu-courses-card--master,
.cu-courses-card--microgreens {
  border-top: 3px solid rgba(100, 72, 36, 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(251, 251, 248, 0.98)),
    var(--cu-texture-paper-grain);
}

/* Training-family meta chips: warm amber-field tone */
.cu-courses-cards .cu-evidence-chip {
  background: rgba(100, 72, 36, 0.07);
  border-color: rgba(100, 72, 36, 0.18);
  color: rgba(48, 32, 12, 0.72);
}

/* --- O-0163: Courses fit selector/chips — DEFERRED --------------- */
/* Comparison table rows already serve the comparison purpose.        */
/* Fit chips require new label text → deferred.                      */

/* --- O-0164: Courses proof/credibility surface ------------------- */
/* Warm proof section to signal evidence, not decoration.            */
/* Stats stay static/tabular per O-0067 guardrail.                  */

.cu-courses-proof {
  border-top: 1px solid rgba(100, 72, 36, 0.1);
  background:
    linear-gradient(180deg, rgba(247, 245, 240, 0.97), rgba(251, 251, 248, 0.97)),
    var(--cu-texture-paper-grain);
}

.cu-courses-proof .cu-stat__value {
  font-variant-numeric: tabular-nums lining-nums;
  border-color: rgba(48, 32, 12, 0.28);
}

/* --- O-0165: Contact routing-card polish ------------------------- */
/* Reduce hover lift to 2px per O-0076 routing-card rule.            */
/* Top border accent distinguishes routing cards from plain panels.  */
/* Strengthen focus-within ring for keyboard navigation.             */

.cu-contact-option {
  border-top: 3px solid rgba(20, 83, 45, 0.18);
}

.cu-contact-option:hover,
.cu-contact-option:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(12, 48, 16, 0.12);
  border-top-color: var(--cu-color-brand-primary);
}

.cu-contact-option:focus-within {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .cu-contact-option:hover,
  .cu-contact-option:focus-within {
    transform: none;
  }
}

/* --- O-0166: Contact location + faqPrompt structured trust cards -- */
/* Location text column gets warm routing-card frame.                */
/* faqPrompt inner box becomes a deliberate trust routing surface.   */

.cu-contact-location__grid > div {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-left: 3px solid rgba(20, 83, 45, 0.22);
  border-radius: 14px;
  padding: var(--cu-spacing-5) var(--cu-spacing-6);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-3);
}

.cu-contact-location__grid > div h2 {
  margin: 0;
}

.cu-contact-location__grid > div p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.7;
}

.cu-contact-faq {
  border-top: 1px solid rgba(20, 83, 45, 0.09);
}

.cu-contact-faq__inner {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-radius: 14px;
  padding: var(--cu-spacing-5) var(--cu-spacing-6);
  box-shadow: 0 6px 18px rgba(12, 48, 16, 0.05);
}

/* --- O-0167: About warm/documentary surface --------------------- */
/* Career: paper grain + warm border-top for documentary chapter.    */
/* Career/education logo frames: warm hairline backing.              */
/* Collaborators: warm field-lab card treatment.                     */

.cu-about-career {
  background-image: var(--cu-texture-paper-grain);
  background-color: rgba(251, 251, 248, 0.98);
  border-top: 1px solid rgba(100, 72, 36, 0.08);
}

.cu-about-career__item {
  border-top-width: 3px;
  border-top-color: rgba(100, 72, 36, 0.18);
  border-color: rgba(100, 72, 36, 0.1);
}

.cu-about-career__icon {
  background: rgba(255, 255, 255, 0.95);
  box-shadow:
    inset 0 0 0 1px rgba(100, 72, 36, 0.14),
    0 4px 12px rgba(12, 36, 12, 0.08);
}

.cu-about-education__item {
  border-top-width: 3px;
  border-top-color: rgba(100, 72, 36, 0.14);
  border-color: rgba(100, 72, 36, 0.1);
}

.cu-about-education__logo {
  background: rgba(255, 255, 255, 0.95);
  box-shadow:
    inset 0 0 0 1px rgba(100, 72, 36, 0.14),
    0 4px 10px rgba(12, 36, 12, 0.07);
}

.cu-about-collaborators__item {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-top: 3px solid rgba(20, 83, 45, 0.2);
  border-radius: 14px;
  padding: var(--cu-spacing-5);
  box-shadow: 0 8px 20px rgba(12, 36, 12, 0.05);
  display: flex;
  flex-direction: column;
  gap: var(--cu-spacing-2);
}

.cu-about-collaborators__item h3 {
  margin: 0;
  font-size: 1.1rem;
}

.cu-about-collaborators__item p {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.65;
}

/* --- O-0168: About calm scroll reveal + static impact stats ------ */
/* Career milestone items reveal on first scroll-in.                 */
/* renderAboutPage does not include renderAboutTimeline; career items */
/* serve the same documentary-timeline role and are targeted instead. */
/* Impact stats are explicitly static per O-0067 guardrail.         */

@keyframes cu-viz09-about-reveal {
  from {
    opacity: 0.82;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .cu-about-career__item {
      animation: cu-viz09-about-reveal linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 55%;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-about-career__item {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

.cu-about-impact .cu-stat {
  animation: none;
}

/* --- O-0169: FAQ trust surface — stable accordion + anchors ------ */
/* Chevron indicator via summary::after; rotates on [open].          */
/* Stronger focus-visible ring on summary and search input.          */
/* :target item highlight for anchor navigation.                     */
/* Fix: HTML renders h3 but prior CSS only targeted h4.              */

.cu-faq-item summary {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--cu-spacing-3);
}

.cu-faq-item summary::-webkit-details-marker {
  display: none;
}

.cu-faq-item summary::marker {
  content: "";
}

.cu-faq-item summary::after {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 0.55em;
  height: 0.55em;
  margin-top: 0.38em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--cu-motion-standard, 200ms) var(--cu-ease-standard, ease);
  opacity: 0.52;
  pointer-events: none;
  user-select: none;
}

.cu-faq-item[open] > summary::after {
  transform: rotate(225deg);
  opacity: 0.7;
}

.cu-faq-item summary:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 3px;
  border-radius: 6px;
}

.cu-faq-item[open] {
  background: var(--cu-color-surface-base);
  border: 1px solid rgba(20, 83, 45, 0.18);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.1);
}

.cu-faq-item:target {
  outline: 2px solid var(--cu-color-brand-primary);
  outline-offset: 3px;
}

.cu-faq-related__group h3 {
  font-size: 0.9rem;
  margin: 0 0 var(--cu-spacing-2) 0;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--cu-color-text-secondary);
}

.cu-faq-search__inputs input[type="search"]:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
  border-color: var(--cu-color-brand-primary);
}

@media (prefers-reduced-motion: reduce) {
  .cu-faq-item summary::after {
    transition: none;
  }
}

/* --- O-0170: Legal high-contrast, anchored, essentially motionless */
/* Replace lime-to-dark gradient with stable deep green.             */
/* Clear heading rhythm and strong anchors in legal body.            */
/* No decorative motion on legal pages.                              */

.cu-legal-hero {
  background: linear-gradient(
    135deg,
    rgba(14, 62, 36, 0.98) 0%,
    rgba(9, 40, 22, 0.98) 100%
  );
}

.cu-legal__content h2 {
  border-top: 1px solid rgba(20, 83, 45, 0.12);
  padding-top: var(--cu-spacing-6);
}

.cu-legal__content h2:first-child {
  border-top: none;
  padding-top: 0;
}

.cu-legal__content a {
  color: var(--cu-color-brand-primary-dark);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cu-legal__content a:hover,
.cu-legal__content a:focus-visible {
  color: var(--cu-color-brand-primary);
}

.cu-legal,
.cu-legal-hero {
  animation: none;
}

/* --- O-0171: 404/maintenance calm routing surfaces -------------- */
/* Resource section cards get routing trust-frame (top border).      */
/* Link styling: deliberate, focus-safe.                             */
/* Maintenance status block: warm amber signal.                      */

.cu-error-resources__section {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-top: 3px solid rgba(20, 83, 45, 0.22);
  box-shadow: 0 10px 28px rgba(12, 48, 16, 0.06);
}

.cu-error-resources__link {
  color: var(--cu-color-brand-primary-dark);
  font-weight: 600;
}

.cu-error-resources__link:hover,
.cu-error-resources__link:focus-visible {
  color: var(--cu-color-brand-primary);
  text-decoration: underline;
}

.cu-error-resources__link:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 2px;
  border-radius: 3px;
}

.cu-maintenance__status {
  border-left-color: rgba(100, 72, 36, 0.5);
  background: rgba(100, 72, 36, 0.06);
  color: rgba(48, 32, 12, 0.75);
}

/* --- O-0172: Course detail cross-link surfaces ------------------ */
/* Related section: paper grain + editorial border-top.              */
/* Group cards: evidence-frame treatment (warm top accent, white bg).*/
/* Link items: left-border evidence-panel (mirrors O-0160 service). */
/* Deferred: Technology pipeline cross-links need new URL text.      */

.cu-course-related {
  background-image: var(--cu-texture-paper-grain);
  background-color: rgba(251, 251, 248, 0.98);
  border-top: 1px solid rgba(100, 72, 36, 0.08);
}

.cu-course-related__group {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-top: 3px solid rgba(20, 83, 45, 0.2);
  box-shadow: 0 6px 18px rgba(12, 36, 12, 0.05);
}

.cu-course-related__links li {
  border-left: 2px solid rgba(20, 83, 45, 0.18);
  background: rgba(255, 255, 255, 0.88);
  border-radius: 0 10px 10px 0;
  padding: var(--cu-spacing-2) var(--cu-spacing-3);
}

/* ================================================================
   VIZ-10 — STATE POLISH
   O-0182 FAQ · O-0183 Contact · O-0184 Portfolio · O-0185 Services
   O-0186 Native details / accordion open + focus
   ================================================================ */

/* O-0182 FAQ search states ------------------------------------- */

[data-faq-search-section][data-faq-active] .cu-faq-search__inputs input[type="search"] {
  border-color: var(--cu-color-brand-primary);
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.cu-faq-search__reset {
  opacity: 0.38;
  pointer-events: none;
  transition:
    opacity var(--cu-motion-base) var(--cu-motion-ease),
    background var(--cu-motion-base) var(--cu-motion-ease);
}

[data-faq-search-section][data-faq-active] .cu-faq-search__reset {
  opacity: 1;
  pointer-events: auto;
}

.cu-faq-categories[data-faq-no-results] {
  opacity: 0.4;
  transition: opacity var(--cu-motion-base) var(--cu-motion-ease);
}

/* O-0183 Contact submitting / success / error ----------------- */

.cu-contact-form__actions button[aria-busy="true"] {
  opacity: 0.68;
  cursor: wait;
}

[data-contact-success]:not([hidden]) {
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  border-radius: var(--cu-radius-sm);
  background: rgba(20, 83, 45, 0.07);
  border: 1px solid rgba(20, 83, 45, 0.2);
  color: var(--cu-color-status-live);
  font-weight: 600;
  text-align: left;
}

[data-contact-error]:not([hidden]) {
  padding: var(--cu-spacing-3) var(--cu-spacing-4);
  border-radius: var(--cu-radius-sm);
  background: rgba(192, 57, 43, 0.07);
  border: 1px solid rgba(192, 57, 43, 0.22);
  color: #C0392B;
  font-weight: 600;
  text-align: left;
}

/* O-0184 Portfolio empty state + count ------------------------ */

.cu-portfolio-empty:not([hidden]) {
  padding: var(--cu-spacing-6) var(--cu-spacing-5);
  border: 1px solid var(--cu-border-card);
  border-radius: var(--cu-radius-md);
  background: var(--cu-color-surface-muted);
  text-align: center;
}

.cu-portfolio-count,
[data-portfolio-count] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

[data-portfolio-count][data-visible-count="0"] {
  color: var(--cu-color-text-tertiary);
}

/* O-0185 Services count tabular numerals + calm update -------- */

.svc-count {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

@keyframes cu-count-update {
  from { opacity: 0.5; }
  to   { opacity: 1; }
}

.svc-count.is-updating {
  animation: cu-count-update var(--cu-motion-fast) var(--cu-motion-ease) forwards;
}

/* O-0186 Native details open + focus state -------------------- */

/* FAQ accordion item: open state */
.cu-faq-item[open] {
  background: var(--cu-color-surface-base);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
  border-left: 3px solid var(--cu-color-brand-primary);
}

/* FAQ accordion item: chevron indicator */
.cu-faq-item > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--cu-spacing-3);
  list-style: none;
}

.cu-faq-item > summary::-webkit-details-marker {
  display: none;
}

.cu-faq-item > summary::marker {
  content: "";
}

.cu-faq-item > summary::after {
  content: '\25BE';
  font-size: 0.82rem;
  flex-shrink: 0;
  color: var(--cu-color-text-tertiary);
  transform: rotate(-90deg);
  transition: transform var(--cu-motion-base) var(--cu-motion-ease), color var(--cu-motion-base) var(--cu-motion-ease);
  display: inline-block;
}

.cu-faq-item[open] > summary::after {
  transform: rotate(0deg);
  color: var(--cu-color-brand-primary);
}

/* Technology card details: open state */
.cu-technology-card__details[open] > summary {
  color: var(--cu-color-brand-primary-dark);
}

.cu-technology-card__details > summary::after {
  content: ' \25BE';
  font-size: 0.7rem;
  display: inline-block;
  transition: transform var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-technology-card__details[open] > summary::after {
  transform: rotate(180deg);
}

/* Service related details: open state */
.cu-service-related details[open] {
  border-left: 2px solid rgba(20, 83, 45, 0.22);
}

.cu-service-related > details > summary::after {
  content: ' \25BE';
  font-size: 0.82rem;
  display: inline-block;
  transition: transform var(--cu-motion-base) var(--cu-motion-ease);
  color: var(--cu-color-text-tertiary);
}

.cu-service-related > details[open] > summary::after {
  transform: rotate(180deg);
  color: var(--cu-color-brand-primary);
}

/* Service detail accordion: open state */
.cu-accordion > details[open] {
  border-color: rgba(20, 83, 45, 0.28);
  border-left: 3px solid var(--cu-color-brand-primary);
}

.cu-accordion > details > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--cu-spacing-3);
  list-style: none;
}

.cu-accordion > details > summary::-webkit-details-marker {
  display: none;
}

.cu-accordion > details > summary::marker {
  content: "";
}

.cu-accordion > details > summary::after {
  content: '\25BE';
  font-size: 0.82rem;
  flex-shrink: 0;
  color: var(--cu-color-text-tertiary);
  transform: rotate(-90deg);
  transition: transform var(--cu-motion-base) var(--cu-motion-ease), color var(--cu-motion-base) var(--cu-motion-ease);
  display: inline-block;
}

.cu-accordion > details[open] > summary::after {
  transform: rotate(0deg);
  color: var(--cu-color-brand-primary);
}

/* Reduced motion: no transitions / animations in VIZ-10 block */
@media (prefers-reduced-motion: reduce) {
  .cu-faq-search__reset,
  .cu-faq-categories[data-faq-no-results],
  .cu-faq-item > summary::after,
  .cu-faq-item[open] > summary::after,
  .cu-technology-card__details > summary::after,
  .cu-technology-card__details[open] > summary::after,
  .cu-service-related > details > summary::after,
  .cu-service-related > details[open] > summary::after,
  .cu-accordion > details > summary::after,
  .cu-accordion > details[open] > summary::after {
    transition: none;
  }

  .svc-count.is-updating {
    animation: none;
  }
}

/* Forced colours: ensure feedback boxes use system colours */
@media (forced-colors: active) {
  [data-contact-success]:not([hidden]),
  [data-contact-error]:not([hidden]) {
    border: 1px solid ButtonText;
    background: Canvas;
    color: CanvasText;
  }

  .cu-portfolio-empty:not([hidden]) {
    border: 1px solid ButtonText;
    background: Canvas;
  }
}

/* ================================================================
   VIZ-10 REMAINING POLISH — O-0173..O-0181 · O-0187..O-0190
   Completes the local-states-and-polish slice started above.
   (O-0182 through O-0186 implemented in the preceding section.)
   ================================================================ */

/* O-0173 — Evidence/media captions as figure labels
   Applies to existing figcaption elements in evidence media contexts.
   No caption text is changed; styling only. */

.cu-portfolio-project-gallery figcaption,
.cu-contact-location figcaption,
.cu-hero-intro__media figcaption,
.cu-research-project__media figcaption {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--cu-color-text-tertiary);
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

/* Portfolio gallery figcaption: add hairline to visually separate from image */
.cu-portfolio-project-gallery figcaption {
  border-top: 1px solid rgba(20, 83, 45, 0.1);
  padding-top: var(--cu-spacing-2);
  margin-top: 0;
  text-align: left;
}

/* Portfolio card caption already italic — reinforce figure-label weight */
.cu-portfolio-card__caption {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* O-0174 — Image lazy-loading audit
   All non-critical images carry loading="lazy" decoding="async".
   Fixed: contact map static image and error illustration were missing these
   attributes — both now carry loading="lazy" decoding="async" in build-site.js.
   The logo correctly uses loading="eager" (above-the-fold LCP image).
   Add aspect-ratio to research project media to prevent layout shift;
   other evidence containers already have aspect-ratio or explicit height. */

.cu-research-project__media {
  aspect-ratio: 4 / 3;
}

/* O-0175 — Subtle image hover scale inside clickable evidence card frames
   Applies only to portfolio cards with linked case destinations.
   Container already has overflow: hidden so the scaled image is clipped.
   No tilt, rotation, parallax, or non-clickable image zoom.
   Base transition is set on .cu-portfolio-card__media img so hover-out
   is also smooth (browser uses the exiting state's transition). */

@media (hover: hover) {
  .cu-portfolio-card:hover .cu-portfolio-card__media img,
  .cu-portfolio-card:focus-within .cu-portfolio-card__media img {
    transform: scale(1.045);
  }
}

/* Reduced-motion: no transform animation at all */
@media (prefers-reduced-motion: reduce) {
  .cu-portfolio-card .cu-portfolio-card__media img {
    transition: none;
    transform: none;
  }
}

/* O-0176 — Status chip consolidation
   The cu-status-chip--review border was set to an amber/brown tint
   (rgba(107,78,22,0.24)) inconsistent with the slate text and background.
   Correct to slate to match the rest of the review chip system. */

.cu-status-chip--review {
  border-color: rgba(51, 65, 85, 0.22);
}

/* O-0177 — Expert-review node treatment: ALREADY SATISFIED
   cu-technology-flow__item--review uses slate (#334155, rgba(51,65,85))
   throughout. No amber or warning colors present in that rule block.
   Source evidence: border rgba(51,65,85,0.34), color --cu-color-status-review.
   No additional changes required. */

/* O-0178 — Technology Input/Output/kicker tags folded into two-role chip grammar
   The default cu-technology-list-card__tag uses green for both columns.
   Differentiate: input → teal/technical accent; output → brand green (explicit).
   This merges into the existing teal+green grammar, not a separate system. */

.cu-technology-list-card--input .cu-technology-list-card__tag {
  background: rgba(14, 116, 144, 0.08);
  border-color: rgba(14, 116, 144, 0.22);
  color: var(--cu-color-technical-accent);
}

/* Output tag uses brand green; make explicit so both roles are declared */
.cu-technology-list-card--output .cu-technology-list-card__tag {
  background: rgba(20, 83, 45, 0.06);
  border-color: rgba(20, 83, 45, 0.18);
  color: var(--cu-color-brand-primary);
}

/* O-0179 — Services group headers: ALREADY SATISFIED
   All 5 service groups have meaningful headings read from pages-services.json:
   "Farm Development & Operations" · "Design & Technical" ·
   "Operations & Post-Harvest" · "Market & Investment Support" ·
   "Training & Extras". No "Group N" placeholder labels are present.
   Source evidence: data-group attribute in rendered HTML uses group.heading.
   No source changes required. */

/* O-0180 — Header active state: deliberate marker, not color-only
   Desktop (.cu-header__nav a.is-current): color + ::after underline — OK ✓
   Mobile (.cu-header__menu-nav a.is-current): only had color + background.
   Add a left-border indicator and font-weight bump for parity. */

.cu-header__menu-nav a.is-current {
  font-weight: 800;
  position: relative;
}

/* Left border — matches the underline convention used on desktop */
.cu-header__menu-nav a.is-current::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 3px;
  background: var(--cu-color-brand-primary);
  border-radius: 0 2px 2px 0;
}

/* O-0181 — Footer sitemap grouping more scannable and bilingual
   Using existing text only; no new labels; no mega-footer.
   Section headings become small-caps-style labels (uppercase, tracked, dimmed)
   so they read as group separators, not headings that compete with content.
   EN and FR labels are already driven by navigation.json. */

/* Small label style for footer section headings */
.cu-footer__grid h3 {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(233, 242, 236, 0.55);
  margin-bottom: var(--cu-spacing-4);
}

@media (min-width: 1025px) {
  .cu-footer__links {
    padding-left: var(--cu-spacing-6);
  }
}

/* Slightly tighter link list so the sitemap is visually compact */
.cu-footer__links-columns ul li,
.cu-footer__links > ul li {
  line-height: 1.4;
}

/* O-0187 — Direct anchor/hash alignment: ALREADY SATISFIED
   [data-technology-section] has scroll-margin-top with the exact combined
   offset: header height + section-nav height + 1rem (desktop) and the
   mobile variant. Both are driven by CSS custom properties.
   Source evidence: lines defining --cu-technology-anchor-offset and applied
   via .cu-technology-page [data-technology-section]. No changes needed. */

/* O-0188 — Technology scrollspy: ALREADY SATISFIED
   technology.js uses IntersectionObserver (with rootMargin, threshold array)
   and falls back to a requestAnimationFrame + scroll event listener only when
   IO is absent. No permanent polling timer (setInterval) is used.
   No changes required. */

/* O-0189 — Guard comments for editorial-count-dependent layouts
   Comments added to:
   - .cu-technology-ai-workflows .cu-grid (3-column guard, near line 1114)
   - .cu-technology-ai-workflows .cu-technology-card:not(:nth-child(3n))::after
     (connector guard, above)
   - renderTechnologyAiWorkflows() in build-site.js (JS guard comment)
   No additional CSS changes required here. */

/* O-0190 — JSON formatting: NO JSON EDITS IN THIS SLICE
   All changes in this slice are CSS-only and build-site.js comment-only.
   No data/pages-*.json files were modified. */

/* Forced-colors: image hover scale collapses gracefully in HC mode */
@media (forced-colors: active) {
  .cu-portfolio-card .cu-portfolio-card__media img {
    transition: none;
    transform: none;
  }
}

/* -----------------------------------------------------------------
   WSVT-01: whole-site page-family frame.
   Source-only visual layer; no public text or pseudo-text is added.
   ----------------------------------------------------------------- */

.cu-page {
  --cu-family-accent: var(--cu-color-brand-primary-dark);
  --cu-family-accent-soft: rgba(20, 83, 45, 0.12);
  --cu-family-border: rgba(20, 83, 45, 0.2);
  --cu-family-surface: #f8faf7;
  --cu-family-surface-strong: #eef5ef;
  --cu-family-ink: var(--cu-color-text-primary);
  --cu-family-grid: rgba(20, 83, 45, 0.1);
}

.cu-page--instrument {
  --cu-family-accent: #0e7490;
  --cu-family-accent-soft: rgba(14, 116, 144, 0.13);
  --cu-family-border: rgba(14, 116, 144, 0.24);
  --cu-family-surface: #f3f9fa;
  --cu-family-surface-strong: #e4f2f4;
  --cu-family-grid: rgba(14, 116, 144, 0.12);
}

.cu-page--evidence,
.cu-page--evidence-detail {
  --cu-family-accent: #256f3a;
  --cu-family-accent-soft: rgba(37, 111, 58, 0.13);
  --cu-family-border: rgba(37, 111, 58, 0.24);
  --cu-family-surface: #f6faf2;
  --cu-family-surface-strong: #edf6e6;
  --cu-family-grid: rgba(37, 111, 58, 0.12);
}

.cu-page--method,
.cu-page--method-detail {
  --cu-family-accent: #334155;
  --cu-family-accent-soft: rgba(51, 65, 85, 0.12);
  --cu-family-border: rgba(51, 65, 85, 0.22);
  --cu-family-surface: #f6f7f5;
  --cu-family-surface-strong: #ecefed;
  --cu-family-grid: rgba(51, 65, 85, 0.12);
}

.cu-page--research {
  --cu-family-accent: #475569;
  --cu-family-accent-soft: rgba(71, 85, 105, 0.12);
  --cu-family-border: rgba(71, 85, 105, 0.24);
  --cu-family-surface: #f7f7f2;
  --cu-family-surface-strong: #eeeede;
  --cu-family-grid: rgba(71, 85, 105, 0.11);
}

.cu-page--routing {
  --cu-family-accent: #166534;
  --cu-family-accent-soft: rgba(22, 101, 52, 0.14);
  --cu-family-border: rgba(22, 101, 52, 0.26);
  --cu-family-surface: #f5faf6;
  --cu-family-surface-strong: #eaf4ec;
  --cu-family-grid: rgba(22, 101, 52, 0.12);
}

.cu-page--syllabus,
.cu-page--syllabus-detail {
  --cu-family-accent: #3f6212;
  --cu-family-accent-soft: rgba(63, 98, 18, 0.12);
  --cu-family-border: rgba(63, 98, 18, 0.23);
  --cu-family-surface: #f8faf1;
  --cu-family-surface-strong: #eef4dc;
  --cu-family-grid: rgba(63, 98, 18, 0.11);
}

.cu-page--dossier {
  --cu-family-accent: #14532d;
  --cu-family-accent-soft: rgba(20, 83, 45, 0.11);
  --cu-family-border: rgba(20, 83, 45, 0.23);
  --cu-family-surface: #faf8f2;
  --cu-family-surface-strong: #f0eadc;
  --cu-family-grid: rgba(20, 83, 45, 0.1);
}

.cu-page--trust {
  --cu-family-accent: #0f766e;
  --cu-family-accent-soft: rgba(15, 118, 110, 0.12);
  --cu-family-border: rgba(15, 118, 110, 0.23);
  --cu-family-surface: #f4faf8;
  --cu-family-surface-strong: #e5f4f1;
  --cu-family-grid: rgba(15, 118, 110, 0.11);
}

.cu-page--document,
.cu-page--system {
  --cu-family-accent: #24412d;
  --cu-family-accent-soft: rgba(36, 65, 45, 0.11);
  --cu-family-border: rgba(36, 65, 45, 0.23);
  --cu-family-surface: #f8f8f4;
  --cu-family-surface-strong: #eceee6;
  --cu-family-grid: rgba(36, 65, 45, 0.1);
}

.cu-page main {
  background:
    linear-gradient(90deg, rgba(20, 83, 45, 0.035) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(180deg, rgba(20, 83, 45, 0.025) 1px, transparent 1px) 0 0 / 96px 96px,
    var(--cu-color-surface-base);
}

.cu-page :is(
  .cu-hero,
  .cu-services-hero,
  .cu-technology-hero,
  .cu-portfolio-hero,
  .cu-research-hero,
  .cu-contact-hero,
  .cu-about-hero,
  .cu-faq-hero,
  .cu-courses-hero,
  .cu-service-hero,
  .cu-portfolio-project-hero,
  .cu-course-hero,
  .cu-legal-hero,
  .cu-error
) {
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid var(--cu-family-border);
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.28);
}

.cu-page :is(
  .cu-hero,
  .cu-services-hero,
  .cu-technology-hero,
  .cu-portfolio-hero,
  .cu-research-hero,
  .cu-contact-hero,
  .cu-about-hero,
  .cu-faq-hero,
  .cu-courses-hero,
  .cu-service-hero,
  .cu-portfolio-project-hero,
  .cu-course-hero,
  .cu-legal-hero,
  .cu-error
) > .cu-container {
  position: relative;
}

.cu-page :is(
  .cu-hero,
  .cu-services-hero,
  .cu-technology-hero,
  .cu-portfolio-hero,
  .cu-research-hero,
  .cu-contact-hero,
  .cu-about-hero,
  .cu-faq-hero,
  .cu-courses-hero,
  .cu-service-hero,
  .cu-portfolio-project-hero,
  .cu-course-hero,
  .cu-legal-hero,
  .cu-error
) > .cu-container::before {
  content: "";
  position: absolute;
  top: clamp(2rem, 18vh, 7rem);
  bottom: clamp(2rem, 18vh, 7rem);
  left: 0;
  width: 3px;
  border-radius: var(--cu-radius-pill);
  background: linear-gradient(180deg, transparent, var(--cu-family-accent), transparent);
  opacity: 0.72;
  pointer-events: none;
}

.cu-page :is(
  .cu-hero,
  .cu-services-hero,
  .cu-technology-hero,
  .cu-portfolio-hero,
  .cu-research-hero,
  .cu-contact-hero,
  .cu-about-hero,
  .cu-faq-hero,
  .cu-courses-hero,
  .cu-service-hero,
  .cu-portfolio-project-hero,
  .cu-course-hero,
  .cu-legal-hero,
  .cu-error
) h1 {
  text-wrap: balance;
}

.cu-page--field-report .cu-hero::after {
  background:
    linear-gradient(90deg, rgba(8, 32, 18, 0.86) 0%, rgba(20, 83, 45, 0.62) 54%, rgba(8, 32, 18, 0.28) 100%),
    radial-gradient(circle at 82% 24%, rgba(255, 255, 255, 0.16), transparent 32%);
}

.cu-page--field-report .cu-hero {
  padding-block: clamp(4.75rem, 8vw, 6.25rem);
  min-height: clamp(560px, 74vh, 720px);
}

.cu-page--field-report .cu-hero__copy {
  max-width: min(840px, 100%);
  margin-left: 0;
  margin-right: auto;
  padding-left: clamp(1.25rem, 3vw, 2rem);
  text-align: left;
  border-left: 1px solid rgba(255, 255, 255, 0.34);
}

.cu-page--field-report .cu-hero__copy h1 {
  font-size: clamp(2.35rem, 4.15vw, 3.85rem);
  line-height: 1.12;
  letter-spacing: 0;
}

.cu-page--field-report .cu-hero__ctas {
  justify-content: flex-start;
}

.cu-page--instrument .cu-technology-hero::after,
.cu-page--method .cu-services-hero::after,
.cu-page--method-detail .cu-service-hero::after {
  background:
    linear-gradient(120deg, rgba(6, 24, 28, 0.9), rgba(14, 80, 84, 0.72)),
    linear-gradient(90deg, var(--cu-family-grid) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(180deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px) 0 0 / 56px 56px;
}

.cu-page--instrument .cu-technology-hero > .cu-container,
.cu-page--method .cu-services-hero > .cu-container,
.cu-page--method-detail .cu-service-hero > .cu-container {
  align-items: flex-start;
  text-align: left;
}

.cu-page--instrument .cu-technology-hero h1,
.cu-page--method .cu-services-hero h1,
.cu-page--method-detail .cu-service-hero__inner h1 {
  max-width: 850px;
}

.cu-page--instrument .cu-technology-hero p,
.cu-page--method .cu-services-hero p {
  max-width: 760px;
}

.cu-page--instrument .cu-technology-hero .cu-hero__ctas,
.cu-page--method .cu-services-hero .cu-hero__ctas,
.cu-page--method-detail .cu-service-hero .cu-hero__ctas {
  justify-content: flex-start;
}

.cu-page--evidence .cu-portfolio-hero::after {
  background:
    linear-gradient(115deg, rgba(9, 40, 22, 0.86), rgba(37, 111, 58, 0.7)),
    radial-gradient(circle at 86% 18%, rgba(255, 255, 255, 0.2), transparent 30%);
}

.cu-page--evidence .cu-portfolio-hero__content,
.cu-page--evidence-detail .cu-portfolio-project-hero__inner {
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-left: 4px solid rgba(255, 255, 255, 0.66);
  background: rgba(4, 18, 10, 0.26);
  box-shadow: 0 24px 56px rgba(5, 28, 14, 0.22);
  text-align: left;
}

.cu-page--evidence .cu-portfolio-hero__content {
  margin-left: 0;
  margin-right: auto;
}

.cu-page--evidence .cu-portfolio-hero .cu-hero__ctas,
.cu-page--evidence-detail .cu-portfolio-project-hero .cu-hero__ctas {
  justify-content: flex-start;
}

.cu-page--research .cu-research-hero::after {
  background:
    linear-gradient(105deg, rgba(14, 29, 41, 0.82), rgba(40, 57, 52, 0.7)),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 1px, transparent 1px) 0 0 / 100% 42px;
}

.cu-page--research .cu-research-hero__copy {
  max-width: 820px;
  margin-left: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-top: 4px solid rgba(255, 255, 255, 0.5);
  background: rgba(5, 16, 22, 0.22);
  text-align: left;
}

.cu-page--research .cu-research-hero .cu-hero__ctas {
  justify-content: flex-start;
}

.cu-page--routing .cu-contact-hero {
  background:
    linear-gradient(135deg, rgba(9, 43, 24, 0.94), rgba(22, 101, 52, 0.8)),
    radial-gradient(circle at 80% 22%, rgba(255, 255, 255, 0.16), transparent 32%);
}

.cu-page--routing .cu-contact-hero__inner {
  max-width: 820px;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0;
  background: rgba(4, 22, 12, 0.18);
}

html[lang="fr"] .cu-page--routing .cu-contact-hero {
  height: auto;
  min-height: max(var(--cu-hero-height), 680px);
  padding-block: clamp(6.5rem, 11vw, 9rem);
}

html[lang="fr"] .cu-page--routing .cu-contact-hero__inner {
  max-width: min(980px, calc(100% - 2rem));
  padding: clamp(1.75rem, 4vw, 3rem);
  gap: clamp(1rem, 2vw, 1.4rem);
}

html[lang="fr"] .cu-page--routing .cu-contact-hero__inner h1 {
  font-size: clamp(2rem, 4.4vw, 2.75rem);
  text-wrap: balance;
}

html[lang="fr"] .cu-page--routing .cu-contact-hero__inner p {
  max-width: 76ch;
}

.cu-page--dossier .cu-about-hero,
.cu-page--syllabus .cu-courses-hero,
.cu-page--trust .cu-faq-hero,
.cu-page--document .cu-legal-hero,
.cu-page--system .cu-error {
  background:
    linear-gradient(135deg, var(--cu-family-surface) 0%, var(--cu-family-surface-strong) 100%),
    linear-gradient(90deg, var(--cu-family-grid) 1px, transparent 1px) 0 0 / 72px 72px;
  color: var(--cu-family-ink);
}

.cu-page--document .cu-legal-hero {
  color: var(--cu-color-text-inverse);
  background:
    linear-gradient(135deg, rgba(9, 40, 22, 0.98), rgba(36, 65, 45, 0.92)),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px) 0 0 / 72px 72px;
}

.cu-page--dossier .cu-about-hero__inner,
.cu-page--syllabus .cu-courses-hero .cu-container,
.cu-page--trust .cu-faq-hero > .cu-container,
.cu-page--system .cu-error__content {
  border-top: 4px solid var(--cu-family-accent);
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 20px 56px rgba(12, 36, 12, 0.08);
}

.cu-page--syllabus .cu-courses-hero--has-media .cu-button--ghost {
  border-color: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-brand-primary-dark);
  background: rgba(255, 255, 255, 0.72);
}

.cu-page--syllabus .cu-courses-hero--has-media .cu-button--ghost:hover,
.cu-page--syllabus .cu-courses-hero--has-media .cu-button--ghost:focus-visible {
  background: var(--cu-color-brand-primary-dark);
  color: var(--cu-color-text-inverse);
}

.cu-page--dossier .cu-about-hero__inner {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.cu-page--syllabus .cu-courses-hero .cu-container,
.cu-page--trust .cu-faq-hero > .cu-container,
.cu-page--system .cu-error__content {
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

html[lang="fr"] .cu-page--syllabus .cu-courses-hero {
  height: auto;
  min-height: max(var(--cu-hero-height), 760px);
  padding-block: clamp(6rem, 10vw, 8.5rem);
}

html[lang="fr"] .cu-page--syllabus .cu-courses-hero .cu-container {
  max-width: min(1040px, calc(100% - 2rem));
  height: auto;
  min-height: 0;
  padding: clamp(2rem, 4vw, 3.2rem);
  gap: clamp(1rem, 2vw, 1.45rem);
}

html[lang="fr"] .cu-page--syllabus .cu-courses-hero .cu-container h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  text-wrap: balance;
}

html[lang="fr"] .cu-page--syllabus .cu-courses-hero .cu-container p {
  max-width: 84ch;
}

.cu-page--syllabus-detail .cu-course-hero__inner > div {
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-top: 4px solid rgba(255, 255, 255, 0.7);
  background: rgba(5, 20, 15, 0.2);
}

.cu-page--method-detail .cu-service-hero__inner {
  border-left: 4px solid rgba(255, 255, 255, 0.64);
}

.cu-header {
  border-bottom: 1px solid rgba(20, 83, 45, 0.16);
  box-shadow: 0 12px 34px rgba(12, 36, 12, 0.06);
}

.cu-header__nav a,
.cu-header__menu-nav a {
  position: relative;
}

.cu-header__nav a.is-current {
  color: var(--cu-color-brand-primary-dark);
}

.cu-header__nav a.is-current::after {
  content: "";
  position: absolute;
  left: 0.45rem;
  right: 0.45rem;
  bottom: -0.45rem;
  height: 2px;
  border-radius: var(--cu-radius-pill);
  background: currentColor;
}

.cu-footer {
  background:
    linear-gradient(135deg, #071609 0%, #0b1a0b 54%, #102612 100%),
    linear-gradient(90deg, rgba(233, 242, 236, 0.06) 1px, transparent 1px) 0 0 / 84px 84px;
}

.cu-footer__grid {
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(233, 242, 236, 0.14);
  background: rgba(255, 255, 255, 0.025);
}

.cu-footer__grid > section {
  border-top: 2px solid rgba(233, 242, 236, 0.13);
  padding-top: var(--cu-spacing-4);
}

.cu-footer__links-columns a,
.cu-footer__contact-link,
.cu-footer__social a {
  text-underline-offset: 0.24em;
}

.cu-page--field-report .cu-home-technology {
  background:
    linear-gradient(180deg, rgba(14, 116, 144, 0.08), rgba(255, 255, 255, 0.96)),
    linear-gradient(90deg, rgba(14, 116, 144, 0.1) 1px, transparent 1px) 0 0 / 72px 72px;
}

.cu-page--field-report .cu-services-snapshot:not(.cu-home-technology) {
  background:
    linear-gradient(180deg, rgba(51, 65, 85, 0.07), rgba(255, 255, 255, 0.98)),
    linear-gradient(90deg, rgba(51, 65, 85, 0.08) 1px, transparent 1px) 0 0 / 72px 72px;
}

.cu-page--field-report .cu-services-snapshot:not(.cu-home-technology) .cu-card,
.cu-page--field-report .cu-courses-teaser .cu-card {
  border-top: 3px solid var(--cu-family-accent);
}

.cu-page--field-report .cu-portfolio-highlight__frame,
.cu-page--field-report .cu-region-strip__frame {
  border-left: 4px solid var(--cu-color-brand-primary-dark);
}

.cu-page--field-report .cu-about-teaser .cu-container,
.cu-page--field-report .cu-faq-teaser .cu-container,
.cu-page--field-report .cu-courses-teaser .cu-container {
  position: relative;
}

.cu-page--field-report .cu-about-teaser .cu-container::before,
.cu-page--field-report .cu-faq-teaser .cu-container::before,
.cu-page--field-report .cu-courses-teaser .cu-container::before {
  content: "";
  display: block;
  width: min(100%, 18rem);
  height: 3px;
  margin-bottom: var(--cu-spacing-6);
  border-radius: var(--cu-radius-pill);
  background: linear-gradient(90deg, var(--cu-color-brand-primary-dark), transparent);
}

.cu-page--field-report .cu-contact-cta__inner {
  padding: clamp(1.75rem, 4vw, 3rem);
  border: 1px solid rgba(233, 242, 236, 0.22);
  border-radius: var(--cu-radius-xl);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(233, 242, 236, 0.88)),
    linear-gradient(90deg, rgba(20, 83, 45, 0.08) 1px, transparent 1px) 0 0 / 64px 64px;
  box-shadow: 0 28px 70px rgba(10, 31, 10, 0.18);
}

@media (max-width: 720px) {
  .cu-page :is(
    .cu-hero,
    .cu-services-hero,
    .cu-technology-hero,
    .cu-portfolio-hero,
    .cu-research-hero,
    .cu-contact-hero,
    .cu-about-hero,
    .cu-faq-hero,
    .cu-courses-hero,
    .cu-service-hero,
    .cu-portfolio-project-hero,
    .cu-course-hero,
    .cu-legal-hero,
    .cu-error
  ) > .cu-container::before {
    top: 1rem;
    bottom: auto;
    left: var(--cu-spacing-3);
    width: clamp(5rem, 28vw, 9rem);
    height: 3px;
    background: linear-gradient(90deg, var(--cu-family-accent), transparent);
  }

  .cu-page--field-report .cu-hero__copy,
  .cu-page--research .cu-research-hero__copy {
    padding-left: 0;
    border-left: none;
    text-align: center;
  }

  .cu-page--field-report .cu-hero {
    padding-block: clamp(2.4rem, 9vw, 3.2rem);
    min-height: auto;
  }

  .cu-page--field-report .cu-hero__copy h1 {
    font-size: clamp(1.85rem, 8vw, 2.1rem);
    line-height: 1.12;
  }

  .cu-page--field-report .cu-hero__paragraphs {
    gap: var(--cu-spacing-3);
    margin-bottom: var(--cu-spacing-4);
  }

  .cu-page--field-report .cu-hero__paragraphs p {
    font-size: 0.98rem;
    line-height: 1.55;
  }

  .cu-page--field-report .cu-hero__ctas,
  .cu-page--instrument .cu-technology-hero .cu-hero__ctas,
  .cu-page--method .cu-services-hero .cu-hero__ctas,
  .cu-page--method-detail .cu-service-hero .cu-hero__ctas,
  .cu-page--evidence .cu-portfolio-hero .cu-hero__ctas,
  .cu-page--evidence-detail .cu-portfolio-project-hero .cu-hero__ctas,
  .cu-page--research .cu-research-hero .cu-hero__ctas {
    justify-content: center;
  }
}

/* WSVT-02: evidence, media, and specimen grammar spread */
.cu-media-figure {
  position: relative;
  border: 1px solid rgba(20, 83, 45, 0.16);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(243, 250, 246, 0.86)),
    var(--cu-color-surface-base);
  box-shadow:
    0 22px 48px rgba(12, 36, 12, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.cu-media-figure--proof {
  border-color: rgba(20, 83, 45, 0.24);
}

.cu-media-figure--research {
  border-color: rgba(51, 65, 85, 0.2);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(241, 245, 249, 0.9)),
    var(--cu-color-surface-base);
}

.cu-media-figure--service {
  border-color: rgba(14, 116, 144, 0.18);
}

.cu-media-figure--dossier,
.cu-media-figure--logo {
  border-color: rgba(51, 65, 85, 0.14);
}

.cu-evidence-placard {
  display: grid;
  grid-template-columns: clamp(5.25rem, 18vw, 7rem) minmax(0, 1fr);
  gap: var(--cu-spacing-4);
  align-items: stretch;
  min-height: 100%;
  padding: var(--cu-spacing-3);
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-left: 4px solid rgba(20, 83, 45, 0.72);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(244, 250, 246, 0.93)),
    var(--cu-color-surface-base);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 18px 40px rgba(12, 36, 12, 0.09);
  transition:
    transform var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-evidence-placard:hover,
.cu-evidence-placard:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(20, 83, 45, 0.3);
  box-shadow: 0 24px 52px rgba(12, 36, 12, 0.14);
}

.cu-evidence-placard:focus-visible {
  outline: 3px solid rgba(20, 83, 45, 0.28);
  outline-offset: 3px;
}

.cu-evidence-placard__media {
  overflow: hidden;
  border-radius: 13px;
  background: rgba(233, 242, 236, 0.8);
  min-height: 100%;
}

.cu-evidence-placard__media picture,
.cu-evidence-placard__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.cu-evidence-placard__media img {
  object-fit: cover;
  transition: transform var(--cu-motion-slow) var(--cu-motion-ease);
}

.cu-evidence-placard:hover .cu-evidence-placard__media img,
.cu-evidence-placard:focus-visible .cu-evidence-placard__media img {
  transform: scale(1.035);
}

.cu-evidence-placard__body {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  align-content: start;
}

.cu-evidence-placard__accession {
  justify-self: start;
  border-radius: var(--cu-radius-pill);
  background: rgba(20, 83, 45, 0.1);
  color: var(--cu-color-brand-primary-dark);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  padding: 0.36rem 0.52rem;
}

.cu-evidence-placard__location {
  margin: 0;
  color: var(--cu-color-text-tertiary);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
}

.cu-evidence-placard h4 {
  margin: 0;
  color: var(--cu-color-brand-primary-dark);
  font-family: var(--cu-font-heading);
  font-size: 1.02rem;
  line-height: 1.25;
}

.cu-evidence-placard__summary {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--cu-color-text-secondary);
  font-size: 0.88rem;
  line-height: 1.45;
}

.cu-evidence-placard__baseline {
  margin: 0;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(20, 83, 45, 0.12);
  color: var(--cu-color-text-secondary);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.35;
}

.cu-evidence-placard__chips {
  margin-top: 0.1rem;
}

.cu-service-related__projects-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-4);
}

.cu-service-related__projects-list > li {
  margin: 0;
}

.cu-service-evidence-placard--fallback,
.cu-course-evidence-placard--fallback {
  display: block;
  padding: var(--cu-spacing-4);
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-left: 4px solid rgba(20, 83, 45, 0.54);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--cu-color-text-secondary);
  font-weight: 720;
}

.cu-course-related__group--portfolio .cu-course-related__links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--cu-spacing-4);
}

.cu-course-related__group--portfolio .cu-course-related__links > li {
  display: block;
}

.cu-course-evidence-placard {
  border-left-color: rgba(14, 116, 144, 0.68);
}

.cu-course-evidence-placard .cu-evidence-placard__accession {
  background: rgba(14, 116, 144, 0.1);
  color: #0f5e6c;
}

.cu-courses-proof {
  background:
    linear-gradient(180deg, rgba(239, 246, 242, 0.9), rgba(255, 255, 255, 0.96)),
    linear-gradient(90deg, rgba(20, 83, 45, 0.08) 1px, transparent 1px) 0 0 / 76px 76px;
}

.cu-courses-proof .cu-stat-strip__grid {
  align-items: stretch;
}

.cu-courses-proof .cu-stat--evidence {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-top: 4px solid rgba(20, 83, 45, 0.72);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 246, 0.9)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 42px rgba(12, 36, 12, 0.1);
}

.cu-portfolio-highlight__frame {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(239, 246, 242, 0.92)),
    linear-gradient(90deg, rgba(20, 83, 45, 0.08) 1px, transparent 1px) 0 0 / 52px 52px;
  box-shadow:
    0 26px 64px rgba(12, 36, 12, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.cu-portfolio-highlight__frame::after {
  content: "";
  position: absolute;
  right: clamp(1.25rem, 4vw, 3rem);
  bottom: clamp(1.25rem, 4vw, 3rem);
  width: clamp(4.5rem, 16vw, 9rem);
  height: clamp(4.5rem, 16vw, 9rem);
  border: 1px solid rgba(20, 83, 45, 0.18);
  border-radius: 999px;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(20, 83, 45, 0.14) calc(50% - 1px), rgba(20, 83, 45, 0.14) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(0deg, transparent calc(50% - 1px), rgba(20, 83, 45, 0.14) calc(50% - 1px), rgba(20, 83, 45, 0.14) calc(50% + 1px), transparent calc(50% + 1px));
  opacity: 0.55;
  pointer-events: none;
}

.cu-page--evidence-detail .cu-portfolio-project-hero {
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(5, 26, 13, 0.96), rgba(20, 83, 45, 0.82)),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px) 0 0 / 68px 68px;
}

.cu-page--evidence-detail .cu-portfolio-project-hero__inner {
  position: relative;
  gap: clamp(1.5rem, 4vw, 3rem);
  padding: clamp(1.25rem, 3.5vw, 2.75rem);
}

.cu-portfolio-project-hero__media {
  position: relative;
}

.cu-portfolio-project-hero__accession {
  position: absolute;
  left: var(--cu-spacing-4);
  top: var(--cu-spacing-4);
  z-index: 2;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--cu-radius-pill);
  background: rgba(5, 26, 13, 0.78);
  color: var(--cu-color-text-inverse);
  font-size: 0.75rem;
  font-weight: 850;
  line-height: 1;
  padding: 0.46rem 0.62rem;
}

.cu-page--evidence-detail .cu-portfolio-project-section {
  position: relative;
}

.cu-page--evidence-detail .cu-portfolio-project-section--specimen > .cu-container {
  position: relative;
  max-width: 1120px;
}

.cu-page--evidence-detail .cu-portfolio-project-section--specimen > .cu-container::before {
  content: "";
  position: absolute;
  left: clamp(0.5rem, 1.4vw, 1rem);
  top: var(--cu-spacing-4);
  bottom: var(--cu-spacing-4);
  width: 2px;
  border-radius: var(--cu-radius-pill);
  background: linear-gradient(180deg, transparent, rgba(20, 83, 45, 0.3), transparent);
  pointer-events: none;
}

.cu-page--evidence-detail .cu-portfolio-project-overview p,
.cu-page--evidence-detail .cu-portfolio-project-details__grid > div,
.cu-page--evidence-detail .cu-portfolio-project-outcomes .cu-table-responsive,
.cu-page--evidence-detail .cu-portfolio-project-meta__grid {
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 246, 0.9)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 44px rgba(12, 36, 12, 0.09);
}

.cu-page--evidence-detail .cu-portfolio-project-overview p {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2rem);
  line-height: 1.82;
}

.cu-page--evidence-detail .cu-portfolio-project-meta__grid {
  padding: clamp(1rem, 2.5vw, 1.5rem);
}

.cu-page--evidence-detail .cu-portfolio-project-details__grid > div {
  padding: clamp(1rem, 2.5vw, 1.5rem);
}

.cu-page--evidence-detail .cu-portfolio-project-details ol {
  border: 1px solid rgba(20, 83, 45, 0.1);
  background: rgba(239, 246, 242, 0.74);
  box-shadow: none;
}

.cu-page--evidence-detail .cu-portfolio-project-outcomes .cu-table-responsive {
  padding: var(--cu-spacing-2);
}

.cu-page--evidence-detail .cu-portfolio-project-gallery {
  background:
    linear-gradient(180deg, rgba(239, 246, 242, 0.94), rgba(255, 255, 255, 0.98));
}

.cu-page--evidence-detail .cu-portfolio-project-gallery figure {
  border: 1px solid rgba(20, 83, 45, 0.16);
  border-top: 4px solid rgba(20, 83, 45, 0.62);
}

.cu-page--evidence-detail .cu-portfolio-project-gallery figcaption {
  font-size: 0.9rem;
  line-height: 1.55;
}

.cu-research-project__media {
  border-top: 4px solid rgba(51, 65, 85, 0.38);
  padding: var(--cu-spacing-2);
}

.cu-research-project__media img {
  border-radius: 18px;
}

.cu-research-project {
  transition:
    transform var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease);
}

@media (hover: hover) {
  .cu-research-project:hover,
  .cu-research-project:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 28px 64px rgba(12, 36, 12, 0.13);
  }
}

.cu-about-hero__media,
.cu-about-intro__media {
  border-top: 4px solid rgba(51, 65, 85, 0.32);
}

.cu-about-career__item--with-logo {
  border-left-color: rgba(51, 65, 85, 0.2);
}

.cu-about-career__item--with-logo .cu-about-career__icon,
.cu-about-education__logo {
  border: 1px solid rgba(51, 65, 85, 0.12);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.9)),
    var(--cu-color-surface-base);
  box-shadow: 0 14px 34px rgba(12, 36, 12, 0.08);
}

@media (max-width: 720px) {
  .cu-evidence-placard {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-evidence-placard__media {
    aspect-ratio: 16 / 9;
  }

  .cu-page--evidence-detail .cu-portfolio-project-section--specimen > .cu-container::before {
    left: var(--cu-spacing-4);
    right: var(--cu-spacing-4);
    top: 0;
    bottom: auto;
    width: auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(20, 83, 45, 0.3), transparent);
  }

  .cu-portfolio-highlight__frame::after {
    opacity: 0.28;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-evidence-placard,
  .cu-evidence-placard__media img,
  .cu-research-project {
    transition: none;
  }

  .cu-evidence-placard:hover,
  .cu-evidence-placard:focus-visible,
  .cu-research-project:hover,
  .cu-research-project:focus-within {
    transform: none;
  }
}

/* ================================================================
   WSVT-03 — Method / diagram / syllabus / dossier systems
   Source-derived visual artifacts only; no new public copy.
   ================================================================ */

.cu-services-method-board {
  position: relative;
  padding: clamp(3.5rem, 7vw, 6.5rem) 0;
  background:
    linear-gradient(135deg, rgba(234, 244, 239, 0.94), rgba(255, 255, 255, 0.98) 52%, rgba(239, 247, 250, 0.92)),
    var(--cu-color-surface-base);
  border-block: 1px solid rgba(20, 83, 45, 0.1);
  overflow: hidden;
}

.cu-services-method-board::before {
  content: "";
  position: absolute;
  inset: clamp(1rem, 3vw, 2rem);
  border: 1px solid rgba(20, 83, 45, 0.08);
  background-image:
    linear-gradient(rgba(20, 83, 45, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 83, 45, 0.045) 1px, transparent 1px);
  background-size: 44px 44px;
  pointer-events: none;
  opacity: 0.75;
}

.cu-services-method-board > .cu-container {
  position: relative;
  z-index: 1;
}

.cu-services-method-board h2 {
  max-width: 860px;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  font-family: var(--cu-font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  text-align: center;
}

.cu-services-method-board__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(235px, 1fr));
  gap: clamp(1rem, 2vw, 1.35rem);
  align-items: stretch;
}

.cu-services-method-board__grid::before {
  content: "";
  position: absolute;
  left: 2rem;
  right: 2rem;
  top: 4rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(20, 83, 45, 0.24), transparent);
  pointer-events: none;
}

.cu-services-method-board__group {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: var(--cu-spacing-4);
  min-height: 100%;
  padding: clamp(1rem, 2.4vw, 1.5rem);
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-top: 4px solid rgba(20, 83, 45, 0.62);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 253, 251, 0.95)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 46px rgba(12, 36, 12, 0.08);
}

.cu-services-method-board__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-3);
  align-items: start;
}

.cu-services-method-board__index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 50%;
  background: rgba(20, 83, 45, 0.1);
  color: var(--cu-color-brand-primary-dark);
  font-family: var(--cu-font-heading);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-services-method-board__header h3 {
  margin: 0;
  font-size: clamp(1.08rem, 1.5vw, 1.28rem);
  line-height: 1.25;
}

.cu-services-method-board__header p {
  margin: var(--cu-spacing-2) 0 0;
  color: var(--cu-color-text-secondary);
  font-size: 0.95rem;
  line-height: 1.55;
}

.cu-services-method-board__services {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--cu-spacing-2);
}

.cu-services-method-board__service a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-2);
  align-items: center;
  min-height: 2.85rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(20, 83, 45, 0.08);
  border-radius: 12px;
  background: rgba(239, 246, 242, 0.58);
  color: var(--cu-color-text-primary);
  font-weight: 650;
  line-height: 1.35;
  text-decoration: none;
  transition:
    transform var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    background-color var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-services-method-board__service-marker {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--cu-color-brand-primary);
  box-shadow: 0 0 0 4px rgba(20, 83, 45, 0.1);
}

@media (hover: hover) {
  .cu-services-method-board__service a:hover,
  .cu-services-method-board__service a:focus-visible {
    transform: translateX(3px);
    border-color: rgba(20, 83, 45, 0.26);
    background: rgba(255, 255, 255, 0.96);
  }
}

.cu-home-method-preview,
.cu-home-instrument-preview {
  position: relative;
  align-items: stretch;
}

.cu-home-method-preview::before,
.cu-home-instrument-preview::before {
  content: "";
  position: absolute;
  left: clamp(1rem, 4vw, 2rem);
  right: clamp(1rem, 4vw, 2rem);
  top: 1.6rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(20, 83, 45, 0.2), transparent);
  pointer-events: none;
}

.cu-home-method-card,
.cu-home-instrument-card {
  position: relative;
  overflow: hidden;
  border-top: 4px solid rgba(20, 83, 45, 0.42);
}

.cu-home-method-card::after,
.cu-home-instrument-card::after {
  content: "";
  position: absolute;
  inset: auto 1.1rem 1rem auto;
  width: 3.5rem;
  height: 3.5rem;
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-radius: 50%;
  opacity: 0.45;
  pointer-events: none;
}

.cu-home-method-card__index,
.cu-home-instrument-card__index {
  display: inline-flex;
  width: fit-content;
  margin-bottom: var(--cu-spacing-2);
  color: rgba(20, 83, 45, 0.6);
  font-family: var(--cu-font-heading);
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-home-instrument-card .cu-card__header {
  align-items: start;
}

.cu-home-instrument-card__index {
  margin: 0.2rem var(--cu-spacing-2) 0 0;
}

.cu-service-deliverables {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 242, 0.74));
}

.cu-service-deliverables ul {
  position: relative;
  align-items: stretch;
  justify-items: stretch;
}

.cu-service-deliverables ul::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 1.5rem;
  bottom: 1.5rem;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(20, 83, 45, 0.18), transparent);
  transform: translateX(-50%);
  pointer-events: none;
}

.cu-service-anatomy__item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "index"
    "icon"
    "copy";
  align-items: start;
  justify-items: center;
  gap: var(--cu-spacing-3);
  min-height: 100%;
  padding: clamp(1.15rem, 2.6vw, 1.65rem);
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-top: 4px solid rgba(20, 83, 45, 0.48);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 253, 251, 0.96)),
    var(--cu-color-surface-base);
  box-shadow: 0 16px 34px rgba(12, 36, 12, 0.07);
  text-align: center;
}

.cu-service-anatomy__index {
  grid-area: index;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: rgba(20, 83, 45, 0.09);
  color: rgba(20, 83, 45, 0.52);
  font-family: var(--cu-font-heading);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-service-anatomy__item .cu-service-deliverables__icon {
  grid-area: icon;
  border-radius: 14px;
  background: rgba(20, 83, 45, 0.1);
}

.cu-service-anatomy__item > span:last-child {
  grid-area: copy;
  color: var(--cu-color-text-primary);
  font-size: 1rem;
}

.cu-service-process__rail {
  position: relative;
}

.cu-service-process__rail::before {
  content: "";
  position: absolute;
  left: 1.45rem;
  top: 1rem;
  bottom: 1rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(20, 83, 45, 0.06), rgba(20, 83, 45, 0.24), rgba(20, 83, 45, 0.06));
  pointer-events: none;
}

.cu-service-process__step {
  min-height: 100%;
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-left: 4px solid rgba(14, 116, 144, 0.42);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 251, 0.95)),
    var(--cu-color-surface-base);
  box-shadow: 0 12px 28px rgba(12, 36, 12, 0.06);
}

.cu-service-summary__grid {
  align-items: stretch;
}

.cu-service-summary__item--timeline,
.cu-service-summary__item--outcomes {
  position: relative;
  overflow: hidden;
}

.cu-service-summary__item--timeline::after,
.cu-service-summary__item--outcomes::after {
  content: "";
  position: absolute;
  inset: auto 1rem 1rem auto;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  border: 1px solid rgba(20, 83, 45, 0.12);
  opacity: 0.55;
  pointer-events: none;
}

.cu-courses-comparison {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 242, 0.72));
}

.cu-courses-comparison__table {
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-top: 4px solid rgba(20, 83, 45, 0.52);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 48px rgba(12, 36, 12, 0.08);
}

.cu-course-module-board {
  list-style: none;
  margin: var(--cu-spacing-8) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-4);
  counter-reset: course-module;
}

.cu-course-module-card {
  min-height: 100%;
}

.cu-course-module-card article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-4);
  height: 100%;
  padding: clamp(1rem, 2.6vw, 1.5rem);
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-top: 4px solid rgba(14, 116, 144, 0.42);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 251, 0.94)),
    var(--cu-color-surface-base);
  box-shadow: 0 16px 36px rgba(12, 36, 12, 0.07);
}

.cu-course-module-card__number {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 0.35rem;
  min-width: 3rem;
  padding-top: 0.15rem;
  color: var(--cu-color-brand-primary-dark);
  font-family: var(--cu-font-heading);
  font-variant-numeric: tabular-nums;
}

.cu-course-module-card__number span {
  color: rgba(20, 83, 45, 0.52);
  font-size: 0.74rem;
  font-weight: 800;
}

.cu-course-module-card__number strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 50%;
  background: rgba(20, 83, 45, 0.1);
  font-size: 1rem;
}

.cu-course-module-card__body {
  margin: 0;
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-course-module-card__row {
  display: grid;
  gap: 0.3rem;
}

.cu-course-module-card__row dt {
  color: rgba(20, 83, 45, 0.58);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cu-course-module-card__row dd {
  margin: 0;
  color: var(--cu-color-text-secondary);
  line-height: 1.62;
}

.cu-course-module-card__row--title h3 {
  margin: 0;
  color: var(--cu-color-text-primary);
  font-size: clamp(1.05rem, 1.7vw, 1.22rem);
  line-height: 1.3;
}

.cu-course-module-card__row--notes dd {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(14, 116, 144, 0.16);
  border-radius: 999px;
  background: rgba(239, 247, 250, 0.78);
  color: var(--cu-color-text-primary);
  font-size: 0.9rem;
}

.cu-course-taxonomy-links .cu-faq-related__link,
.cu-service-related__faq-links-list .cu-faq-related__link,
.cu-faq-related__links .cu-faq-related__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.4rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-radius: 999px;
  background: rgba(239, 246, 242, 0.72);
  text-decoration: none;
}

.cu-about-career__grid,
.cu-about-education__list {
  position: relative;
}

.cu-about-career__grid::before,
.cu-about-education__list::before {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 1rem;
  bottom: 1rem;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(100, 72, 36, 0.24), transparent);
  pointer-events: none;
}

.cu-about-career__item,
.cu-about-education__item,
.cu-about-approach__item {
  position: relative;
}

.cu-about-career__item,
.cu-about-education__item {
  padding-left: clamp(1.25rem, 3vw, 1.75rem);
  border-left: 4px solid rgba(100, 72, 36, 0.18);
}

.cu-about-career__index,
.cu-about-education__index,
.cu-about-approach__index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(100, 72, 36, 0.58);
  font-family: var(--cu-font-heading);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-about-career__index,
.cu-about-education__index {
  position: absolute;
  left: 0.8rem;
  top: 0.85rem;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.96);
  box-shadow:
    inset 0 0 0 1px rgba(100, 72, 36, 0.14),
    0 6px 16px rgba(12, 36, 12, 0.06);
  transform: translateX(-50%);
}

.cu-stat--dossier {
  border: 1px solid rgba(100, 72, 36, 0.12);
  border-top: 4px solid rgba(100, 72, 36, 0.24);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(252, 250, 246, 0.94)),
    var(--cu-color-surface-base);
  box-shadow: 0 16px 34px rgba(12, 36, 12, 0.06);
}

.cu-about-approach__item {
  overflow: hidden;
  border: 1px solid rgba(100, 72, 36, 0.1);
  border-top: 4px solid rgba(20, 83, 45, 0.38);
  grid-template-rows: auto auto auto auto;
  align-content: start;
}

.cu-about-approach__index {
  justify-self: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: rgba(100, 72, 36, 0.08);
}

.cu-about-approach__item p {
  align-self: start;
  justify-content: flex-start;
}

@media (min-width: 860px) {
  .cu-service-process__rail {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .cu-service-process__rail::before {
    left: 1rem;
    right: 1rem;
    top: 2.5rem;
    bottom: auto;
    width: auto;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(20, 83, 45, 0.24), transparent);
  }
}

@media (max-width: 860px) {
  .cu-services-method-board__grid::before,
  .cu-home-method-preview::before,
  .cu-home-instrument-preview::before,
  .cu-service-deliverables ul::before {
    display: none;
  }

  .cu-services-method-board {
    padding-block: var(--cu-spacing-12);
  }
}

@media (max-width: 640px) {
  .cu-services-method-board__grid,
  .cu-course-module-board {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-service-anatomy__item,
  .cu-course-module-card article {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-about-career__grid::before,
  .cu-about-education__list::before {
    display: none;
  }

  .cu-about-career__item,
  .cu-about-education__item {
    padding-left: var(--cu-spacing-5);
  }

  .cu-about-career__index,
  .cu-about-education__index {
    position: static;
    transform: none;
    margin-bottom: var(--cu-spacing-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-services-method-board__service a,
  .cu-home-method-card,
  .cu-home-instrument-card,
  .cu-service-anatomy__item,
  .cu-service-process__step,
  .cu-course-module-card article,
  .cu-about-career__item,
  .cu-about-education__item,
  .cu-about-approach__item {
    transition: none;
  }

  .cu-services-method-board__service a:hover,
  .cu-services-method-board__service a:focus-visible {
    transform: none;
  }
}

/* ================================================================
   WSVT-04 — Routing / guided discovery / query grammar
   Existing labels only; dots, rails, and counts are structural.
   ================================================================ */

.cu-route-link {
  --cu-route-accent: var(--cu-color-brand-primary);
  position: relative;
}

.cu-route-link--booking {
  --cu-route-accent: #15803d;
}

.cu-route-link--contact {
  --cu-route-accent: #0f766e;
}

.cu-route-link--evidence {
  --cu-route-accent: #256f3a;
}

.cu-route-link--method {
  --cu-route-accent: #334155;
}

.cu-route-link--instrument {
  --cu-route-accent: #0e7490;
}

.cu-route-link--syllabus {
  --cu-route-accent: #3f6212;
}

.cu-route-link--trust {
  --cu-route-accent: #0f766e;
}

.cu-route-link--document,
.cu-route-link--system {
  --cu-route-accent: #475569;
}

[data-route-role="booking"] {
  --cu-route-accent: #15803d;
}

[data-route-role="contact"] {
  --cu-route-accent: #0f766e;
}

[data-route-role="evidence"] {
  --cu-route-accent: #256f3a;
}

[data-route-role="method"] {
  --cu-route-accent: #334155;
}

[data-route-role="instrument"] {
  --cu-route-accent: #0e7490;
}

[data-route-role="syllabus"] {
  --cu-route-accent: #3f6212;
}

[data-route-role="trust"] {
  --cu-route-accent: #0f766e;
}

[data-route-role="document"],
[data-route-role="system"] {
  --cu-route-accent: #475569;
}

.cu-button[data-route-role] {
  box-shadow:
    0 12px 28px rgba(20, 83, 45, 0.15),
    inset 0 -2px 0 rgba(255, 255, 255, 0.18);
}

.cu-button[data-route-role]::after {
  content: "";
  display: inline-block;
  width: 0.48rem;
  height: 0.48rem;
  margin-left: 0.55rem;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.52;
  transform: translateY(-0.05rem);
}

.cu-button--ghost[data-route-role] {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cu-route-accent) 30%, transparent);
}

.cu-link.cu-route-link:not(.cu-button),
.cu-footer__route-link {
  text-decoration-color: color-mix(in srgb, var(--cu-route-accent) 42%, transparent);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.22em;
}

.cu-query-surface {
  position: relative;
  border-block: 1px solid rgba(20, 83, 45, 0.1);
  background:
    linear-gradient(135deg, rgba(239, 246, 242, 0.88), rgba(255, 255, 255, 0.97)),
    var(--cu-color-surface-base);
}

.cu-query-surface::before {
  content: "";
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(20, 83, 45, 0.07);
  background-image:
    linear-gradient(rgba(20, 83, 45, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 83, 45, 0.04) 1px, transparent 1px);
  background-size: 36px 36px;
  pointer-events: none;
  opacity: 0.52;
}

.cu-query-surface > .cu-container,
.cu-query-surface form,
.cu-query-surface__bar,
.cu-query-surface__meta {
  position: relative;
  z-index: 1;
}

.cu-query-input,
.cu-faq-search__inputs input[type="search"],
.cu-error-search__controls input[type="search"] {
  border-color: rgba(20, 83, 45, 0.18);
  background: rgba(255, 255, 255, 0.96);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.55),
    0 10px 24px rgba(12, 36, 12, 0.06);
}

.cu-query-input:focus,
.cu-faq-search__inputs input[type="search"]:focus,
.cu-error-search__controls input[type="search"]:focus {
  border-color: var(--cu-color-brand-primary);
  box-shadow:
    0 0 0 3px rgba(20, 83, 45, 0.12),
    0 14px 30px rgba(12, 36, 12, 0.08);
}

.cu-services-filters.cu-query-surface {
  margin-top: 0;
}

.cu-query-surface__meta {
  padding-top: var(--cu-spacing-3);
  border-top: 1px solid rgba(20, 83, 45, 0.08);
}

.cu-contact-options {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 242, 0.72));
}

.cu-contact-options__grid {
  position: relative;
}

.cu-contact-options__grid::before {
  content: "";
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  top: 2.25rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(15, 118, 110, 0.22), transparent);
  pointer-events: none;
}

.cu-contact-option {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 4px solid color-mix(in srgb, var(--cu-route-accent, #0f766e) 54%, transparent);
}

.cu-contact-option::after {
  content: "";
  position: absolute;
  inset: auto 1rem 1rem auto;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  border: 1px solid rgba(15, 118, 110, 0.12);
  opacity: 0.52;
  pointer-events: none;
}

.cu-contact-option[data-route-role="contact"] {
  --cu-route-accent: #0f766e;
}

.cu-contact-option[data-contact-route="calendly"] {
  --cu-route-accent: #15803d;
}

.cu-contact-option__index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-bottom: var(--cu-spacing-3);
  border-radius: 50%;
  background: color-mix(in srgb, var(--cu-route-accent, #0f766e) 10%, white);
  color: color-mix(in srgb, var(--cu-route-accent, #0f766e) 80%, black);
  font-family: var(--cu-font-heading);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-contact-option__link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 2.45rem;
  padding: 0.45rem 0.78rem;
  border: 1px solid color-mix(in srgb, var(--cu-route-accent, #0f766e) 22%, transparent);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
}

.cu-contact-form form {
  position: relative;
}

.cu-contact-form form::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(1.2rem, 2.5vw, 1.8rem);
  bottom: clamp(1.2rem, 2.5vw, 1.8rem);
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(15, 118, 110, 0.2), transparent);
  pointer-events: none;
}

.cu-faq-index {
  padding: var(--cu-spacing-8) 0 var(--cu-spacing-4);
  background: rgba(244, 250, 248, 0.92);
  border-bottom: 1px solid rgba(15, 118, 110, 0.1);
}

.cu-faq-index__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: var(--cu-spacing-3);
}

.cu-faq-index__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--cu-spacing-3);
  align-items: center;
  min-height: 4.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(15, 118, 110, 0.12);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(248, 252, 251, 0.94)),
    var(--cu-color-surface-base);
  color: var(--cu-color-text-primary);
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  box-shadow: 0 12px 26px rgba(12, 36, 12, 0.05);
  transition:
    transform var(--cu-motion-base) var(--cu-motion-ease),
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-faq-index__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: rgba(15, 118, 110, 0.1);
  color: #0f766e;
  font-family: var(--cu-font-heading);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.cu-faq-category {
  scroll-margin-top: 7rem;
}

.cu-faq-category:target {
  border-color: rgba(15, 118, 110, 0.28);
  box-shadow: 0 20px 50px rgba(12, 36, 12, 0.08);
}

.cu-error-search.cu-query-surface {
  padding: var(--cu-spacing-4);
  border: 1px solid rgba(71, 85, 105, 0.14);
  border-top: 4px solid rgba(71, 85, 105, 0.3);
  border-radius: 18px;
}

.cu-error__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cu-spacing-3);
}

.cu-error__links .cu-button {
  margin: 0;
}

.cu-error-resources__link {
  display: inline-flex;
  width: fit-content;
  min-height: 2.35rem;
  align-items: center;
  padding: 0.42rem 0.72rem;
  border: 1px solid color-mix(in srgb, var(--cu-route-accent, #475569) 18%, transparent);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
}

.cu-footer__links-columns a,
.cu-footer__contact-link {
  position: relative;
}

.cu-footer__links-columns a::before {
  content: "";
  display: inline-block;
  width: 0.42rem;
  height: 0.42rem;
  margin-right: 0.45rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--cu-route-accent, #14532d) 65%, white);
  transform: translateY(-0.08rem);
}

.cu-header__nav a.is-current,
.cu-header__menu-nav a.is-current {
  position: relative;
}

.cu-header__nav a.is-current::after,
.cu-header__menu-nav a.is-current::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.45rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.62;
}

@media (hover: hover) {
  .cu-faq-index__link:hover,
  .cu-faq-index__link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(15, 118, 110, 0.26);
    box-shadow: 0 18px 38px rgba(12, 36, 12, 0.08);
  }
}

@media (max-width: 720px) {
  .cu-contact-options__grid::before,
  .cu-contact-form form::before,
  .cu-query-surface::before {
    display: none;
  }

  .cu-faq-index__list {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-faq-index__link {
    transition: none;
  }

  .cu-faq-index__link:hover,
  .cu-faq-index__link:focus-visible {
    transform: none;
  }
}

/* WSVT-05: trust/status/card role system */
.cu-card-role {
  --cu-card-role-accent: #14532d;
  --cu-card-role-accent-soft: rgba(20, 83, 45, 0.28);
  --cu-card-role-border: rgba(20, 83, 45, 0.14);
  --cu-card-role-tint: rgba(20, 83, 45, 0.045);
  --cu-card-role-shadow: 0 14px 32px rgba(12, 36, 12, 0.06);
  position: relative;
}

:is(
  .cu-card,
  .cu-stat,
  .cu-faq-item,
  .cu-service-anatomy__item,
  .cu-service-process__step,
  .cu-service-summary__item,
  .cu-service-related__faq-links,
  .cu-faq-related__group,
  .cu-course-compare-card,
  .cu-course-module-card,
  .cu-course-logistics__item,
  .cu-about-collaborators__item,
  .cu-research-plate,
  .cu-research-plate__annotation,
  .cu-research-project,
  .cu-region-strip__frame,
  .cu-portfolio-highlight__frame,
  .cu-error-resources__section,
  .cu-maintenance-updates__item,
  .cu-legal__content
).cu-card-role {
  border-color: var(--cu-card-role-border);
  box-shadow:
    inset 4px 0 0 var(--cu-card-role-accent-soft),
    var(--cu-card-role-shadow);
}

.cu-card-role--evidence {
  --cu-card-role-accent: #14532d;
  --cu-card-role-accent-soft: rgba(20, 83, 45, 0.34);
  --cu-card-role-border: rgba(20, 83, 45, 0.18);
  --cu-card-role-tint: rgba(20, 83, 45, 0.055);
}

.cu-card-role--technical {
  --cu-card-role-accent: #0e7490;
  --cu-card-role-accent-soft: rgba(14, 116, 144, 0.34);
  --cu-card-role-border: rgba(14, 116, 144, 0.18);
  --cu-card-role-tint: rgba(14, 116, 144, 0.055);
}

.cu-card-role--method {
  --cu-card-role-accent: #4a7c59;
  --cu-card-role-accent-soft: rgba(74, 124, 89, 0.34);
  --cu-card-role-border: rgba(74, 124, 89, 0.2);
  --cu-card-role-tint: rgba(74, 124, 89, 0.06);
}

.cu-card-role--training {
  --cu-card-role-accent: #25636f;
  --cu-card-role-accent-soft: rgba(37, 99, 111, 0.32);
  --cu-card-role-border: rgba(37, 99, 111, 0.18);
  --cu-card-role-tint: rgba(37, 99, 111, 0.055);
}

.cu-card-role--routing {
  --cu-card-role-accent: #0f766e;
  --cu-card-role-accent-soft: rgba(15, 118, 110, 0.32);
  --cu-card-role-border: rgba(15, 118, 110, 0.18);
  --cu-card-role-tint: rgba(15, 118, 110, 0.055);
}

.cu-card-role--trust {
  --cu-card-role-accent: #0f766e;
  --cu-card-role-accent-soft: rgba(15, 118, 110, 0.3);
  --cu-card-role-border: rgba(15, 118, 110, 0.18);
  --cu-card-role-tint: rgba(15, 118, 110, 0.05);
}

.cu-card-role--research {
  --cu-card-role-accent: #6b4e16;
  --cu-card-role-accent-soft: rgba(107, 78, 22, 0.28);
  --cu-card-role-border: rgba(107, 78, 22, 0.18);
  --cu-card-role-tint: rgba(107, 78, 22, 0.055);
}

.cu-card-role--dossier {
  --cu-card-role-accent: #7c4a24;
  --cu-card-role-accent-soft: rgba(124, 74, 36, 0.28);
  --cu-card-role-border: rgba(124, 74, 36, 0.18);
  --cu-card-role-tint: rgba(124, 74, 36, 0.052);
}

.cu-card-role--document,
.cu-card-role--system {
  --cu-card-role-accent: #475569;
  --cu-card-role-accent-soft: rgba(71, 85, 105, 0.3);
  --cu-card-role-border: rgba(71, 85, 105, 0.18);
  --cu-card-role-tint: rgba(71, 85, 105, 0.048);
}

.cu-card-role--evidence,
.cu-card-role--technical,
.cu-card-role--method,
.cu-card-role--training,
.cu-card-role--routing,
.cu-card-role--trust,
.cu-card-role--research,
.cu-card-role--dossier,
.cu-card-role--document,
.cu-card-role--system {
  background-image:
    linear-gradient(90deg, var(--cu-card-role-tint), transparent 42%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 252, 251, 0.9));
}

.cu-research-project.cu-card-role--research,
.cu-research-plate.cu-card-role--research {
  background-image:
    linear-gradient(90deg, rgba(107, 78, 22, 0.06), transparent 38%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(249, 247, 241, 0.94));
}

.cu-legal__content.cu-card-role--document,
.cu-error-resources__section.cu-card-role--document,
.cu-maintenance-updates__item.cu-card-role--system {
  background-image:
    linear-gradient(90deg, rgba(71, 85, 105, 0.055), transparent 42%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
}

.cu-legal__content.cu-card-role--document {
  padding: clamp(1.5rem, 3.5vw, 3rem);
  border: 1px solid var(--cu-card-role-border);
  border-radius: 22px;
  scroll-margin-top: 6rem;
}

.cu-card-role :is(h2, h3, summary) {
  text-wrap: balance;
}

.cu-chip--status {
  min-height: 1.7rem;
  padding: 0.27rem 0.72rem 0.27rem 0.58rem;
  border-left-width: 4px;
  border-radius: 0.62rem 999px 999px 0.62rem;
  box-shadow: 0 6px 14px rgba(12, 36, 12, 0.045);
}

.cu-chip--status::before {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 0.12rem;
  transform: rotate(45deg);
  opacity: 0.72;
}

.cu-chip--status[data-status-variant="review"]::before,
.cu-chip--status[data-status-variant="pilot"]::before {
  border-radius: 50%;
  transform: none;
}

.svc-chip {
  border-style: solid;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(244, 250, 248, 0.88)),
    var(--cu-color-surface-base);
  box-shadow: inset 0 -2px 0 rgba(20, 83, 45, 0.08);
}

.svc-chip.active,
.svc-chip.is-active {
  box-shadow:
    inset 0 -2px 0 rgba(255, 255, 255, 0.24),
    0 10px 22px rgba(12, 36, 12, 0.11);
}

.cu-evidence-chip {
  border-radius: 0.72rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(238, 247, 242, 0.9)),
    rgba(20, 83, 45, 0.06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.54);
}

.cu-tag:not(.cu-chip--status) {
  border-radius: 0.78rem;
}

.cu-technology-trust-badge {
  border-left: 3px solid rgba(15, 118, 110, 0.34);
  background:
    linear-gradient(90deg, rgba(15, 118, 110, 0.07), transparent 64%),
    rgba(255, 255, 255, 0.82);
}

.cu-faq-related__link {
  border-radius: 0.72rem;
  border-left: 3px solid rgba(15, 118, 110, 0.22);
}

.cu-service-related .cu-service-related__faq-links-list {
  list-style: none;
  margin: 0;
  padding-left: 0;
  display: grid;
  gap: 0.55rem;
}

.cu-service-related .cu-service-related__faq-links-list > li {
  margin: 0;
  padding: 0;
}

@media (hover: hover) {
  .cu-card-role:is(.cu-card, .cu-faq-item, .cu-course-module-card, .cu-service-process__step):hover,
  .cu-card-role:is(.cu-card, .cu-faq-item, .cu-course-module-card, .cu-service-process__step):focus-within {
    border-color: color-mix(in srgb, var(--cu-card-role-accent) 34%, transparent);
    box-shadow:
      inset 4px 0 0 var(--cu-card-role-accent-soft),
      0 18px 40px rgba(12, 36, 12, 0.09);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-card-role:is(.cu-card, .cu-faq-item, .cu-course-module-card, .cu-service-process__step):hover,
  .cu-card-role:is(.cu-card, .cu-faq-item, .cu-course-module-card, .cu-service-process__step):focus-within {
    transform: none;
  }
}

/* WSVT-06: motion, interactive state, accessibility sweep */
.cu-contact-form {
  scroll-margin-top: calc(var(--cu-header-height) + 1.5rem);
}

.cu-query-surface,
.cu-portfolio-filters,
.cu-contact-form form,
.cu-error-search,
.cu-faq-search,
.cu-cookie-banner__inner {
  transition:
    border-color var(--cu-motion-base) var(--cu-motion-ease),
    box-shadow var(--cu-motion-base) var(--cu-motion-ease),
    background var(--cu-motion-base) var(--cu-motion-ease);
}

.cu-query-surface[data-query-active],
[data-faq-search-section][data-faq-active],
.cu-error-search[data-search-state="active"],
.cu-error-search[data-search-state="submitted"] {
  border-color: rgba(15, 118, 110, 0.26);
  box-shadow:
    inset 0 0 0 1px rgba(15, 118, 110, 0.08),
    0 18px 42px rgba(12, 36, 12, 0.08);
}

.cu-query-surface[data-no-results],
.cu-faq-categories[data-faq-no-results],
.cu-error-search[data-search-state="invalid"] {
  border-color: rgba(120, 113, 108, 0.32);
  box-shadow:
    inset 0 0 0 1px rgba(120, 113, 108, 0.1),
    0 16px 38px rgba(79, 70, 63, 0.08);
}

.cu-services-filters[data-query-active] .cu-query-surface__meta,
.cu-faq-categories[data-faq-filtering] .cu-faq-category[data-faq-group-active] h2 {
  color: #0f766e;
}

.cu-faq-item[data-faq-match] {
  border-color: rgba(15, 118, 110, 0.3);
  box-shadow:
    inset 4px 0 0 rgba(15, 118, 110, 0.32),
    0 16px 34px rgba(12, 36, 12, 0.075);
}

.cu-faq-category[data-faq-group-active] {
  border-color: rgba(15, 118, 110, 0.22);
}

.cu-portfolio-filters:focus-within,
.cu-services-filters:focus-within,
.cu-faq-search:focus-within,
.cu-error-search:focus-within,
.cu-contact-form form:focus-within {
  box-shadow:
    inset 0 0 0 1px rgba(15, 118, 110, 0.1),
    0 18px 44px rgba(12, 36, 12, 0.075);
}

.cu-portfolio-filters [data-portfolio-apply].is-dirty {
  position: relative;
  box-shadow:
    0 0 0 3px rgba(20, 83, 45, 0.12),
    0 12px 28px rgba(12, 36, 12, 0.1);
}

.cu-portfolio-card.is-reflowing {
  z-index: 1;
}

.cu-portfolio-empty:not([hidden]) {
  border-left: 4px solid rgba(120, 113, 108, 0.34);
}

@supports selector(:has(*)) {
  .cu-portfolio-field:has(input:checked),
  .cu-portfolio-field:has(select:focus),
  .cu-portfolio-field:has(input:focus-visible),
  .cu-contact-collapsible:has(input:checked) {
    border-color: rgba(15, 118, 110, 0.28);
    box-shadow:
      inset 4px 0 0 rgba(15, 118, 110, 0.24),
      0 12px 28px rgba(12, 36, 12, 0.06);
  }

  .cu-field:has(input:focus-visible) label,
  .cu-field:has(select:focus-visible) label,
  .cu-field:has(textarea:focus-visible) label {
    color: var(--cu-color-brand-primary-dark);
  }
}

.cu-contact-option[data-route-selected] {
  border-color: rgba(20, 83, 45, 0.34);
  box-shadow:
    inset 4px 0 0 rgba(20, 83, 45, 0.34),
    0 20px 48px rgba(12, 36, 12, 0.1);
}

.cu-contact-option[data-route-selected] .cu-contact-option__index {
  background: rgba(20, 83, 45, 0.12);
  color: var(--cu-color-brand-primary-dark);
}

.cu-contact-form form[data-contact-state="submitting"],
.cu-contact-form form[data-contact-submitting] {
  border-color: rgba(14, 116, 144, 0.28);
  box-shadow:
    inset 4px 0 0 rgba(14, 116, 144, 0.26),
    0 18px 44px rgba(12, 36, 12, 0.08);
}

.cu-contact-form form[data-contact-state="success"] {
  border-color: rgba(20, 83, 45, 0.32);
  box-shadow:
    inset 4px 0 0 rgba(20, 83, 45, 0.34),
    0 18px 44px rgba(12, 36, 12, 0.08);
}

.cu-contact-form form[data-contact-state="error"] {
  border-color: rgba(127, 29, 29, 0.26);
  box-shadow:
    inset 4px 0 0 rgba(127, 29, 29, 0.28),
    0 18px 44px rgba(66, 24, 24, 0.08);
}

.cu-field[data-field-filled],
.cu-contact-collapsible[data-field-filled],
.cu-filter-checkbox[data-field-filled] {
  border-color: rgba(15, 118, 110, 0.2);
}

.cu-field[data-field-filled] label,
.cu-contact-collapsible[data-field-filled] summary,
.cu-filter-checkbox[data-field-filled] span {
  color: var(--cu-color-brand-primary-dark);
}

.cu-contact-form button[aria-busy="true"],
.cu-button[aria-busy="true"] {
  cursor: progress;
  opacity: 0.84;
}

.cu-error-search[data-search-state="invalid"] .cu-error-search__feedback:not([hidden]) {
  border-left: 4px solid rgba(127, 29, 29, 0.32);
}

.cu-technology-page-nav__links a[aria-current="true"],
.cu-technology-flow__item[data-node-state="current"] {
  box-shadow:
    inset 0 -3px 0 rgba(15, 118, 110, 0.32),
    0 12px 28px rgba(12, 36, 12, 0.08);
}

.cu-technology-flow__item[data-node-state="completed"] {
  opacity: 0.92;
}

.cu-technology-flow__item[data-node-state="pending"] {
  opacity: 0.74;
}

.cu-technology-flow__item:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 4px;
}

.cu-header__menu[open] {
  box-shadow: 0 18px 44px rgba(12, 36, 12, 0.1);
}

.cu-footer__route-link:focus-visible,
.cu-contact-option__link:focus-visible,
.cu-error-resources__link:focus-visible,
.cu-faq-index__link:focus-visible,
.cu-faq-related__link:focus-visible,
.cu-course-related a:focus-visible {
  outline: 3px solid var(--cu-color-accent-focus);
  outline-offset: 3px;
}

.cu-cookie-banner__preferences:not([hidden]) {
  border-color: rgba(15, 118, 110, 0.22);
  box-shadow: inset 4px 0 0 rgba(15, 118, 110, 0.2);
}

@media (hover: hover) {
  .cu-contact-option:hover,
  .cu-contact-option:focus-within,
  .cu-courses-card:hover,
  .cu-courses-card:focus-within,
  .cu-course-module-card:hover,
  .cu-course-module-card:focus-within,
  .cu-about-career__item:hover,
  .cu-about-career__item:focus-within,
  .cu-about-education__item:hover,
  .cu-about-education__item:focus-within {
    transform: translateY(-3px);
    box-shadow: 0 20px 46px rgba(12, 36, 12, 0.09);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-query-surface,
  .cu-portfolio-filters,
  .cu-contact-form form,
  .cu-error-search,
  .cu-faq-search,
  .cu-cookie-banner__inner,
  .cu-faq-item[data-faq-match],
  .cu-contact-option,
  .cu-courses-card,
  .cu-course-module-card,
  .cu-about-career__item,
  .cu-about-education__item {
    transition: none;
  }

  .cu-contact-option:hover,
  .cu-contact-option:focus-within,
  .cu-courses-card:hover,
  .cu-courses-card:focus-within,
  .cu-course-module-card:hover,
  .cu-course-module-card:focus-within,
  .cu-about-career__item:hover,
  .cu-about-career__item:focus-within,
  .cu-about-education__item:hover,
  .cu-about-education__item:focus-within {
    transform: none;
  }
}

@media (max-width: 767px) {
  .cu-contact-form {
    scroll-margin-top: calc(var(--cu-header-height-mobile) + 1rem);
  }
}

/* WSVT-07: detail page family hardening */
.cu-detail-flow {
  position: relative;
  overflow: clip;
}

.cu-detail-flow > section:not(:first-child) {
  scroll-margin-top: calc(var(--cu-header-height) + 1rem);
}

.cu-detail-flow--evidence .cu-portfolio-project-section:not(.cu-portfolio-project-gallery),
.cu-detail-flow--method .cu-service-section,
.cu-detail-flow--syllabus .cu-course-section {
  position: relative;
}

.cu-portfolio-project-faq {
  background:
    linear-gradient(180deg, rgba(244, 250, 248, 0.96), rgba(255, 255, 255, 0.98)),
    var(--cu-color-surface-base);
}

.cu-portfolio-project-faq .cu-accordion,
.cu-course-faq__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--cu-spacing-4);
}

.cu-portfolio-project-faq .cu-faq-item,
.cu-course-faq .cu-faq-item {
  min-height: 100%;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  border: 1px solid rgba(15, 118, 110, 0.14);
  border-left: 4px solid rgba(15, 118, 110, 0.28);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 251, 0.94)),
    var(--cu-color-surface-base);
}

.cu-service-context {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 242, 0.78));
}

.cu-service-context__layout {
  display: grid;
  gap: clamp(1rem, 3vw, 2rem);
  align-items: stretch;
}

.cu-service-context__brief {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-top: 4px solid rgba(20, 83, 45, 0.38);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 253, 251, 0.96)),
    var(--cu-color-surface-base);
  box-shadow: 0 16px 40px rgba(12, 36, 12, 0.07);
}

.cu-service-context__brief h2 {
  margin-top: 0;
}

.cu-service-context__brief p {
  max-width: 860px;
  margin: 0 auto;
  line-height: 1.76;
}

.cu-service-context__layout .svc-gallery {
  margin: 0;
  align-self: stretch;
}

.cu-service-context__layout .svc-gallery__item {
  height: 100%;
}

.cu-service-related__panel,
.cu-course-singleton,
.cu-course-related__cta {
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 251, 0.94)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 44px rgba(12, 36, 12, 0.08);
}

.cu-service-related__panel {
  min-height: 100%;
}

.cu-service-related__panel h2,
.cu-course-singleton h2 {
  margin-top: 0;
}

.cu-service-related__panel .cu-accordion {
  display: grid;
  gap: var(--cu-spacing-3);
}

.cu-service-related__panel--projects .cu-service-related__projects-list {
  list-style: none;
  padding-left: 0;
}

.cu-service-related__panel--projects .cu-evidence-placard {
  grid-template-columns: minmax(0, 1fr);
}

.cu-service-related__panel--projects .cu-evidence-placard__media {
  aspect-ratio: 16 / 10;
  min-height: 0;
}

.cu-service-related__panel--projects .cu-evidence-placard__body {
  min-width: 0;
}

.cu-service-related__panel--faq .cu-service-related__faq-links {
  margin-top: var(--cu-spacing-5);
  padding-top: var(--cu-spacing-4);
}

.cu-page--syllabus-detail .cu-course-section__wrap.cu-card-role {
  position: relative;
  overflow: hidden;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-top: 4px solid rgba(20, 83, 45, 0.34);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 252, 251, 0.94)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 44px rgba(12, 36, 12, 0.07);
}

.cu-page--syllabus-detail .cu-course-section__wrap--outcomes {
  border-top-color: rgba(15, 118, 110, 0.42);
}

.cu-course-singleton {
  max-width: 980px;
  margin: 0 auto;
}

.cu-course-pricing {
  border-top: 4px solid rgba(14, 116, 144, 0.38);
}

.cu-course-guarantee {
  border-top: 4px solid rgba(20, 83, 45, 0.34);
}

.cu-course-microcopy {
  display: grid;
  gap: var(--cu-spacing-2);
  padding-left: 0;
  list-style: none;
}

.cu-course-microcopy li {
  padding: var(--cu-spacing-3);
  border: 1px solid rgba(20, 83, 45, 0.1);
  border-radius: 12px;
  background: rgba(239, 246, 242, 0.56);
}

.cu-course-related__group {
  border: 1px solid rgba(20, 83, 45, 0.12);
  border-top-width: 4px;
  box-shadow: 0 16px 38px rgba(12, 36, 12, 0.07);
}

.cu-course-related__group--portfolio {
  border-top-color: rgba(20, 83, 45, 0.42);
}

.cu-course-related__group--services {
  border-top-color: rgba(14, 116, 144, 0.4);
}

.cu-course-related__group--faq {
  border-top-color: rgba(15, 118, 110, 0.38);
}

.cu-course-related__cta {
  margin-top: var(--cu-spacing-5);
  border: 1px solid rgba(20, 83, 45, 0.14);
  border-left: 4px solid rgba(20, 83, 45, 0.34);
}

@media (min-width: 920px) {
  .cu-service-context__layout--has-gallery:not(.cu-service-context__layout--gallery-below) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  }

  .cu-service-context__layout--has-gallery:not(.cu-service-context__layout--gallery-below) .cu-service-context__brief {
    align-self: stretch;
  }
}

@media (max-width: 720px) {
  .cu-detail-flow > section:not(:first-child) {
    scroll-margin-top: calc(var(--cu-header-height-mobile) + 1rem);
  }

  .cu-portfolio-project-faq .cu-accordion,
  .cu-course-faq__items {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-service-related__panel,
  .cu-course-singleton,
  .cu-course-related__cta,
  .cu-page--syllabus-detail .cu-course-section__wrap.cu-card-role {
    border-radius: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-service-context__brief,
  .cu-service-related__panel,
  .cu-course-singleton,
  .cu-course-related__group,
  .cu-course-related__cta,
  .cu-portfolio-project-faq .cu-faq-item,
  .cu-course-faq .cu-faq-item {
    transition: none;
  }
}

/* WSVT-08: legal, system, and nonvisual guardrail surfaces */
.cu-page--document main,
.cu-page--system main {
  background:
    linear-gradient(rgba(71, 85, 105, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(71, 85, 105, 0.03) 1px, transparent 1px),
    linear-gradient(180deg, rgba(248, 250, 252, 0.92), rgba(255, 255, 255, 0.98));
  background-size: 44px 44px, 44px 44px, auto;
}

.cu-page--document .cu-legal-hero {
  position: relative;
  overflow: hidden;
}

.cu-page--document .cu-legal-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: 0.4;
  pointer-events: none;
}

.cu-legal-hero__inner.cu-legal-document__header {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
  align-items: stretch;
  gap: clamp(1rem, 3vw, 2rem);
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-top: 4px solid rgba(255, 255, 255, 0.62);
  background: rgba(5, 20, 15, 0.22);
  text-align: left;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.16);
}

.cu-legal-hero__title {
  display: grid;
  align-content: center;
}

.cu-legal-hero__meta-panel {
  display: grid;
  align-content: center;
  gap: var(--cu-spacing-4);
  padding: var(--cu-spacing-4);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
}

.cu-legal-hero__meta-panel .cu-legal-hero__actions {
  justify-content: flex-start;
  margin-top: 0;
}

.cu-legal {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.9));
}

.cu-legal__shell {
  position: relative;
  max-width: 1040px;
  margin: 0 auto;
}

.cu-legal__shell::before {
  content: "";
  position: absolute;
  top: 1rem;
  bottom: 1rem;
  left: 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(71, 85, 105, 0.22), transparent);
  pointer-events: none;
}

.cu-legal__content.cu-card-role--document {
  max-width: 940px;
  margin: 0 auto;
  background:
    linear-gradient(90deg, rgba(71, 85, 105, 0.045), transparent 36%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 252, 0.96));
}

.cu-legal__content > * {
  max-width: 74ch;
}

.cu-legal__content h2 {
  scroll-margin-top: calc(var(--cu-header-height) + 1rem);
}

.cu-page--system .cu-error {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 14%, rgba(15, 118, 110, 0.09), transparent 30%),
    linear-gradient(rgba(71, 85, 105, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(71, 85, 105, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.98));
  background-size: auto, 44px 44px, 44px 44px, auto;
}

.cu-page--system .cu-error > .cu-container::before {
  display: none;
}

.cu-system-board__grid {
  align-items: stretch;
}

.cu-system-board__panel {
  position: relative;
  overflow: hidden;
  align-self: stretch;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border: 1px solid rgba(71, 85, 105, 0.14);
  border-top: 4px solid rgba(71, 85, 105, 0.34);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)),
    var(--cu-color-surface-base);
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
}

.cu-error--not-found .cu-system-board__panel {
  border-top-color: rgba(15, 118, 110, 0.4);
}

.cu-error--maintenance .cu-system-board__panel {
  border-top-color: rgba(100, 72, 36, 0.42);
}

.cu-system-board__panel::after {
  content: "";
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  width: 6rem;
  height: 6rem;
  border: 1px solid rgba(71, 85, 105, 0.1);
  border-radius: 50%;
  pointer-events: none;
}

.cu-system-board__figure {
  position: relative;
  display: grid;
  align-items: center;
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid rgba(71, 85, 105, 0.12);
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(248, 250, 252, 0.72)),
    var(--cu-color-surface-base);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.cu-system-board__figure::before {
  content: "";
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(71, 85, 105, 0.08);
  pointer-events: none;
}

.cu-error__illustration img {
  box-shadow: 0 18px 46px rgba(15, 23, 42, 0.1);
}

.cu-error-resources {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(71, 85, 105, 0.12);
  border-top: 4px solid rgba(71, 85, 105, 0.28);
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 250, 252, 0.84)),
    var(--cu-color-surface-base);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
}

.cu-error-resources__intro {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.cu-error-resources__section {
  position: relative;
  overflow: hidden;
}

.cu-error-resources__section::after {
  content: "";
  position: absolute;
  inset: auto 1rem 1rem auto;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(71, 85, 105, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.cu-maintenance-updates {
  position: relative;
  border: 1px solid rgba(100, 72, 36, 0.12);
  border-top: 4px solid rgba(100, 72, 36, 0.34);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(251, 250, 247, 0.92)),
    var(--cu-color-surface-base);
}

.cu-maintenance-updates__list {
  position: relative;
}

.cu-maintenance-updates__list::before {
  content: "";
  position: absolute;
  top: 0.5rem;
  bottom: 0.5rem;
  left: clamp(0.85rem, 2vw, 1.25rem);
  width: 2px;
  background: linear-gradient(180deg, rgba(100, 72, 36, 0.12), rgba(100, 72, 36, 0.3), rgba(100, 72, 36, 0.12));
}

.cu-maintenance-updates__item {
  position: relative;
  margin-left: clamp(1.5rem, 3vw, 2.25rem);
}

.cu-maintenance-updates__item::before {
  content: "";
  position: absolute;
  top: 1.2rem;
  left: calc(-1 * clamp(1.5rem, 3vw, 2.25rem));
  width: 0.72rem;
  height: 0.72rem;
  border: 2px solid rgba(100, 72, 36, 0.36);
  border-radius: 50%;
  background: #fff;
}

@media (max-width: 840px) {
  .cu-legal-hero__inner.cu-legal-document__header {
    grid-template-columns: minmax(0, 1fr);
    text-align: center;
  }

  .cu-legal-hero__meta-panel .cu-legal-hero__actions {
    justify-content: center;
  }

  .cu-legal__shell::before,
  .cu-maintenance-updates__list::before,
  .cu-maintenance-updates__item::before {
    display: none;
  }

  .cu-maintenance-updates__item {
    margin-left: 0;
  }
}

@media (max-width: 520px) {
  .cu-legal-hero__inner.cu-legal-document__header,
  .cu-system-board__panel,
  .cu-error-resources,
  .cu-system-board__figure,
  .cu-maintenance-updates {
    border-radius: 16px;
  }

  .cu-error-search__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cu-page--document .cu-legal-hero,
  .cu-page--system .cu-error,
  .cu-system-board__panel,
  .cu-system-board__figure,
  .cu-error-resources__section,
  .cu-maintenance-updates__item {
    transition: none;
  }
}

/* About chronology refinement: existing period strings are split into
   date badges and location meta without changing page data. */
.cu-about-career__item,
.cu-about-education__item {
  padding-top: clamp(3rem, 4vw, 3.5rem);
}

.cu-about-career__date,
.cu-about-education__date {
  position: absolute;
  top: 0.95rem;
  right: clamp(0.95rem, 2vw, 1.25rem);
  z-index: 1;
  display: inline-flex;
  max-width: calc(100% - 4.75rem);
  min-height: 1.9rem;
  align-items: center;
  justify-content: center;
  padding: 0.32rem 0.68rem;
  border: 1px solid rgba(100, 72, 36, 0.16);
  border-radius: var(--cu-radius-pill);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 247, 239, 0.94)),
    var(--cu-color-surface-base);
  color: rgba(100, 72, 36, 0.78);
  font-family: var(--cu-font-heading);
  font-size: 0.74rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  box-shadow: 0 8px 18px rgba(12, 36, 12, 0.06);
}

.cu-about-career__location,
.cu-about-education__location {
  margin: 0;
  color: rgba(51, 65, 85, 0.72);
  font-size: 0.96rem;
  font-weight: 700;
  letter-spacing: 0;
}

.cu-about-education__summary {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .cu-about-career__item,
  .cu-about-education__item {
    padding-top: 3.9rem;
  }

  .cu-about-career__date,
  .cu-about-education__date {
    right: 0.85rem;
    max-width: calc(100% - 4rem);
    font-size: 0.7rem;
  }
}

/* Immediate visual corrections after WSVT closeout. */
.cu-technology-review-note {
  --review-note-x: 50%;
  width: min(100%, 760px);
  margin-right: auto;
  margin-left: 0;
  padding-top: clamp(3.35rem, 5vw, 4.25rem);
}

.cu-technology-review-note__arrow {
  position: absolute;
  top: 0;
  left: 0;
  width: min(100%, 760px);
  height: clamp(2.65rem, 5vw, 3.55rem);
  overflow: visible;
  background: none;
  transform: none;
}

.cu-technology-review-note__arrow-line {
  fill: none;
  stroke: rgba(51, 65, 85, 0.48);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.cu-technology-review-note__arrow-head {
  fill: var(--cu-color-technical-accent, #0e7490);
  filter: drop-shadow(0 5px 10px rgba(15, 23, 42, 0.16));
}

.cu-technology-review-note__arrow::after {
  display: none;
}

.cu-services-filters .cu-filter-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  max-width: 900px;
  margin-right: auto;
  margin-left: auto;
}

.cu-services-filters .cu-query-surface__chips {
  display: grid;
  width: min(100%, 780px);
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--cu-spacing-3);
}

.cu-services-filters .svc-chip {
  grid-column: span 2;
  min-height: 3.1rem;
  justify-content: center;
  text-align: center;
}

.cu-services-filters .svc-chip:nth-child(4):nth-last-child(2) {
  grid-column: 2 / span 2;
}

.cu-services-filters .svc-chip:nth-child(5):last-child {
  grid-column: 4 / span 2;
}

.cu-services-filters .cu-query-input {
  width: min(100%, 640px);
  flex: initial;
}

.cu-services-method-board__grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.cu-services-method-board__group {
  grid-column: span 2;
}

.cu-services-method-board__group:nth-child(4):nth-last-child(2) {
  grid-column: 2 / span 2;
}

.cu-services-method-board__group:nth-child(5):last-child {
  grid-column: 4 / span 2;
}

.cu-page--evidence .cu-portfolio-hero__content {
  margin-right: auto;
  margin-left: auto;
  border-left-width: 1px;
  border-top: 4px solid rgba(255, 255, 255, 0.52);
  text-align: center;
}

.cu-page--evidence .cu-portfolio-hero .cu-hero__ctas {
  justify-content: center;
}

.cu-page--research .cu-research-hero__copy {
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.cu-page--research .cu-research-hero .cu-hero__ctas {
  justify-content: center;
}

.cu-contact-option__link {
  align-self: center;
  justify-content: center;
  margin-right: auto;
  margin-left: auto;
}

.cu-footer__legal-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--cu-spacing-3);
  align-items: center;
}

.cu-footer__legal-link {
  color: rgba(233, 242, 236, 0.85);
  font-size: 0.9rem;
}

.cu-footer__legal-link:hover,
.cu-footer__legal-link:focus {
  color: var(--cu-color-brand-primary);
}

.cu-legal__content.cu-card-role--document {
  max-width: min(1120px, 100%);
}

.cu-legal__content > * {
  max-width: 92ch;
}

@media (max-width: 780px) {
  html[lang="fr"] .cu-page--routing .cu-contact-hero {
    min-height: auto;
    padding-block: clamp(5.5rem, 18vw, 7rem);
  }

  html[lang="fr"] .cu-page--routing .cu-contact-hero__inner {
    max-width: 100%;
  }

  html[lang="fr"] .cu-page--syllabus .cu-courses-hero {
    min-height: auto;
    padding-block: clamp(5.5rem, 18vw, 7rem);
  }

  html[lang="fr"] .cu-page--syllabus .cu-courses-hero .cu-container {
    max-width: 100%;
    padding: clamp(1.35rem, 5vw, 1.85rem);
    gap: var(--cu-spacing-4);
  }

  html[lang="fr"] .cu-page--syllabus .cu-courses-hero .cu-container h1 {
    font-size: clamp(1.75rem, 7vw, 2.1rem);
  }

  .cu-services-method-board__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cu-services-method-board__group,
  .cu-services-method-board__group:nth-child(4):nth-last-child(2),
  .cu-services-method-board__group:nth-child(5):last-child {
    grid-column: auto;
  }

  .cu-services-method-board__group:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .cu-services-filters .cu-query-surface__chips {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cu-services-filters .svc-chip,
  .cu-services-filters .svc-chip:nth-child(4):nth-last-child(2),
  .cu-services-filters .svc-chip:nth-child(5):last-child {
    grid-column: auto;
  }

  .cu-services-filters .svc-chip:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .cu-technology-review-note {
    margin-left: auto;
    padding-top: clamp(2.65rem, 7vw, 3.3rem);
  }
}

@media (max-width: 520px) {
  .cu-services-method-board__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-services-method-board__group:last-child:nth-child(odd) {
    grid-column: auto;
  }

  .cu-services-filters .cu-query-surface__chips {
    grid-template-columns: minmax(0, 1fr);
  }

  .cu-technology-review-note__arrow {
    opacity: 0.7;
  }
}
