/* Bpharma Web — generated from tokens.json */
:root, [data-theme="light"] {
  --brand-indigo: #382760;
  --brand-indigo-deep: #2D2549;
  --brand-plum: #4A3874;
  --brand-violet: #6851A1;
  --brand-teal: #43BAB0;
  --brand-teal-deep: #2E9A92;
  --brand-teal-light: #7BCFC8;
  --teal-ink: #2B7872;
  --brand-slate: #5E6877;
  --brand-lavender: #F5F3FA;
  --brand-mint: #EAF7F5;
  --surface: #FFFFFF;
  --surface-raised: #FFFFFF;
  --surface-lavender: var(--brand-lavender);
  --surface-mint: var(--brand-mint);
  --line: #DFE3EA;
  --line-control: #868E99;
  --ink: var(--brand-indigo);
  --ink-lead: var(--brand-indigo-deep);
  --ink-muted: var(--brand-slate);
  --ink-faint: var(--brand-slate);
  --accent: var(--teal-ink);
  --link: var(--brand-violet);
  --bar-violet: var(--brand-violet);
  --bar-teal: var(--brand-teal);
  --badge-violet: var(--brand-violet);
  --badge-teal: var(--brand-teal-deep);
  --on-badge: #FFFFFF;
  --action: var(--brand-indigo);
  --action-hover: var(--brand-indigo-deep);
  --on-action: #FFFFFF;
  --focus: var(--brand-violet);
  --danger: #B3261E;
  --overlay: #38276073;
  --overlay-strong: #382760BF;
  --motif-circle: #6851A1A6;
  --focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px #6851A1;
  --shadow-overlay: 0 12px 32px #3827602E;
  --shadow-raise: 0 8px 24px #3827601F;
}
[data-theme="subtle"] {
  --surface: var(--brand-lavender);
  --surface-raised: #FFFFFF;
  --surface-lavender: #FFFFFF;
  --surface-mint: var(--brand-mint);
  --line: #DFE3EA;
  --line-control: #868E99;
  --ink: var(--brand-indigo);
  --ink-lead: var(--brand-indigo-deep);
  --ink-muted: var(--brand-slate);
  --ink-faint: var(--brand-slate);
  --accent: var(--teal-ink);
  --link: var(--brand-violet);
  --bar-violet: var(--brand-violet);
  --bar-teal: var(--brand-teal);
  --badge-violet: var(--brand-violet);
  --badge-teal: var(--brand-teal-deep);
  --on-badge: #FFFFFF;
  --action: var(--brand-indigo);
  --action-hover: var(--brand-indigo-deep);
  --on-action: #FFFFFF;
  --focus: var(--brand-violet);
  --danger: #B3261E;
  --focus-ring: 0 0 0 2px #F5F3FA, 0 0 0 4px #6851A1;
  --shadow-overlay: 0 12px 32px #3827602E;
  --shadow-raise: 0 8px 24px #3827601F;
}
[data-theme="indigo"] {
  --surface: var(--brand-indigo);
  --surface-raised: var(--brand-plum);
  --surface-lavender: var(--brand-plum);
  --surface-mint: var(--brand-plum);
  --line: #5A4590;
  --line-control: #A99FC9;
  --ink: #FFFFFF;
  --ink-lead: #E8E7EE;
  --ink-muted: #E3E6EF;
  --ink-faint: #CEC9DA;
  --accent: var(--brand-teal);
  --link: var(--brand-teal-light);
  --bar-violet: var(--brand-teal);
  --bar-teal: var(--brand-teal);
  --badge-violet: var(--brand-teal);
  --badge-teal: var(--brand-teal);
  --on-badge: var(--brand-indigo);
  --action: var(--brand-teal);
  --action-hover: var(--brand-teal-light);
  --on-action: var(--brand-indigo);
  --focus: var(--brand-teal);
  --danger: #FFB4AB;
  --focus-ring: 0 0 0 2px #382760, 0 0 0 4px #43BAB0;
  --shadow-overlay: 0 12px 32px #0000004D;
  --shadow-raise: 0 8px 24px #00000040;
}
[data-theme="deep"] {
  --surface: var(--brand-indigo-deep);
  --surface-raised: var(--brand-indigo);
  --surface-lavender: var(--brand-indigo);
  --surface-mint: var(--brand-indigo);
  --line: #4A3874;
  --line-control: #A99FC9;
  --ink: #FFFFFF;
  --ink-lead: #E8E7EE;
  --ink-muted: #E3E6EF;
  --ink-faint: #CEC9DA;
  --accent: var(--brand-teal);
  --link: var(--brand-teal-light);
  --bar-violet: var(--brand-teal);
  --bar-teal: var(--brand-teal);
  --badge-violet: var(--brand-teal);
  --badge-teal: var(--brand-teal);
  --on-badge: var(--brand-indigo);
  --action: var(--brand-teal);
  --action-hover: var(--brand-teal-light);
  --on-action: var(--brand-indigo);
  --focus: var(--brand-teal);
  --danger: #FFB4AB;
  --focus-ring: 0 0 0 2px #2D2549, 0 0 0 4px #43BAB0;
  --shadow-overlay: 0 12px 32px #0000004D;
  --shadow-raise: 0 8px 24px #00000040;
}
:root {
  --space-1: 0.3rem;
  --space-2: 0.6rem;
  --space-3: 0.9rem;
  --space-4: 1.2rem;
  --space-5: 1.5rem;
  --space-6: 1.8rem;
  --space-8: 2.4rem;
  --space-10: 3rem;
  --space-12: 3.6rem;
  --space-16: 4.8rem;
  --radius-xs: 0.24rem;
  --radius-sm: 0.48rem;
  --radius-md: 0.6rem;
  --radius-lg: 0.84rem;
  --radius-pill: 999px;
  --fs-display: clamp(2.125rem, 1.7969rem + 1.4cqi, 2.9169rem);
  --fs-h2: clamp(1.875rem, 1.616rem + 1.105cqi, 2.5rem);
  --fs-h3: clamp(1.5rem, 1.3964rem + 0.442cqi, 1.75rem);
  --fs-h4: clamp(1.3125rem, 1.2348rem + 0.3315cqi, 1.5rem);
  --fs-h5: clamp(1.1875rem, 1.1272rem + 0.2575cqi, 1.3331rem);
  --fs-lead: clamp(1.1875rem, 1.0925rem + 0.4055cqi, 1.4169rem);
  --fs-tagline: clamp(1.125rem, 1.0388rem + 0.368cqi, 1.3331rem);
  --fs-quote: clamp(1.375rem, 1.2196rem + 0.663cqi, 1.75rem);
  --fs-numeral: clamp(1.75rem, 1.5773rem + 0.737cqi, 2.1669rem);
  --fs-overline: clamp(0.9375rem, 0.8425rem + 0.4055cqi, 1.1669rem);
  --container-max: 71.84rem;
  --gutter: clamp(1.25rem, 5.1cqi, 4.08rem);
  --section-y: clamp(3rem, 1.7569rem + 5.3039cqi, 6rem);
  --size-control-lg: 3.42rem;
  --size-control: 2.94rem;
  --size-field: 2.94rem;
  --size-checkbox: 1.2rem;
  --size-icon: 1.5rem;
  --size-icon-lg: 1.92rem;
  --size-badge-sm: 2.64rem;
  --size-badge-md: 3.12rem;
  --size-badge-lg: 3.84rem;
  --size-logo: 2.4rem;
  --size-logo-light: 1.7rem;
  --screen-xs: 30rem;
  --screen-sm: 40rem;
  --screen-md: 48rem;
  --screen-lg: 64rem;
  --screen-xl: 80rem;
  --border-hairline: 1px;
  --border-strong: 2px;
  --border-accent: 0.33rem;
  --border-rule: 0.6rem;
  --font-sans: "Public Sans", Aptos, "Segoe UI", Arial, sans-serif;
}
.bp-display { font-family: var(--font-sans); font-size: 46.67px; line-height: 1.12; font-weight: 700; }
.bp-h2 { font-family: var(--font-sans); font-size: 40px; line-height: 1.18; font-weight: 700; }
.bp-h3 { font-family: var(--font-sans); font-size: 28px; line-height: 1.25; font-weight: 700; }
.bp-h4 { font-family: var(--font-sans); font-size: 24px; line-height: 1.3; font-weight: 700; }
.bp-h5 { font-family: var(--font-sans); font-size: 21.33px; line-height: 1.3; font-weight: 700; }
.bp-lead { font-family: var(--font-sans); font-size: 22.67px; line-height: 1.45; font-weight: 400; }
.bp-body { font-family: var(--font-sans); font-size: 18px; line-height: 1.6; font-weight: 400; }
.bp-body-sm { font-family: var(--font-sans); font-size: 16px; line-height: 1.55; font-weight: 400; }
.bp-tagline { font-family: var(--font-sans); font-size: 21.33px; line-height: 1.35; font-weight: 700; letter-spacing: 0.01em; }
.bp-quote { font-family: var(--font-sans); font-size: 28px; line-height: 1.3; font-weight: 700; }
.bp-numeral { font-family: var(--font-sans); font-size: 34.67px; line-height: 1; font-weight: 700; }
.bp-overline { font-family: var(--font-sans); font-size: 18.67px; line-height: 1.25; font-weight: 700; letter-spacing: 0.18em; }
.bp-eyebrow { font-family: var(--font-sans); font-size: 14.67px; line-height: 1.3; font-weight: 700; letter-spacing: 0.18em; }
.bp-subhead { font-family: var(--font-sans); font-size: 18.67px; line-height: 1.3; font-weight: 700; letter-spacing: 0.02em; }
.bp-button { font-family: var(--font-sans); font-size: 18.67px; line-height: 1.2; font-weight: 700; }
.bp-button-sm { font-family: var(--font-sans); font-size: 16px; line-height: 1.2; font-weight: 700; }
.bp-label { font-family: var(--font-sans); font-size: 15px; line-height: 1.3; font-weight: 700; }
.bp-caption { font-family: var(--font-sans); font-size: 14px; line-height: 1.45; font-weight: 400; }
.bp-meta { font-family: var(--font-sans); font-size: 13px; line-height: 1.4; font-weight: 400; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-Italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("fonts/PublicSans-BoldItalic.woff2") format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }
