/* ============================================================================
   ANODYNE HEALTH SOLUTIONS — BRAND CSS
   anodyne.css · v1.0 · "Care, made calm."
   ----------------------------------------------------------------------------
   A drop-in design system for the Anodyne marketing surface.
   Light UI · azure-blue accents · ink-black actions · soft, generous, rounded.
   Reference DNA: clean white cards, large radii, circular ↗ action buttons,
   pill filters, data tiles, deep navy headlines.

   STRUCTURE
     01  Design tokens (the single source of truth)
     02  Reset & base
     03  Typography
     04  Layout primitives (container, section, grid, stack)
     05  Buttons & icon buttons
     06  Pills, chips, tags, badges
     07  Cards & data tiles
     08  Navigation (navbar + footer)
     09  Forms & inputs
     10  Marketing blocks (hero, features, stats, pricing, CTA, testimonial)
     11  Utilities
     12  Motion & accessibility

   USAGE
     <link rel="stylesheet" href="anodyne.css">
     Fonts (add to <head>):
       Plus Jakarta Sans (display) · Inter (body/UI) · Space Mono (data/eyebrow)
   ========================================================================== */

/* ============================================================================
   01 · DESIGN TOKENS
   ========================================================================== */
:root {
  /* ---- Brand blue ramp (azure / cornflower) -------------------------------
     500 is the primary brand blue. 400 is the "filled card" azure from ref. */
  --blue-50:  #EEF3FF;
  --blue-100: #DCE7FF;
  --blue-200: #BBD0FF;
  --blue-300: #8FB1FF;
  --blue-400: #5B8DEF;   /* filled-card azure */
  --blue-500: #3772FF;   /* PRIMARY brand blue */
  --blue-600: #2A5BE0;
  --blue-700: #1F46B8;
  --blue-800: #18378F;
  --blue-900: #142C6B;

  /* ---- Ink / navy (deep brand neutral) ----------------------------------- */
  --ink-900:  #141A2A;   /* deepest headline */
  --ink-800:  #1A2238;
  --ink-700:  #283353;   /* PRIMARY headline navy */
  --ink-600:  #3B466A;

  /* ---- Cool-gray neutrals ------------------------------------------------ */
  --gray-0:   #FFFFFF;
  --gray-50:  #F6F8FB;   /* canvas / section bg */
  --gray-100: #EEF1F6;
  --gray-200: #E2E7EF;
  --gray-300: #CDD5E1;
  --gray-400: #A9B4C4;
  --gray-500: #7A8699;
  --gray-600: #5A6678;
  --gray-700: #3F4A5C;
  --gray-800: #283353;
  --gray-900: #161C2D;

  /* ---- Action black (the ref's signature CTA / FAB) ---------------------- */
  --black:        #0E1116;
  --black-soft:   #1A1E27;
  --black-hover:  #232834;

  /* ---- Semantic (healthcare-tuned, harmonized with blue) ----------------- */
  --success-50: #E7F8EF;  --success-500: #18B26B;  --success-700: #0E7A48;
  --warning-50: #FEF4E2;  --warning-500: #F5A623;  --warning-700: #B5760B;
  --danger-50:  #FDECEC;  --danger-500:  #E5484D;  --danger-700:  #B4282D;
  --info-50:    #EEF3FF;  --info-500:    #3772FF;  --info-700:    #1F46B8;

  /* ---- Semantic surface & text roles ------------------------------------- */
  --canvas:           var(--gray-50);
  --surface:          var(--gray-0);
  --surface-2:        var(--gray-50);
  --surface-tint:     var(--blue-50);   /* lavender / frosted panels */
  --surface-brand:    var(--blue-400);  /* azure filled cards */
  --surface-inverse:  var(--black);     /* dark CTA bands */

  --text-strong:   var(--ink-700);
  --text-default:  var(--gray-700);
  --text-muted:    var(--gray-500);
  --text-subtle:   var(--gray-400);
  --text-on-brand: #FFFFFF;
  --text-on-dark:  rgba(255,255,255,.92);

  --border:        var(--gray-200);
  --border-strong: var(--gray-300);
  --ring:          color-mix(in srgb, var(--blue-500) 45%, transparent);

  /* ---- Typography -------------------------------------------------------- */
  --font-display: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono:    "Space Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Fluid type scale — min @360px, max @1280px (clamp) */
  --fs-display-1: clamp(2.75rem, 1.6rem + 5.1vw, 4.75rem);  /* 44 → 76 */
  --fs-display-2: clamp(2.25rem, 1.45rem + 3.6vw, 3.75rem); /* 36 → 60 */
  --fs-h1:        clamp(2rem,    1.45rem + 2.4vw, 3rem);    /* 32 → 48 */
  --fs-h2:        clamp(1.6rem,  1.25rem + 1.6vw, 2.375rem);/* 26 → 38 */
  --fs-h3:        clamp(1.375rem,1.15rem + 1vw,  1.875rem); /* 22 → 30 */
  --fs-h4:        clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);   /* 20 → 24 */
  --fs-h5:        1.25rem;   /* 20 */
  --fs-lead:      clamp(1.0625rem, 1rem + 0.4vw, 1.25rem);  /* 17 → 20 */
  --fs-body:      1rem;      /* 16 */
  --fs-sm:        0.875rem;  /* 14 */
  --fs-xs:        0.8125rem; /* 13 */
  --fs-mono:      0.75rem;   /* 12 overline */

  --lh-tight:   1.06;
  --lh-snug:    1.18;
  --lh-normal:  1.5;
  --lh-relaxed: 1.65;

  --tracking-display: -0.025em;
  --tracking-tight:   -0.015em;
  --tracking-normal:  0;
  --tracking-wide:    0.02em;
  --tracking-mono:    0.14em;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --fw-extra:    800;

  /* ---- Spacing scale (4px base) ----------------------------------------- */
  --space-0:   0;
  --space-1:   0.25rem;  /* 4  */
  --space-2:   0.5rem;   /* 8  */
  --space-3:   0.75rem;  /* 12 */
  --space-4:   1rem;     /* 16 */
  --space-5:   1.25rem;  /* 20 */
  --space-6:   1.5rem;   /* 24 */
  --space-8:   2rem;     /* 32 */
  --space-10:  2.5rem;   /* 40 */
  --space-12:  3rem;     /* 48 */
  --space-16:  4rem;     /* 64 */
  --space-20:  5rem;     /* 80 */
  --space-24:  6rem;     /* 96 */
  --space-32:  8rem;     /* 128 */

  /* ---- Radius (rounded-forward, per reference) -------------------------- */
  --radius-xs:    8px;
  --radius-sm:    12px;
  --radius-md:    16px;
  --radius-lg:    20px;
  --radius-xl:    28px;
  --radius-2xl:   36px;
  --radius-pill:  999px;
  --radius-circle:50%;

  /* ---- Elevation (soft, blue-tinted shadows) ---------------------------- */
  --shadow-xs:  0 1px 2px rgba(20,30,55,.05);
  --shadow-sm:  0 2px 6px rgba(20,30,55,.06), 0 1px 2px rgba(20,30,55,.04);
  --shadow-md:  0 8px 20px -6px rgba(20,40,90,.12), 0 2px 6px rgba(20,30,55,.05);
  --shadow-lg:  0 18px 40px -12px rgba(20,40,90,.18), 0 4px 10px rgba(20,30,55,.06);
  --shadow-xl:  0 32px 64px -16px rgba(18,38,86,.24), 0 8px 18px rgba(20,30,55,.08);
  --shadow-brand: 0 16px 36px -10px rgba(55,114,255,.42);
  --shadow-black: 0 14px 30px -10px rgba(14,17,22,.45);
  --shadow-focus: 0 0 0 4px var(--ring);

  /* ---- Motion ----------------------------------------------------------- */
  --dur-1: 120ms;
  --dur-2: 180ms;
  --dur-3: 240ms;
  --dur-4: 360ms;
  --ease-standard:   cubic-bezier(.22,.61,.36,1);
  --ease-emphasized: cubic-bezier(.16,1,.3,1);
  --ease-in-out:     cubic-bezier(.65,0,.35,1);

  /* ---- Layout ----------------------------------------------------------- */
  --container:    1200px;
  --container-wide:1360px;
  --container-narrow: 760px;
  --gutter: clamp(1.25rem, 5vw, 3rem);
  --nav-h: 76px;

  color-scheme: light;
}

/* ============================================================================
   02 · RESET & BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + var(--space-4));
}

body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  color: var(--text-default);
  background: var(--canvas);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "cv05" 1, "ss01" 1, "kern" 1;
}

img, svg, video, canvas { display: block; max-width: 100%; height: auto; }
img { font-style: italic; background-repeat: no-repeat; background-size: cover; }

a { color: var(--blue-600); text-decoration: none; transition: color var(--dur-2) var(--ease-standard); }
a:hover { color: var(--blue-700); }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: none; }

ul, ol { list-style: none; padding: 0; }

::selection { background: var(--blue-200); color: var(--ink-800); }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-xs);
}

hr, .divider { border: 0; height: 1px; background: var(--border); }

/* ============================================================================
   03 · TYPOGRAPHY
   ========================================================================== */
h1, h2, h3, h4, h5, .display-1, .display-2 {
  font-family: var(--font-display);
  color: var(--text-strong);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

.display-1 { font-size: var(--fs-display-1); font-weight: var(--fw-extra); line-height: var(--lh-tight); letter-spacing: var(--tracking-display); }
.display-2 { font-size: var(--fs-display-2); font-weight: var(--fw-extra); line-height: var(--lh-tight); letter-spacing: var(--tracking-display); }
h1, .h1 { font-size: var(--fs-h1); }
h2, .h2 { font-size: var(--fs-h2); }
h3, .h3 { font-size: var(--fs-h3); }
h4, .h4 { font-size: var(--fs-h4); font-weight: var(--fw-semibold); }
h5, .h5 { font-size: var(--fs-h5); font-weight: var(--fw-semibold); }

p { line-height: var(--lh-relaxed); }
.lead { font-size: var(--fs-lead); line-height: var(--lh-normal); color: var(--text-default); }
.body-sm { font-size: var(--fs-sm); }
.caption { font-size: var(--fs-xs); color: var(--text-muted); }

/* Signature: accent the keyword in a headline */
.accent { color: var(--blue-500); }
.accent-soft { color: var(--blue-400); }

/* Eyebrow / overline — mono, tracked, uppercase (ref ticket DNA) */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--fs-mono);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-mono);
  text-transform: uppercase;
  color: var(--blue-600);
}
.eyebrow::before {
  content: "";
  width: 22px; height: 2px;
  background: currentColor;
  border-radius: var(--radius-pill);
}
.eyebrow.is-plain::before { display: none; }

.text-strong  { color: var(--text-strong); }
.text-muted   { color: var(--text-muted); }
.text-on-dark { color: var(--text-on-dark); }
.text-balance { text-wrap: balance; }
.text-pretty  { text-wrap: pretty; }
.measure      { max-width: 60ch; }
.measure-sm   { max-width: 46ch; }

/* ============================================================================
   04 · LAYOUT PRIMITIVES
   ========================================================================== */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.container--wide   { max-width: var(--container-wide); }
.container--narrow { max-width: var(--container-narrow); }

.section { padding-block: clamp(var(--space-16), 9vw, var(--space-32)); }
.section--tight { padding-block: clamp(var(--space-12), 6vw, var(--space-20)); }
.section--tint  { background: var(--surface-tint); }
.section--canvas{ background: var(--canvas); }
.section--dark  { background: var(--surface-inverse); color: var(--text-on-dark); }
.section--dark :is(h1,h2,h3,h4,h5,.display-1,.display-2) { color: #fff; }

.stack > * + * { margin-top: var(--space-4); }
.stack-sm > * + * { margin-top: var(--space-2); }
.stack-lg > * + * { margin-top: var(--space-6); }
.stack-xl > * + * { margin-top: var(--space-10); }

.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.cluster--between { justify-content: space-between; }

.grid { display: grid; gap: var(--space-6); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

.center { display: grid; place-items: center; }
.section-head { max-width: 720px; }
.section-head.is-center { margin-inline: auto; text-align: center; }
.section-head .lead { margin-top: var(--space-4); }

@media (max-width: 900px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}

/* ============================================================================
   05 · BUTTONS
   ========================================================================== */
.btn {
  --_bg: var(--black);
  --_fg: #fff;
  --_bd: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 0.875rem 1.5rem;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: 1;
  color: var(--_fg);
  background: var(--_bg);
  border: 1.5px solid var(--_bd);
  border-radius: var(--radius-pill);
  cursor: pointer;
  white-space: nowrap;
  transition: transform var(--dur-2) var(--ease-emphasized),
              background var(--dur-2) var(--ease-standard),
              box-shadow var(--dur-2) var(--ease-standard),
              border-color var(--dur-2) var(--ease-standard);
}
.btn:hover  { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }

/* Primary — signature ink-black pill with trailing arrow */
.btn--primary { --_bg: var(--black); --_fg: #fff; box-shadow: var(--shadow-sm); }
.btn--primary:hover { --_bg: var(--black-hover); box-shadow: var(--shadow-black); }

/* Brand — azure/cornflower */
.btn--brand { --_bg: var(--blue-500); --_fg: #fff; box-shadow: var(--shadow-sm); }
.btn--brand:hover { --_bg: var(--blue-600); box-shadow: var(--shadow-brand); }

/* Secondary — light surface */
.btn--secondary { --_bg: var(--gray-0); --_fg: var(--ink-700); --_bd: var(--border); box-shadow: var(--shadow-xs); }
.btn--secondary:hover { --_bd: var(--border-strong); --_bg: var(--gray-0); }

/* Outline */
.btn--outline { --_bg: transparent; --_fg: var(--ink-700); --_bd: var(--ink-700); }
.btn--outline:hover { --_bg: var(--ink-700); --_fg: #fff; }

/* Ghost */
.btn--ghost { --_bg: transparent; --_fg: var(--ink-700); }
.btn--ghost:hover { --_bg: var(--gray-100); }

/* On dark surfaces */
.btn--on-dark { --_bg: #fff; --_fg: var(--ink-800); }
.btn--on-dark:hover { --_bg: var(--blue-50); }

/* Sizes */
.btn--sm { padding: 0.625rem 1.125rem; font-size: var(--fs-xs); }
.btn--lg { padding: 1.0625rem 1.875rem; font-size: var(--fs-body); }
.btn--block { display: flex; width: 100%; }

.btn[disabled], .btn.is-disabled { opacity: .5; pointer-events: none; }

/* Trailing arrow chip inside a button */
.btn .btn__arrow {
  display: grid; place-items: center;
  width: 1.5em; height: 1.5em;
  border-radius: var(--radius-circle);
  background: rgba(255,255,255,.16);
  transition: transform var(--dur-2) var(--ease-emphasized);
}
.btn--secondary .btn__arrow,
.btn--outline .btn__arrow { background: var(--blue-50); color: var(--blue-600); }
.btn:hover .btn__arrow { transform: translate(2px,-2px); }

/* Icon button — circular, the reference's core motif */
.icon-btn {
  display: inline-grid; place-items: center;
  width: 44px; height: 44px;
  border-radius: var(--radius-circle);
  background: var(--gray-0);
  color: var(--ink-700);
  border: 1.5px solid var(--border);
  box-shadow: var(--shadow-xs);
  transition: transform var(--dur-2) var(--ease-emphasized),
              background var(--dur-2) var(--ease-standard),
              color var(--dur-2) var(--ease-standard),
              border-color var(--dur-2) var(--ease-standard);
}
.icon-btn:hover { transform: translateY(-2px); border-color: var(--border-strong); }
.icon-btn--dark  { background: var(--black); color: #fff; border-color: transparent; box-shadow: var(--shadow-black); }
.icon-btn--dark:hover { background: var(--black-hover); }
.icon-btn--brand { background: var(--blue-500); color: #fff; border-color: transparent; box-shadow: var(--shadow-brand); }
.icon-btn--brand:hover { background: var(--blue-600); }
.icon-btn--lg { width: 56px; height: 56px; }
.icon-btn--sm { width: 36px; height: 36px; }
/* signature ↗ nudge on hover */
.icon-btn .nudge { transition: transform var(--dur-2) var(--ease-emphasized); }
.icon-btn:hover .nudge { transform: translate(2px,-2px); }

/* ============================================================================
   06 · PILLS · CHIPS · TAGS · BADGES
   ========================================================================== */
.pill {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 0.4375rem 0.875rem;
  font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  border-radius: var(--radius-pill);
  background: var(--gray-0);
  color: var(--ink-700);
  border: 1.5px solid var(--border);
  transition: all var(--dur-2) var(--ease-standard);
}
.pill--active { background: var(--black); color: #fff; border-color: transparent; }
.pill--brand  { background: var(--blue-500); color: #fff; border-color: transparent; }
.pill--tint   { background: var(--blue-50); color: var(--blue-700); border-color: transparent; }
.pill[data-toggle]:hover { border-color: var(--border-strong); cursor: pointer; }

/* Frosted glass pill (ref's mtDNA / Y-STR labels) */
.glass-pill {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 0.5rem 0.9375rem;
  font-size: var(--fs-xs); font-weight: var(--fw-semibold);
  color: var(--ink-700);
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: var(--radius-pill);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  box-shadow: var(--shadow-xs);
}

/* Badge — small status label */
.badge {
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  font-size: var(--fs-mono); font-weight: var(--fw-bold);
  font-family: var(--font-mono); letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  background: var(--blue-50); color: var(--blue-700);
}
.badge--success { background: var(--success-50); color: var(--success-700); }
.badge--warning { background: var(--warning-50); color: var(--warning-700); }
.badge--danger  { background: var(--danger-50);  color: var(--danger-700); }
.badge--neutral { background: var(--gray-100);   color: var(--gray-700); }
.badge--solid   { background: var(--black); color: #fff; }

/* Status dot */
.dot { width: 8px; height: 8px; border-radius: var(--radius-circle); background: var(--gray-400); display: inline-block; }
.dot--live { background: var(--success-500); box-shadow: 0 0 0 4px var(--success-50); }
.dot--warn { background: var(--warning-500); }
.dot--off  { background: var(--gray-300); }

/* Avatar */
.avatar { width: 44px; height: 44px; border-radius: var(--radius-circle); object-fit: cover; border: 2px solid #fff; box-shadow: var(--shadow-sm); }
.avatar--sm { width: 32px; height: 32px; }
.avatar--lg { width: 64px; height: 64px; }
.avatar-stack { display: flex; }
.avatar-stack .avatar + .avatar { margin-left: -12px; }

/* Rating (ref ★) */
.rating { display: inline-flex; align-items: center; gap: 0.375rem; font-weight: var(--fw-bold); font-size: var(--fs-sm); color: var(--ink-700); }
.rating .star { color: var(--blue-500); }

/* ============================================================================
   07 · CARDS & DATA TILES
   ========================================================================== */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: var(--space-6);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-3) var(--ease-emphasized),
              box-shadow var(--dur-3) var(--ease-standard),
              border-color var(--dur-3) var(--ease-standard);
}
.card--interactive:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
.card--flat   { box-shadow: none; }
.card--tint   { background: var(--surface-tint); border-color: transparent; }
.card--brand  { background: var(--surface-brand); border-color: transparent; color: #fff; box-shadow: var(--shadow-brand); }
.card--brand :is(h3,h4,h5,p) { color: #fff; }
.card--dark   { background: var(--black); border-color: transparent; color: var(--text-on-dark); }
.card--dark :is(h3,h4,h5) { color: #fff; }
.card--lg { padding: var(--space-8); border-radius: var(--radius-2xl); }
.card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }

/* Feature card with icon medallion */
.feature__icon {
  display: grid; place-items: center;
  width: 56px; height: 56px;
  border-radius: var(--radius-md);
  background: var(--blue-50); color: var(--blue-600);
  margin-bottom: var(--space-4);
}
.card--brand .feature__icon { background: rgba(255,255,255,.18); color: #fff; }
.feature__title { font-size: var(--fs-h4); font-weight: var(--fw-semibold); margin-bottom: var(--space-2); }

/* Data tile — value over small gray label (ref's $18,311 / Quantity DNA) */
.tile { display: flex; flex-direction: column; gap: 0.125rem; }
.tile__value { font-family: var(--font-display); font-size: var(--fs-h3); font-weight: var(--fw-bold); color: var(--ink-700); letter-spacing: var(--tracking-tight); }
.tile__label { font-size: var(--fs-xs); color: var(--text-muted); font-weight: var(--fw-medium); }
.card--brand .tile__value, .card--brand .tile__label,
.card--dark .tile__value { color: #fff; }
.card--dark .tile__label { color: rgba(255,255,255,.62); }

.tile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
.tile-grid--2 { grid-template-columns: repeat(2, 1fr); }

/* Profile / doctor card (ref) */
.profile {
  display: grid; grid-template-columns: 64px 1fr auto; gap: var(--space-4);
  align-items: center;
}
.profile__name { font-weight: var(--fw-semibold); color: var(--ink-700); }
.profile__meta { font-size: var(--fs-sm); color: var(--text-muted); }

/* ============================================================================
   08 · NAVIGATION
   ========================================================================== */
.navbar {
  position: sticky; top: 0; z-index: 50;
  height: var(--nav-h);
  display: flex; align-items: center;
  background: color-mix(in srgb, var(--canvas) 78%, transparent);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
.navbar__inner { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: var(--space-6); }
.navbar__links { display: flex; align-items: center; gap: var(--space-6); }
.navbar__links a {
  color: var(--text-default); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  padding: var(--space-2) 0; position: relative;
}
.navbar__links a:hover { color: var(--ink-700); }
.navbar__links a.is-active { color: var(--ink-700); font-weight: var(--fw-semibold); }
.navbar__actions { display: flex; align-items: center; gap: var(--space-3); }

/* Brand lockup */
.brand { display: inline-flex; align-items: center; gap: var(--space-3); font-family: var(--font-display); font-weight: var(--fw-extra); font-size: 1.1875rem; letter-spacing: -0.02em; color: var(--ink-700); }
.brand__mark { width: 38px; height: 38px; border-radius: var(--radius-sm); display: grid; place-items: center; background: var(--blue-500); color: #fff; box-shadow: var(--shadow-sm); }

@media (max-width: 820px) { .navbar__links { display: none; } }

/* Footer */
.footer { background: var(--black); color: rgba(255,255,255,.7); padding-block: var(--space-20) var(--space-10); }
.footer h5 { color: #fff; font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: var(--tracking-wide); margin-bottom: var(--space-4); font-family: var(--font-mono); font-weight: var(--fw-bold); }
.footer a { color: rgba(255,255,255,.66); font-size: var(--fs-sm); display: inline-block; padding: var(--space-1) 0; }
.footer a:hover { color: #fff; }
.footer .brand { color: #fff; }
.footer__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: var(--space-8); }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-16); padding-top: var(--space-6); border-top: 1px solid rgba(255,255,255,.12); font-size: var(--fs-xs); color: rgba(255,255,255,.5); }
@media (max-width: 820px) { .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } }

/* ============================================================================
   09 · FORMS
   ========================================================================== */
.field { display: flex; flex-direction: column; gap: var(--space-2); }
.label { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--ink-700); }
.hint  { font-size: var(--fs-xs); color: var(--text-muted); }

.input, .select, .textarea {
  width: 100%;
  padding: 0.875rem 1.125rem;
  font-size: var(--fs-sm);
  color: var(--ink-700);
  background: var(--gray-0);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-md);
  transition: border-color var(--dur-2) var(--ease-standard), box-shadow var(--dur-2) var(--ease-standard);
}
.input::placeholder, .textarea::placeholder { color: var(--text-subtle); }
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--blue-400); box-shadow: var(--shadow-focus);
}
.textarea { min-height: 120px; resize: vertical; }
.field.is-error .input { border-color: var(--danger-500); }
.field.is-error .hint { color: var(--danger-700); }

/* Search field with leading icon */
.search { position: relative; }
.search .input { padding-left: 2.875rem; border-radius: var(--radius-pill); }
.search .search__icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); pointer-events: none; }

/* Inline newsletter / CTA input group */
.input-group { display: flex; gap: var(--space-2); background: var(--gray-0); border: 1.5px solid var(--border); border-radius: var(--radius-pill); padding: 0.375rem 0.375rem 0.375rem 1.25rem; align-items: center; }
.input-group .input { border: 0; box-shadow: none; padding-inline: 0; background: transparent; }
.input-group .input:focus { box-shadow: none; }

/* Checkbox / toggle */
.check { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--fs-sm); cursor: pointer; }
.check input { accent-color: var(--blue-500); width: 18px; height: 18px; }

/* ============================================================================
   10 · MARKETING BLOCKS
   ========================================================================== */

/* ---- Hero --------------------------------------------------------------- */
.hero { position: relative; overflow: hidden; padding-block: clamp(var(--space-16), 8vw, var(--space-24)); }
.hero__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(var(--space-8), 5vw, var(--space-16)); align-items: center; }
.hero__title { margin-block: var(--space-5) var(--space-5); }
.hero__cta { margin-top: var(--space-8); }
.hero__proof { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-10); }
.hero__visual { position: relative; }
@media (max-width: 900px) { .hero__grid { grid-template-columns: 1fr; } }

/* Soft ambient blobs for hero/section backgrounds */
.blob { position: absolute; border-radius: var(--radius-circle); filter: blur(60px); opacity: .55; z-index: 0; pointer-events: none; }
.blob--blue  { background: var(--blue-300); }
.blob--azure { background: var(--blue-200); }
.has-blobs > * { position: relative; z-index: 1; }

/* ---- Stats band --------------------------------------------------------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-8); }
.stat__value { font-family: var(--font-display); font-size: var(--fs-display-2); font-weight: var(--fw-extra); letter-spacing: var(--tracking-display); color: var(--ink-700); line-height: 1; }
.stat__label { margin-top: var(--space-2); color: var(--text-muted); font-size: var(--fs-sm); }
.section--dark .stat__value { color: #fff; }
.section--dark .stat__label { color: rgba(255,255,255,.6); }
@media (max-width: 720px) { .stats { grid-template-columns: 1fr 1fr; gap: var(--space-6); } }

/* ---- Logo cloud --------------------------------------------------------- */
.logo-cloud { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(var(--space-6), 5vw, var(--space-16)); opacity: .7; }
.logo-cloud span { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 1.25rem; color: var(--gray-500); letter-spacing: -0.01em; }

/* ---- Pricing ------------------------------------------------------------ */
.price-card { display: flex; flex-direction: column; }
.price-card.is-featured { background: var(--black); color: var(--text-on-dark); border-color: transparent; box-shadow: var(--shadow-xl); }
.price-card.is-featured :is(h3,h4,.price__amount) { color: #fff; }
.price__amount { font-family: var(--font-display); font-size: var(--fs-display-2); font-weight: var(--fw-extra); letter-spacing: var(--tracking-display); color: var(--ink-700); line-height: 1; }
.price__period { font-size: var(--fs-sm); color: var(--text-muted); }
.price-card.is-featured .price__period { color: rgba(255,255,255,.6); }
.price__list { display: flex; flex-direction: column; gap: var(--space-3); margin-block: var(--space-6); }
.price__list li { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--fs-sm); }
.price__check { color: var(--blue-500); flex: none; margin-top: 1px; }
.price-card.is-featured .price__check { color: var(--blue-300); }

/* ---- Testimonial -------------------------------------------------------- */
.quote { font-family: var(--font-display); font-size: var(--fs-h2); font-weight: var(--fw-semibold); line-height: var(--lh-snug); letter-spacing: var(--tracking-tight); color: var(--ink-700); text-wrap: balance; }
.quote__by { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-8); }

/* ---- CTA band ----------------------------------------------------------- */
.cta-band { position: relative; overflow: hidden; border-radius: var(--radius-2xl); padding: clamp(var(--space-12), 7vw, var(--space-24)); background: var(--black); color: var(--text-on-dark); }
.cta-band :is(h2,.h2) { color: #fff; }

/* ============================================================================
   11 · UTILITIES
   ========================================================================== */
.u-flex   { display: flex; }
.u-grid   { display: grid; }
.u-hidden { display: none; }
.u-center-text { text-align: center; }
.u-relative { position: relative; }
.u-full { width: 100%; }
.u-round-full { border-radius: var(--radius-pill); }

.gap-2 { gap: var(--space-2); } .gap-3 { gap: var(--space-3); } .gap-4 { gap: var(--space-4); } .gap-6 { gap: var(--space-6); }
.mt-2 { margin-top: var(--space-2); } .mt-4 { margin-top: var(--space-4); } .mt-6 { margin-top: var(--space-6); } .mt-8 { margin-top: var(--space-8); } .mt-12 { margin-top: var(--space-12); }
.mb-2 { margin-bottom: var(--space-2); } .mb-4 { margin-bottom: var(--space-4); } .mb-6 { margin-bottom: var(--space-6); } .mb-8 { margin-bottom: var(--space-8); }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.flex-col { flex-direction: column; }
.wrap { flex-wrap: wrap; }

.bg-canvas  { background: var(--canvas); }
.bg-surface { background: var(--surface); }
.bg-tint    { background: var(--surface-tint); }
.bg-brand   { background: var(--surface-brand); color: #fff; }
.bg-black   { background: var(--black); color: var(--text-on-dark); }

.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }

.round-md { border-radius: var(--radius-md); }
.round-lg { border-radius: var(--radius-lg); }
.round-xl { border-radius: var(--radius-xl); }

/* ============================================================================
   12 · MOTION & ACCESSIBILITY
   ========================================================================== */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity var(--dur-4) var(--ease-emphasized), transform var(--dur-4) var(--ease-emphasized); }
.reveal.is-in { opacity: 1; transform: none; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: -999px; top: var(--space-2); z-index: 100; }
.skip-link:focus { left: var(--space-4); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .btn:hover, .card--interactive:hover, .icon-btn:hover { transform: none; }
}
