/* Parsio component styles. All design tokens (--adu-*) live in /tokens/*.css,
   imported ahead of this file by the root styles.css. Components apply these
   .adu-* classes; the React primitives in /components/** are thin class wrappers. */

/* ── Button ───────────────────────────────────────────────────────────── */
.adu-btn {
  font-family: var(--adu-font);
  font-weight: var(--adu-weight-label);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--adu-space-2);
  border: 1px solid transparent;
  border-radius: var(--adu-radius);
  cursor: pointer;
  line-height: 1;
  letter-spacing: -0.01em;
  transition: background-color var(--adu-duration-xs) var(--adu-ease-out), border-color var(--adu-duration-xs) var(--adu-ease-out),
    color var(--adu-duration-xs) var(--adu-ease-out), box-shadow var(--adu-duration-xs) var(--adu-ease-out);
}
.adu-btn:focus-visible {
  outline: none;
  box-shadow: var(--adu-ring);
}
.adu-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.adu-btn:active:not(:disabled) {
  transform: translateY(1px);
}
.adu-btn--sm {
  font-size: 14px;
  padding: 8px 14px;
}
.adu-btn--md {
  font-size: 16px;
  padding: 11px 20px;
}
.adu-btn--lg {
  font-size: 18px;
  padding: 14px 26px;
}
.adu-btn--block {
  width: 100%;
}
.adu-btn--pill {
  border-radius: var(--adu-radius-pill);
}
.adu-btn--primary {
  background: var(--adu-forest);
  color: #ffffff;
}
.adu-btn--primary:hover:not(:disabled) {
  background: var(--adu-forest-hover);
}
.adu-btn--secondary {
  background: var(--adu-surface);
  color: var(--adu-ink);
  border-color: var(--adu-hairline);
}
.adu-btn--secondary:hover:not(:disabled) {
  border-color: var(--adu-forest);
  color: var(--adu-forest);
}
.adu-btn--ghost {
  background: transparent;
  color: var(--adu-forest);
}
.adu-btn--ghost:hover:not(:disabled) {
  background: var(--adu-mint);
}

/* ── Card ─────────────────────────────────────────────────────────────── */
.adu-card {
  font-family: var(--adu-font);
  color: var(--adu-ink);
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius-lg);
  padding: var(--adu-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
  transition: transform var(--adu-duration-sm) var(--adu-ease-out),
    box-shadow var(--adu-duration-sm) var(--adu-ease-out);
}
.adu-card--elevated {
  border-color: transparent;
  box-shadow: var(--adu-shadow-lg);
}
.adu-card--elevated:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
}
.adu-card__head {
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-1);
}
.adu-card__title {
  margin: 0;
  font-size: 20px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.02em;
}
.adu-card__subtitle {
  margin: 0;
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
}
.adu-card__body {
  font-size: 16px;
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: #333;
}
.adu-card__foot {
  display: flex;
  align-items: center;
  gap: var(--adu-space-3);
  padding-top: var(--adu-space-2);
  border-top: 1px solid var(--adu-hairline);
}
.adu-card--elevated .adu-card__foot {
  border-top-color: var(--adu-paper-alt);
}

/* ── Badge ────────────────────────────────────────────────────────────── */
.adu-badge {
  font-family: var(--adu-font);
  font-weight: var(--adu-weight-label);
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  line-height: 1;
  padding: 5px 11px;
  border-radius: var(--adu-radius-pill);
  border: 1px solid transparent;
}
.adu-badge--caps {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 11px;
}
.adu-badge--neutral {
  background: var(--adu-paper-alt);
  color: var(--adu-muted);
  border-color: var(--adu-hairline);
}
.adu-badge--forest {
  background: var(--adu-forest);
  color: var(--adu-paper);
}
.adu-badge--mint {
  background: var(--adu-mint);
  color: var(--adu-forest);
}
.adu-badge--emerald {
  background: var(--adu-emerald);
  color: #ffffff;
}
.adu-badge--bordeaux {
  background: var(--adu-bordeaux-soft);
  color: var(--adu-bordeaux);
}

/* ── Input ────────────────────────────────────────────────────────────── */
.adu-field {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-2);
}
.adu-field__label {
  font-size: 14px;
  font-weight: var(--adu-weight-label);
  color: var(--adu-ink);
}
.adu-input {
  font-family: var(--adu-font);
  font-size: 16px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-ink);
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius);
  padding: 11px 14px;
  transition: border-color var(--adu-duration-xs) var(--adu-ease-out), box-shadow var(--adu-duration-xs) var(--adu-ease-out);
}
.adu-input::placeholder {
  color: var(--adu-muted);
}
.adu-input:focus {
  outline: none;
  border-color: var(--adu-forest);
  box-shadow: var(--adu-ring);
}
.adu-field__hint {
  margin: 0;
  font-size: 13px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
}
.adu-field--invalid .adu-input {
  border-color: var(--adu-bordeaux);
}
.adu-field--invalid .adu-input:focus {
  box-shadow: 0 0 0 1px rgba(136, 19, 55, 0.5),
    0 0 0 3px rgba(136, 19, 55, 0.18);
}
.adu-field--invalid .adu-field__hint {
  color: var(--adu-bordeaux);
}

/* ── Hero ─────────────────────────────────────────────────────────────── */
.adu-hero {
  font-family: var(--adu-font);
  color: var(--adu-ink);
  background: var(--adu-paper);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
  padding: var(--adu-space-8) var(--adu-space-7);
  border-radius: var(--adu-radius-xl);
}
.adu-hero__eyebrow {
  font-size: 12px;
  font-weight: var(--adu-weight-label);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--adu-forest);
}
.adu-hero__title {
  margin: 0;
  font-size: clamp(2.75rem, 7vw, 5rem);
  font-weight: var(--adu-weight-display);
  letter-spacing: -0.03em;
  line-height: 1.02;
  max-width: 18ch;
}
.adu-hero__subtitle {
  margin: 0;
  font-size: clamp(1.125rem, 1.75vw, 1.5rem);
  font-weight: var(--adu-weight-body);
  line-height: 1.5;
  color: var(--adu-muted);
  max-width: 46ch;
}
.adu-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-3);
  margin-top: var(--adu-space-2);
}

/* ── Navbar ───────────────────────────────────────────────────────────── */
.adu-navbar {
  font-family: var(--adu-font);
  color: var(--adu-ink);
  background: var(--adu-paper);
  display: flex;
  align-items: center;
  gap: var(--adu-space-6);
  padding: var(--adu-space-3) var(--adu-space-5);
  border-bottom: 1px solid var(--adu-hairline);
}
.adu-navbar__brand {
  font-size: 19px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.02em;
}
.adu-navbar__links {
  display: flex;
  align-items: center;
  gap: var(--adu-space-5);
  margin-right: auto;
}
.adu-navbar__link {
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
  text-decoration: none;
  transition: color var(--adu-duration-xs) var(--adu-ease-out);
}
.adu-navbar__link:hover {
  color: var(--adu-ink);
}
.adu-navbar__link--active {
  color: var(--adu-forest);
  font-weight: var(--adu-weight-label);
}
.adu-navbar__action {
  display: flex;
  align-items: center;
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.adu-footer {
  font-family: var(--adu-font);
  background: var(--adu-ink);
  color: #ffffff;
  border-radius: var(--adu-radius-xl);
  padding: var(--adu-space-7) var(--adu-space-6) var(--adu-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-6);
}
.adu-footer__top {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-7);
  justify-content: space-between;
}
.adu-footer__brand {
  font-size: 22px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.02em;
}
.adu-footer__tagline {
  margin: var(--adu-space-2) 0 0;
  font-size: 14px;
  color: rgba(245, 245, 238, 0.62);
  max-width: 26ch;
  line-height: 1.5;
}
.adu-footer__cols {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-7);
}
.adu-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-2);
}
.adu-footer__heading {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(245, 245, 238, 0.5);
  margin-bottom: var(--adu-space-1);
}
.adu-footer__link {
  font-size: 14px;
  color: rgba(245, 245, 238, 0.82);
  text-decoration: none;
}
.adu-footer__link:hover {
  color: var(--adu-paper);
}
.adu-footer__bottom {
  padding-top: var(--adu-space-4);
  border-top: 1px solid rgba(245, 245, 238, 0.14);
  font-size: 13px;
  color: rgba(245, 245, 238, 0.5);
}

/* ── Stat ─────────────────────────────────────────────────────────────── */
.adu-stat {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.adu-stat__value {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: var(--adu-weight-display);
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--adu-ink);
}
.adu-stat__label {
  font-size: 14px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
}
.adu-stat__delta {
  font-size: 13px;
  font-weight: var(--adu-weight-label);
  margin-top: 2px;
}
.adu-stat__delta--up {
  color: var(--adu-emerald);
}
.adu-stat__delta--down {
  color: var(--adu-bordeaux);
}
.adu-stat__delta--flat {
  color: var(--adu-muted);
}

/* ── Alert ────────────────────────────────────────────────────────────── */
.adu-alert {
  font-family: var(--adu-font);
  border-radius: var(--adu-radius);
  padding: var(--adu-space-4) var(--adu-space-4);
  border: 1px solid transparent;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.adu-alert__title {
  margin: 0;
  font-size: 15px;
  font-weight: var(--adu-weight-label);
}
.adu-alert__body {
  font-size: 14px;
  font-weight: var(--adu-weight-body);
  line-height: 1.5;
  opacity: 0.85;
}
.adu-alert--info {
  background: var(--adu-mint);
  border-color: #cfe7dd;
  color: var(--adu-forest);
}
.adu-alert--success {
  background: var(--adu-emerald-soft);
  border-color: #bfead6;
  color: #06794a;
}
.adu-alert--warning {
  background: var(--adu-amber-soft);
  border-color: #f0dcc0;
  color: var(--adu-amber);
}
.adu-alert--danger {
  background: var(--adu-bordeaux-soft);
  border-color: #f1cdd8;
  color: var(--adu-bordeaux);
}

/* ── Table ────────────────────────────────────────────────────────────── */
.adu-table {
  font-family: var(--adu-font);
  width: 100%;
  border-collapse: collapse;
  background: var(--adu-surface);
  color: var(--adu-ink);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius);
  overflow: hidden;
}
.adu-table__th {
  font-size: 11px;
  font-weight: var(--adu-weight-label);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--adu-muted);
  padding: 12px 16px;
  border-bottom: 1px solid var(--adu-hairline);
  background: var(--adu-paper-alt);
}
.adu-table__td {
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  padding: 13px 16px;
  border-bottom: 1px solid var(--adu-hairline);
}
.adu-table__tr:last-child .adu-table__td {
  border-bottom: none;
}

/* ── SpecList ─────────────────────────────────────────────────────────── */
.adu-specs {
  font-family: var(--adu-font);
  margin: 0;
  display: flex;
  flex-direction: column;
}
.adu-specs__row {
  display: flex;
  justify-content: space-between;
  gap: var(--adu-space-5);
  padding: 12px 0;
  border-bottom: 1px solid var(--adu-hairline);
}
.adu-specs__row:last-child {
  border-bottom: none;
}
.adu-specs__term {
  font-size: 14px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
}
.adu-specs__value {
  margin: 0;
  font-size: 14px;
  font-weight: var(--adu-weight-label);
  color: var(--adu-ink);
  text-align: right;
}

/* ── Select ───────────────────────────────────────────────────────────── */
.adu-select {
  position: relative;
  display: flex;
  align-items: center;
}
.adu-select__control {
  font-family: var(--adu-font);
  font-size: 16px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-ink);
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius);
  padding: 11px 38px 11px 14px;
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: border-color var(--adu-duration-xs) var(--adu-ease-out), box-shadow var(--adu-duration-xs) var(--adu-ease-out);
}
.adu-select__control:focus {
  outline: none;
  border-color: var(--adu-forest);
  box-shadow: var(--adu-ring);
}
.adu-select__chevron {
  position: absolute;
  right: 14px;
  font-size: 12px;
  color: var(--adu-muted);
  pointer-events: none;
}
.adu-field--invalid .adu-select__control {
  border-color: var(--adu-bordeaux);
}

/* ── Tabs ─────────────────────────────────────────────────────────────── */
.adu-tabs {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
}
.adu-tabs__list {
  display: flex;
  gap: var(--adu-space-5);
  border-bottom: 1px solid var(--adu-hairline);
}
.adu-tabs__tab {
  font-family: var(--adu-font);
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
  background: none;
  border: none;
  padding: 0 0 12px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color var(--adu-duration-xs) var(--adu-ease-out), border-color var(--adu-duration-xs) var(--adu-ease-out);
}
.adu-tabs__tab:hover {
  color: var(--adu-ink);
}
.adu-tabs__tab--active {
  color: var(--adu-forest);
  font-weight: var(--adu-weight-label);
  border-bottom-color: var(--adu-forest);
}
.adu-tabs__panel {
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: #333;
}

/* ── Motion: entrance utilities (for designs to opt into) ─────────────────
   Mirrors parsio.com's own motion language. Apply to any element. */
@keyframes adu-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes adu-rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
@keyframes adu-scale-in {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: none; }
}
@keyframes adu-pop {
  0% { transform: scale(0.9); }
  60% { transform: scale(1.03); }
  100% { transform: scale(1); }
}
.adu-anim-fade,
.adu-anim-rise,
.adu-anim-scale,
.adu-anim-pop {
  animation-duration: var(--adu-duration-lg);
  animation-timing-function: var(--adu-ease-out);
  animation-fill-mode: both;
}
.adu-anim-fade { animation-name: adu-fade-in; }
.adu-anim-rise { animation-name: adu-rise; }
.adu-anim-scale { animation-name: adu-scale-in; }
.adu-anim-pop { animation-name: adu-pop; }

/* ── Spinner ──────────────────────────────────────────────────────────── */
@keyframes adu-spin {
  to { transform: rotate(360deg); }
}
.adu-spinner {
  display: inline-block;
  border-radius: var(--adu-radius-pill);
  border: 2px solid var(--adu-hairline);
  border-top-color: var(--adu-forest);
  animation: adu-spin 0.7s linear infinite;
  vertical-align: middle;
}
.adu-spinner--sm { width: 16px; height: 16px; border-width: 2px; }
.adu-spinner--md { width: 24px; height: 24px; border-width: 2.5px; }
.adu-spinner--lg { width: 40px; height: 40px; border-width: 3px; }
.adu-spinner--ondark { border-color: rgba(245, 245, 238, 0.3); border-top-color: var(--adu-paper); }

/* ── Skeleton ─────────────────────────────────────────────────────────── */
@keyframes adu-shimmer {
  from { background-position: -180% 0; }
  to { background-position: 180% 0; }
}
.adu-skeleton {
  display: block;
  border-radius: var(--adu-radius-sm);
  background-color: var(--adu-paper-alt);
  background-image: linear-gradient(
    90deg,
    rgba(229, 225, 216, 0) 0%,
    rgba(255, 255, 255, 0.7) 50%,
    rgba(229, 225, 216, 0) 100%
  );
  background-size: 180% 100%;
  background-repeat: no-repeat;
  animation: adu-shimmer 1.4s var(--adu-ease) infinite;
}
.adu-skeleton--text { height: 0.75em; margin: 0.28em 0; }
.adu-skeleton--circle { border-radius: var(--adu-radius-pill); }

/* ── Reduced motion ───────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── GradientMesh (the signature parsio hero background) ─────────────────
   Exact radial mesh extracted from parsio.com. */
.adu-mesh {
  font-family: var(--adu-font);
  color: var(--adu-ink);
  background-color: #fffaf0;
  background-image:
    radial-gradient(62% 52% at 22% 18%, rgba(253, 224, 71, 0.68) 0%, rgba(251, 191, 36, 0.3) 42%, rgba(0, 0, 0, 0) 70%),
    radial-gradient(55% 45% at 72% 76%, rgba(251, 146, 60, 0.48) 0%, rgba(254, 215, 170, 0.22) 42%, rgba(0, 0, 0, 0) 72%),
    radial-gradient(38% 32% at 88% 30%, rgba(251, 113, 133, 0.4) 0%, rgba(254, 202, 202, 0.18) 42%, rgba(0, 0, 0, 0) 70%),
    radial-gradient(34% 28% at 14% 78%, rgba(186, 230, 253, 0.32) 0%, rgba(0, 0, 0, 0) 70%),
    linear-gradient(135deg, rgb(255, 250, 240) 0%, rgb(254, 243, 199) 35%, rgb(255, 237, 213) 70%, rgb(254, 215, 170) 100%);
}
.adu-mesh--soft {
  background-color: #fffaf0;
  background-image:
    radial-gradient(120% 95% at 22% 18%, rgba(253, 230, 138, 0.7) 0%, rgba(254, 243, 199, 0.5) 55%, rgba(255, 251, 235, 0) 100%),
    radial-gradient(90% 80% at 85% 80%, rgba(251, 146, 60, 0.18) 0%, rgba(0, 0, 0, 0) 70%),
    linear-gradient(135deg, #fffaf0 0%, #fef3c7 60%, #ffedd5 100%);
}
.adu-mesh--block {
  border-radius: var(--adu-radius-xl);
  padding: var(--adu-space-8) var(--adu-space-7);
}

/* ── Section (eyebrow + heading + lead wrapper) ───────────────────────────── */
.adu-section {
  font-family: var(--adu-font);
  color: var(--adu-ink);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
  max-width: 1080px;
}
.adu-section__eyebrow {
  font-size: 12px;
  font-weight: var(--adu-weight-label);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--adu-forest);
}
.adu-section__heading {
  margin: 0;
  font-size: clamp(1.75rem, 5vw, 3.25rem);
  font-weight: 300;
  letter-spacing: -0.025em;
  line-height: 1.08;
  max-width: 24ch;
}
.adu-section__lead {
  margin: 0;
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: var(--adu-muted);
  max-width: 62ch;
}

/* ── Steps (numbered process) ─────────────────────────────────────────────── */
.adu-steps {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-6);
  counter-reset: adu-step;
}
.adu-step {
  display: flex;
  gap: var(--adu-space-5);
  align-items: flex-start;
}
.adu-step__num {
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: var(--adu-radius-pill);
  border: 1px solid var(--adu-hairline);
  background: var(--adu-surface);
  color: var(--adu-forest);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: var(--adu-weight-label);
}
.adu-step__body-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 8px;
}
.adu-step__title {
  margin: 0;
  font-size: 19px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.01em;
}
.adu-step__body {
  margin: 0;
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: var(--adu-muted);
  max-width: 60ch;
}

/* ── Comparison (before / after) ──────────────────────────────────────────── */
.adu-compare {
  font-family: var(--adu-font);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--adu-space-4);
}
.adu-compare__col {
  border-radius: var(--adu-radius-lg);
  padding: var(--adu-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
}
.adu-compare__col--without {
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
}
.adu-compare__col--with {
  background: var(--adu-forest);
  color: var(--adu-paper);
}
.adu-compare__title {
  margin: 0;
  font-size: 18px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.01em;
}
.adu-compare__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-3);
}
.adu-compare__item {
  display: flex;
  gap: var(--adu-space-2);
  align-items: flex-start;
  font-size: 15px;
  line-height: 1.45;
}
.adu-compare__mark {
  flex: none;
  font-size: 14px;
  line-height: 1.5;
}
.adu-compare__col--without .adu-compare__item {
  color: var(--adu-muted);
}
.adu-compare__col--without .adu-compare__mark {
  color: var(--adu-bordeaux);
}
.adu-compare__col--with .adu-compare__mark {
  color: var(--adu-emerald);
}

/* ── CaseStudyCard ────────────────────────────────────────────────────────── */
.adu-case {
  font-family: var(--adu-font);
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius-lg);
  padding: var(--adu-space-5);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
}
.adu-case__eyebrow {
  font-size: 11px;
  font-weight: var(--adu-weight-label);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--adu-forest);
}
.adu-case__title {
  margin: 0;
  font-size: 22px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.02em;
}
.adu-case__body {
  margin: 0;
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: var(--adu-muted);
}
.adu-case__metrics {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-5);
  margin-top: auto;
  padding-top: var(--adu-space-4);
  border-top: 1px solid var(--adu-hairline);
}
.adu-case__metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.adu-case__metric-value {
  font-size: 20px;
  font-weight: var(--adu-weight-display);
  letter-spacing: -0.02em;
  color: var(--adu-ink);
}
.adu-case__metric-label {
  font-size: 12px;
  color: var(--adu-muted);
}

/* ── FeatureColumn (coverage category) ────────────────────────────────────── */
.adu-feature {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-3);
}
.adu-feature__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--adu-radius);
  background: var(--adu-mint);
  color: var(--adu-forest);
  display: flex;
  align-items: center;
  justify-content: center;
}
.adu-feature__title {
  margin: 0;
  font-size: 18px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.01em;
}
.adu-feature__body {
  margin: 0;
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  line-height: 1.55;
  color: var(--adu-muted);
}

/* ── Accordion (FAQ) — native <details>/<summary> ─────────────────────────── */
.adu-accordion {
  font-family: var(--adu-font);
  border-top: 1px solid var(--adu-hairline);
}
.adu-accordion__item {
  border-bottom: 1px solid var(--adu-hairline);
}
.adu-accordion__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--adu-space-4);
  padding: var(--adu-space-4) 0;
  font-size: 17px;
  font-weight: var(--adu-weight-label);
  color: var(--adu-ink);
}
.adu-accordion__q::-webkit-details-marker {
  display: none;
}
.adu-accordion__icon {
  flex: none;
  color: var(--adu-forest);
  transition: transform var(--adu-duration-sm) var(--adu-ease-out);
  font-size: 20px;
  line-height: 1;
}
.adu-accordion__item[open] .adu-accordion__icon {
  transform: rotate(45deg);
}
.adu-accordion__a {
  margin: 0;
  padding: 0 0 var(--adu-space-4);
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  line-height: 1.6;
  color: var(--adu-muted);
  max-width: 70ch;
}

/* ── CTASection ───────────────────────────────────────────────────────────── */
.adu-cta {
  font-family: var(--adu-font);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--adu-space-4);
  padding: var(--adu-space-8) var(--adu-space-6);
}
.adu-cta__title {
  margin: 0;
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  font-weight: var(--adu-weight-display);
  letter-spacing: -0.03em;
  line-height: 1;
}
.adu-cta__sub {
  margin: 0;
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
  max-width: 48ch;
}
.adu-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-3);
  justify-content: center;
  margin-top: var(--adu-space-2);
}

/* ── TechnicalDrawing (line-art schematic) ────────────────────────────────── */
.adu-techdrawing {
  display: block;
  width: 100%;
  height: auto;
  color: var(--adu-ink);
}
.adu-techdrawing .adu-td-dim {
  stroke: var(--adu-muted);
}
.adu-techdrawing .adu-td-label {
  fill: var(--adu-muted);
  font-family: var(--adu-font);
  font-size: 9px;
  letter-spacing: 0.08em;
}

/* ── StatBand (headline metrics) ──────────────────────────────────────────── */
.adu-statband {
  font-family: var(--adu-font);
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-8);
}
.adu-statband__item {
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-2);
}
.adu-statband__value {
  font-size: clamp(2.75rem, 6vw, 4.5rem);
  font-weight: var(--adu-weight-display);
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--adu-ink);
}
.adu-statband__label {
  font-size: 15px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
  max-width: 22ch;
}

/* ── TagRow (industries) ──────────────────────────────────────────────────── */
.adu-tagrow {
  font-family: var(--adu-font);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--adu-space-4);
}
.adu-tagrow__label {
  font-size: 14px;
  font-weight: var(--adu-weight-body);
  color: var(--adu-muted);
}
.adu-tagrow__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--adu-space-2);
}
.adu-tagrow__tag {
  font-size: 15px;
  font-weight: var(--adu-weight-label);
  color: var(--adu-ink);
  background: var(--adu-surface);
  border: 1px solid var(--adu-hairline);
  border-radius: var(--adu-radius-pill);
  padding: 8px 16px;
}

/* ── LogoBand (scrolling marquee) ─────────────────────────────────────────── */
.adu-logoband {
  font-family: var(--adu-font);
  display: flex;
  flex-direction: column;
  gap: var(--adu-space-4);
  align-items: center;
}
.adu-logoband__label {
  font-size: 11px;
  font-weight: var(--adu-weight-label);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--adu-muted);
}
.adu-logoband__viewport {
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.adu-logoband__track {
  display: flex;
  align-items: center;
  gap: var(--adu-space-8);
  width: max-content;
  animation: adu-marquee 32s linear infinite;
}
.adu-logoband__logo {
  font-size: 20px;
  font-weight: var(--adu-weight-heading);
  letter-spacing: -0.01em;
  color: var(--adu-muted);
  opacity: 0.7;
  white-space: nowrap;
}
@keyframes adu-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .adu-logoband__track { animation: none; }
}
