{"id":11618,"date":"2026-10-16T13:46:46","date_gmt":"2026-10-16T17:46:46","guid":{"rendered":"https:\/\/crassulapharma.com\/?page_id=11618"},"modified":"2026-10-24T14:07:04","modified_gmt":"2026-10-24T18:07:04","slug":"about-us","status":"publish","type":"page","link":"https:\/\/crassulapharma.com\/es\/about-us\/","title":{"rendered":"About Us"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11618\" class=\"elementor elementor-11618\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11fcbf2 e-con-full e-flex e-con e-parent\" data-id=\"11fcbf2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac417c3 elementor-widget elementor-widget-html\" data-id=\"ac417c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n     CRASSULA \u00b7 about-us \u00b7 contenido para el widget HTML de Elementor\n     Pegar TODO este archivo en un widget HTML (contenedor a ancho\n     completo, sin padding; p\u00e1gina \"Elementor Full Width\" o \"Canvas\").\n     Incluye todo: SEO, fuentes, CSS, datos estructurados, contenido y JS.\n     ========================================================= -->\n\n<!-- SEO \u00b7 el script de abajo mueve estas etiquetas al <head> y reemplaza\n     las que traiga Rank Math\/Yoast o el tema. -->\n<title>About Crassula Pharmaceuticals | Global Pharma CDMO<\/title>\n<meta name=\"description\" content=\"Crassula Pharmaceuticals is a global CDMO delivering Rx, OTC and high-bioavailability nutraceuticals through GMP and ISO-certified manufacturing.\">\n<meta name=\"robots\" content=\"index, follow, max-image-preview:large\">\n<link rel=\"canonical\" href=\"https:\/\/crassulapharma.com\/about-us\/\">\n<meta name=\"theme-color\" content=\"#101A42\">\n<meta property=\"og:type\" content=\"website\">\n<meta property=\"og:site_name\" content=\"Crassula Pharmaceuticals\">\n<meta property=\"og:locale\" content=\"en_US\">\n<meta property=\"og:title\" content=\"About Crassula Pharmaceuticals | Global Pharma CDMO\">\n<meta property=\"og:description\" content=\"Crassula Pharmaceuticals is a global CDMO delivering Rx, OTC and high-bioavailability nutraceuticals through GMP and ISO-certified manufacturing.\">\n<meta property=\"og:url\" content=\"https:\/\/crassulapharma.com\/about-us\/\">\n<meta property=\"og:image\" content=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/09\/Nutra_Products-e1759187541756.jpg\">\n<meta property=\"og:image:alt\" content=\"Crassula Pharmaceuticals nutraceutical products\">\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:site\" content=\"@crassula_llc\">\n<meta name=\"twitter:title\" content=\"About Crassula Pharmaceuticals | Global Pharma CDMO\">\n<meta name=\"twitter:description\" content=\"Crassula Pharmaceuticals is a global CDMO delivering Rx, OTC and high-bioavailability nutraceuticals through GMP and ISO-certified manufacturing.\">\n<meta name=\"twitter:image\" content=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/09\/Nutra_Products-e1759187541756.jpg\">\n<script>\n\/* Move this page's SEO tags into <head>; replace any duplicate set by the theme or SEO plugin *\/\n(function () {\n  var head = document.head, me = document.currentScript, el = me.previousElementSibling, tags = [];\n  while (el && \/^(META|LINK|TITLE)$\/.test(el.tagName)) { tags.unshift(el); el = el.previousElementSibling; }\n  tags.forEach(function (t) {\n    var sel = t.tagName === 'TITLE' ? 'title'\n      : t.tagName === 'LINK' ? 'link[rel=\"' + t.getAttribute('rel') + '\"]'\n      : t.hasAttribute('property') ? 'meta[property=\"' + t.getAttribute('property') + '\"]'\n      : 'meta[name=\"' + t.getAttribute('name') + '\"]';\n    [].slice.call(head.querySelectorAll(sel)).forEach(function (old) { old.parentNode.removeChild(old); });\n    head.appendChild(t);\n  });\n})();\n<\/script>\n\n<!-- Fuentes: Poppins 100\u2013900 + it\u00e1licas -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;display=swap\">\n\n<!-- Estilos incluidos para que la p\u00e1gina funcione sola (widget o navegador) -->\n<style>\nbody { margin: 0; }\n\/* =========================================================\n   CRASSULA PHARMACEUTICALS \u2014 about.css \u00b7 PALETTE v2 (navy #101A42 \u00b7 white \u00b7 green #5BA044 \u00b7 grey #ECECEC)\n   Base design system (tokens, components, motion) + About Us page.\n   Load FIRST on every page. Page add-ons (facilities.css, social.css, \u2026) load after it.\n   Palette: #5BA044 \u00b7 #5BA044 \u00b7 #FFFFFF \u00b7 #ECECEC + derived ink\n   Type: Poppins 100\u2013900 + italics (Google Fonts)\n\n   CONTENTS\n   00  WordPress \/ theme guard\n   01  Tokens\n   02  Base\n   03  Layout & surfaces\n   04  Typography\n   05  Components\n       05.1 Buttons            05.6 Figures\n       05.2 Page hero          05.7 Markers (pending \/ review)\n       05.3 Breadcrumbs        05.8 Cursor follower\n       05.4 Scroll cue         05.9 Page transition\n       05.5 Sub navigation\n   06  Sections (shared blocks)\n   07  Pages\n       07.1 About Us  (\/about-us\/)          \u2014 APPROVED v1.3\n       07.2 Facilities \u2192 facilities.css (separate file)\n       07.3 Social Responsibility \u2192 social.css (separate file)\n       07.4 Team \u00b7 07.5 Pharma\n       07.6 Supplements \u00b7 07.8 Media Releases\n       07.9 Contact \u00b7 07.10 Home\n   08  Motion system (reveals, keyframes, reduced motion)\n   09  Responsive\n   ========================================================= *\/\n\n\/* =========================================================\n   00  WORDPRESS \/ THEME GUARD\n   The Hello theme and Elementor kit style every <a>, <button> and\n   [type=button|submit] (magenta #c36 hover background, white text,\n   nowrap, border). These rules neutralise them inside .cr-page;\n   component rules below re-apply our own states.\n   ========================================================= *\/\n.cr-page a:hover, .cr-page a:focus, .cr-page a:active { color: inherit; }\n.cr-page button, .cr-page [type=\"button\"], .cr-page [type=\"submit\"] { white-space: normal; text-transform: none; font-family: inherit; letter-spacing: inherit; box-shadow: none; }\n.cr-page button:hover, .cr-page button:focus, .cr-page button:active { background-color: transparent; color: inherit; text-decoration: none; }\n\n\/* =========================================================\n   01  TOKENS\n   ========================================================= *\/\n:root {\n  \/* Palette *\/\n  --cr-green: #5BA044;\n  --cr-green-text: #3E7A2C;   \/* derived: brand green for text on white\/grey *\/        \/* primary \u00b7 CTAs \u00b7 impact sections (cream text 4.91:1) *\/\n  --cr-lime: #5BA044;         \/* accents \u00b7 hover \u00b7 data \u2014 never text on light *\/\n  --cr-cream: #FFFFFF;        \/* main light background *\/\n  --cr-peach: #ECECEC;        \/* alternate surfaces *\/\n  --cr-ink: #101A42;          \/* derived near-black green \u00b7 text + dark sections (15.4:1 on cream) *\/\n  --cr-ink-70: #454D6B;       \/* derived muted ink (7.97:1 on cream, 7.0:1 on peach) *\/\n  --cr-line: rgba(16, 26, 66, 0.16);\n  --cr-line-dark: rgba(255, 255, 255, 0.2);\n\n  \/* Type *\/\n  --cr-font: \"Poppins\", \"Segoe UI\", system-ui, sans-serif;\n  --cr-fs-display: clamp(2.4rem, 10.5vw, 9.5rem);\n  --cr-fs-h2: clamp(2.25rem, 1.2rem + 3.6vw, 4.5rem);\n  --cr-fs-h3: clamp(1.375rem, 1.1rem + 0.9vw, 1.875rem);\n  --cr-fs-quote: clamp(2rem, 1rem + 3.6vw, 4.25rem);\n  --cr-fs-lead: clamp(1.0625rem, 0.95rem + 0.45vw, 1.3125rem);\n  --cr-fs-body: 1rem;\n  --cr-fs-small: 0.875rem;\n  --cr-fs-label: 0.75rem;\n  --cr-tracking-label: 0.18em;\n\n  \/* Space *\/\n  --cr-s1: 4px; --cr-s2: 8px; --cr-s3: 12px; --cr-s4: 16px; --cr-s5: 24px; --cr-s6: 32px; --cr-s7: 48px; --cr-s8: 64px; --cr-s9: 96px; --cr-s10: 144px;\n  --cr-container: 1360px;\n  --cr-gutter: clamp(20px, 4.5vw, 64px);\n\n  \/* Shape & motion *\/\n  --cr-r-pill: 999px;\n  --cr-r-card: 20px;\n  --cr-ease: cubic-bezier(0.22, 1, 0.36, 1);\n  --cr-ease-io: cubic-bezier(0.65, 0, 0.35, 1);\n  --cr-t-fast: 300ms;\n  --cr-t-med: 560ms;\n  --cr-t-slow: 900ms;\n}\n\n\/* =========================================================\n   02  BASE\n   ========================================================= *\/\n.cr-page, .cr-page * { box-sizing: border-box; }\n.cr-page { margin: 0; background: var(--cr-cream); color: var(--cr-ink); font-family: var(--cr-font); font-size: var(--cr-fs-body); line-height: 1.65; -webkit-font-smoothing: antialiased; }\n.cr-page img { max-width: 100%; display: block; }\n.cr-page a { color: inherit; }\n.cr-page :focus-visible { outline: 2px solid var(--cr-green); outline-offset: 3px; border-radius: 4px; }\n.cr-dark :focus-visible, .cr-green-bg :focus-visible { outline-color: var(--cr-lime); }\n.cr-wrap { max-width: var(--cr-container); margin: 0 auto; padding: 0 var(--cr-gutter); }\n.cr-section { position: relative; padding: var(--cr-s10) 0; }\n.cr-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\n\n\/* =========================================================\n   03  LAYOUT & SURFACES\n   ========================================================= *\/\n.cr-cream { background: var(--cr-cream); }\n.cr-peach { background: var(--cr-peach); }\n.cr-dark { background: var(--cr-ink); color: var(--cr-cream); }\n.cr-green-bg { background: var(--cr-green); color: var(--cr-cream); }\n\n\/* =========================================================\n   04  TYPOGRAPHY\n   ========================================================= *\/\n.cr-label {\n  display: inline-flex; align-items: center; gap: var(--cr-s3);\n  font-weight: 500; font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; line-height: 1.4;\n}\n.cr-label__idx { font-variant-numeric: tabular-nums; }\n.cr-label__bar { width: 40px; height: 1px; background: currentColor; opacity: .5; }\n.cr-h2 { font-weight: 600; font-size: var(--cr-fs-h2); line-height: 1.02; letter-spacing: -0.035em; margin: var(--cr-s5) 0 0; }\n.cr-h2 .t-200 { font-weight: 200; }\n.cr-h2 em, .cr-display em { font-style: italic; }\n.cr-h3 { font-weight: 600; font-size: var(--cr-fs-h3); line-height: 1.2; letter-spacing: -0.015em; margin: 0; }\n.cr-lead { font-size: var(--cr-fs-lead); line-height: 1.6; font-weight: 400; margin: var(--cr-s5) 0 0; max-width: 60ch; }\n.cr-muted { color: var(--cr-ink-70); }\n.cr-dark .cr-muted, .cr-green-bg .cr-muted { color: rgba(255, 255, 255, 0.86); }\n.t-100 { font-weight: 100; } .t-200 { font-weight: 200; } .t-300 { font-weight: 300; } .t-800 { font-weight: 800; }\n\n\/* Line-split reveal: lines are pre-marked in HTML (text always in DOM) *\/\n.cr-ln { display: block; overflow: hidden; padding-bottom: 0.06em; }\n.cr-ln > span { display: block; }\n\n\/* =========================================================\n   05  COMPONENTS\n   ========================================================= *\/\n\/* 05.1 Buttons *\/\n.cr-btn {\n  position: relative; display: inline-flex; align-items: center; gap: var(--cr-s3);\n  min-height: 52px; padding: 0 10px 0 26px; border-radius: var(--cr-r-pill);\n  font-family: var(--cr-font); font-weight: 500; font-size: 0.9375rem; letter-spacing: 0.01em; text-decoration: none;\n  border: 1.5px solid transparent; overflow: hidden; isolation: isolate;\n  transition: color var(--cr-t-med) var(--cr-ease), border-color var(--cr-t-med) var(--cr-ease);\n}\n.cr-btn__icon { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; transition: transform 700ms var(--cr-ease), background-color var(--cr-t-med) var(--cr-ease), color var(--cr-t-med) var(--cr-ease); }\n.cr-btn::before { content: \"\"; position: absolute; inset: 0; z-index: -1; border-radius: inherit; transform: scaleX(0); transform-origin: left; transition: transform 700ms var(--cr-ease); }\n.cr-btn--primary { background: var(--cr-green); color: var(--cr-cream); }\n.cr-btn--primary .cr-btn__icon { background: var(--cr-cream); color: var(--cr-green-text); }\n.cr-btn--primary::before { background: var(--cr-ink); }\n.cr-btn--ghost { background: transparent; color: var(--cr-cream); border-color: rgba(255, 255, 255, 0.6); }\n.cr-btn--ghost .cr-btn__icon { background: var(--cr-cream); color: var(--cr-ink); }\n.cr-btn--ghost::before { background: var(--cr-cream); }\n@media (hover: hover) {\n  .cr-btn:hover::before { transform: scaleX(1); }\n  .cr-btn:hover .cr-btn__icon { transform: rotate(-45deg); }\n  .cr-btn--ghost:hover { color: var(--cr-ink); border-color: var(--cr-cream); }\n  .cr-btn--ghost:hover .cr-btn__icon { background: var(--cr-ink); color: var(--cr-cream); }\n}\n\n\/* 05.2 Page hero (shared pattern) *\/\n.cr-hero { position: relative; isolation: isolate; overflow: hidden; min-height: min(100svh, 980px); display: flex; align-items: flex-end; color: var(--cr-cream); background: var(--cr-ink); }\n.cr-hero__media { position: absolute; inset: -10% 0; z-index: -2; }\n.cr-hero__media img { width: 100%; height: 100%; object-fit: cover; }\n.cr-hero::before { content: \"\"; position: absolute; inset: 0; z-index: -1;\n  background: linear-gradient(180deg, rgba(16, 26, 66,.62) 0%, rgba(16, 26, 66,.78) 55%, rgba(16, 26, 66,.94) 100%); }\n.cr-hero__grid { position: absolute; inset: 0; z-index: -1; pointer-events: none;\n  background-image: linear-gradient(to right, rgba(255, 255, 255,.07) 1px, transparent 1px);\n  background-size: calc((min(100vw, var(--cr-container)) - 2 * var(--cr-gutter)) \/ 12) 100%; background-position: center; }\n.cr-hero__inner { width: 100%; padding-top: calc(var(--cr-s10) + var(--cr-s6)); padding-bottom: var(--cr-s9); }\n.cr-hero__top { display: flex; justify-content: space-between; gap: var(--cr-s5); flex-wrap: wrap; }\n\/* 05.3 Breadcrumbs *\/\n.cr-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--cr-s2); margin: 0; padding: 0; font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; font-weight: 500; }\n.cr-crumbs li + li::before { content: \"\/\"; margin-right: var(--cr-s2); opacity: .6; }\n.cr-crumbs a { text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255,.5); }\n.cr-crumbs [aria-current] { color: var(--cr-lime); }\n\/* Hero display title *\/\n.cr-display { font-size: var(--cr-fs-display); line-height: 0.9; letter-spacing: -0.055em; margin: var(--cr-s7) 0 0; font-weight: 200; }\n.cr-display .t-800 { letter-spacing: -0.06em; }\n.cr-display__pre { display: block; font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; font-weight: 500; margin-bottom: var(--cr-s5); color: var(--cr-lime); }\n.cr-hero__foot { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--cr-s7); margin-top: var(--cr-s8); align-items: end; }\n.cr-answer { font-size: var(--cr-fs-lead); line-height: 1.6; margin: 0; max-width: 54ch; color: var(--cr-cream); }\n.cr-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--cr-line-dark); margin: 0; }\n.cr-specs div { padding: var(--cr-s4) var(--cr-s4) 0 0; }\n.cr-specs dt { font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; font-weight: 500; color: var(--cr-lime); }\n.cr-specs dd { margin: var(--cr-s2) 0 0; font-weight: 500; }\n\/* 05.4 Scroll cue *\/\n.cr-scroll { position: absolute; left: 50%; bottom: var(--cr-s5); transform: translateX(-50%); width: 48px; height: 64px; display: flex; align-items: center; justify-content: center; color: var(--cr-cream); }\n.cr-scroll__mouse { width: 26px; height: 40px; border: 2px solid rgba(255, 255, 255,.85); border-radius: 14px; position: relative; }\n.cr-scroll__wheel { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--cr-lime); }\n\n\/* Hero: display size inside heroes (moderate, max ~100px) *\/\n.cr-hero .cr-display { font-size: clamp(2.25rem, 1rem + 5.2vw, 6.25rem); line-height: .95; }\n\n\/* Hero variant: centered content *\/\n.cr-hero--center { align-items: center; text-align: center; }\n.cr-hero--center::before { background: linear-gradient(180deg, rgba(16, 26, 66,.55) 0%, rgba(16, 26, 66,.66) 50%, rgba(16, 26, 66,.82) 100%); }\n.cr-hero--center .cr-hero__inner { padding-top: var(--cr-s10); padding-bottom: calc(var(--cr-s10) + var(--cr-s5)); }\n.cr-hero--center .cr-hero__top { justify-content: center; }\n.cr-hero--center .cr-crumbs ol { justify-content: center; }\n.cr-hero--center .cr-display { margin-left: auto; margin-right: auto; }\n.cr-hero--center .cr-hero__foot { grid-template-columns: 1fr; justify-items: center; gap: var(--cr-s6); margin-top: var(--cr-s7); }\n.cr-hero--center .cr-answer { margin: 0 auto; max-width: 62ch; }\n.cr-hero--center .cr-specs { width: min(100%, 760px); }\n.cr-hero--center .cr-specs div { padding: var(--cr-s4) var(--cr-s3) 0; }\n\n\/* 05.5 Sub navigation (in-page) *\/\n.cr-subnav { position: sticky; top: var(--cr-sticky-offset, 0px); z-index: 30; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px) saturate(1.2); border-bottom: 1px solid var(--cr-line); }\n.cr-subnav ol { list-style: none; margin: 0 auto; padding: 0 var(--cr-gutter); max-width: var(--cr-container); display: flex; gap: var(--cr-s6); overflow-x: auto; scrollbar-width: none; }\n.cr-subnav ol::-webkit-scrollbar { display: none; }\n.cr-subnav a { position: relative; display: inline-flex; align-items: center; gap: var(--cr-s2); min-height: 56px; white-space: nowrap; text-decoration: none; font-size: var(--cr-fs-small); font-weight: 500; color: var(--cr-ink-70); transition: color var(--cr-t-fast) var(--cr-ease); }\n.cr-subnav a span { font-size: var(--cr-fs-label); letter-spacing: .1em; }\n.cr-subnav a::after { content: \"\"; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--cr-green); transform: scaleX(0); transform-origin: left; transition: transform var(--cr-t-med) var(--cr-ease); }\n.cr-subnav a:hover, .cr-subnav a[aria-current=\"true\"] { color: var(--cr-ink); }\n.cr-subnav a[aria-current=\"true\"]::after { transform: scaleX(1); }\n.cr-progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--cr-lime); transform-origin: left; transform: scaleX(0); }\n\n\/* 05.6 Figures (official images, parallax inside frame) *\/\n.cr-figure { margin: var(--cr-s8) 0 0; }\n.cr-figure__frame { position: relative; overflow: hidden; border-radius: var(--cr-r-card); background: var(--cr-peach); }\n.cr-figure__frame img { width: 100%; height: 118%; object-fit: cover; will-change: transform; transition: scale 1.2s var(--cr-ease); }\n.cr-figure--wide .cr-figure__frame { aspect-ratio: 21 \/ 9; }\n.cr-figure--banner .cr-figure__frame { aspect-ratio: 1024 \/ 328; background: var(--cr-cream); }\n.cr-figure--split .cr-figure__frame { aspect-ratio: 16 \/ 7; }\n.cr-figure__cap { display: flex; gap: var(--cr-s4); align-items: center; margin-top: var(--cr-s3); font-size: var(--cr-fs-small); color: var(--cr-ink-70); }\n.cr-figure__cap .cr-label { color: var(--cr-green-text); }\n.cr-peach .cr-figure__cap .cr-label { color: var(--cr-ink); } \/* green on peach < 4.5:1 *\/\n@media (hover: hover) { .cr-figure:hover .cr-figure__frame img { scale: 1.04; } }\n\n\/* =========================================================\n   06  SECTIONS (shared blocks)\n   ========================================================= *\/\n\/* Section head: label + H2 left, intro right *\/\n.cr-head { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--cr-s7); align-items: start; }\n.cr-dark .cr-label, .cr-green-bg .cr-label { color: var(--cr-lime); }\n.cr-green-bg .cr-label { color: var(--cr-cream); }\n\n\/* =========================================================\n   07  PAGES\n   ========================================================= *\/\n\n\/* ---------------------------------------------------------\n   07.1 ABOUT US  (\/about-us\/) \u2014 APPROVED v1.3\n   --------------------------------------------------------- *\/\n\/* Who we are *\/\n.cr-quote { font-size: var(--cr-fs-quote); line-height: 1.04; letter-spacing: -0.04em; font-weight: 200; font-style: italic; margin: 0; color: var(--cr-green-text); }\n.cr-quote strong { font-weight: 700; font-style: normal; color: var(--cr-ink); }\n.cr-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: var(--cr-s8) 0 0; border-top: 1px solid var(--cr-line); }\n.cr-facts div { padding: var(--cr-s5) var(--cr-s5) 0 0; border-right: 1px solid var(--cr-line); }\n.cr-facts div:last-child { border-right: 0; padding-left: var(--cr-s5); }\n.cr-facts div:nth-child(2) { padding-left: var(--cr-s5); }\n.cr-facts dt { font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; font-weight: 500; color: var(--cr-ink-70); }\n.cr-facts dd { margin: var(--cr-s3) 0 0; font-size: var(--cr-fs-h3); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; }\n.cr-facts dd small { display: block; font-size: var(--cr-fs-small); font-weight: 400; letter-spacing: 0; color: var(--cr-ink-70); margin-top: var(--cr-s2); }\n\n\/* What we do *\/\n.cr-tags { list-style: none; margin: var(--cr-s6) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--cr-s2); }\n.cr-tags li { padding: 10px 18px; border: 1px solid var(--cr-ink); border-radius: var(--cr-r-pill); font-weight: 500; font-size: var(--cr-fs-small); transition: background-color var(--cr-t-med) var(--cr-ease), color var(--cr-t-med) var(--cr-ease); }\n@media (hover: hover) { .cr-tags li:hover { background: var(--cr-ink); color: var(--cr-cream); } }\n.cr-chain { list-style: none; margin: var(--cr-s9) 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: relative; }\n.cr-chain::before { content: \"\"; position: absolute; left: 0; right: 0; top: 11px; height: 1px; background: var(--cr-ink); transform-origin: left; transform: scaleX(var(--cr-draw, 1)); transition: transform 1.4s var(--cr-ease-io); }\n.cr-chain li { position: relative; padding-right: var(--cr-s4); }\n.cr-chain__dot { display: block; width: 23px; height: 23px; border-radius: 50%; background: var(--cr-peach); border: 1.5px solid var(--cr-ink); position: relative; transition: background-color var(--cr-t-med) var(--cr-ease), transform var(--cr-t-slow) var(--cr-ease); }\n.cr-chain__dot::after { content: \"\"; position: absolute; inset: 5px; border-radius: 50%; background: var(--cr-green); }\n.cr-chain li:hover .cr-chain__dot { transform: scale(1.15); background: var(--cr-lime); }\n.cr-chain__n { display: block; margin-top: var(--cr-s5); font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); font-weight: 500; color: var(--cr-ink-70); }\n.cr-chain__t { display: block; margin-top: var(--cr-s2); font-size: var(--cr-fs-h3); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }\n.cr-channels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s5); margin-top: var(--cr-s9); }\n.cr-channel { background: var(--cr-cream); border-radius: var(--cr-r-card); padding: var(--cr-s6); display: flex; gap: var(--cr-s5); align-items: flex-start; transition: transform 700ms var(--cr-ease), box-shadow 700ms var(--cr-ease); }\n.cr-channel__k { font-size: clamp(2.5rem, 1.5rem + 3vw, 4rem); font-weight: 800; letter-spacing: -0.05em; line-height: .9; color: var(--cr-green-text); }\n@media (hover: hover) { .cr-channel:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -26px rgba(16, 26, 66,.5); } }\n\n\/* Platforms & brands (dark) *\/\n.cr-sub { margin-top: var(--cr-s9); }\n.cr-sub__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--cr-s4); padding-bottom: var(--cr-s5); border-bottom: 1px solid var(--cr-line-dark); }\n.cr-sub__head p { margin: 0; max-width: 48ch; }\n.cr-table { list-style: none; margin: 0; padding: 0; }\n.cr-table li { position: relative; display: grid; grid-template-columns: 80px minmax(0, 4fr) minmax(0, 6fr); gap: var(--cr-s5); align-items: baseline; padding: var(--cr-s6) 0; border-bottom: 1px solid var(--cr-line-dark); transition: background-color var(--cr-t-med) var(--cr-ease); }\n.cr-table li > * { transition: transform var(--cr-t-med) var(--cr-ease); }\n.cr-table li::before { content: \"\"; position: absolute; left: 0; top: -1px; height: 2px; width: 100%; background: var(--cr-lime); transform: scaleX(0); transform-origin: left; transition: transform 700ms var(--cr-ease); }\n.cr-table__i { font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); font-weight: 500; color: var(--cr-lime); }\n.cr-table__n { font-size: var(--cr-fs-h3); font-weight: 600; letter-spacing: -0.02em; }\n.cr-table__d { color: rgba(255, 255, 255,.86); }\n@media (hover: hover) {\n  .cr-table li:hover > * { transform: translateX(12px); }\n  .cr-table li:hover::before { transform: scaleX(1); }\n}\n\/* Product families (category column turns green when active; image swaps per product) *\/\n.cr-families { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cr-s3); }\n.cr-family { padding: var(--cr-s6) var(--cr-s6) var(--cr-s4); border: 1px solid var(--cr-line-dark); border-radius: var(--cr-r-card); transition: background-color 600ms var(--cr-ease), color 600ms var(--cr-ease); }\n.cr-family h4 { margin: 0; font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); text-transform: uppercase; font-weight: 500; color: var(--cr-lime); }\n.cr-family__img { margin: var(--cr-s5) 0 0; aspect-ratio: 4 \/ 3; border-radius: 14px; background: #FFFFFF; overflow: hidden; }\n.cr-family__img img { width: 100%; height: 100%; object-fit: contain; padding: var(--cr-s4); transition: opacity 450ms var(--cr-ease); }\n.cr-family__img img.is-swap { opacity: 0; }\n.cr-family ul { list-style: none; margin: var(--cr-s5) 0 0; padding: 0; }\n.cr-family li { border-bottom: 1px solid var(--cr-line-dark); }\n.cr-family a, .cr-family span.cr-plain { display: flex; justify-content: space-between; align-items: center; gap: var(--cr-s3); padding: var(--cr-s3) 0; text-decoration: none; font-size: 1.0625rem; font-weight: 500; transition: color var(--cr-t-med) var(--cr-ease); }\n.cr-family a svg { opacity: 0; transform: translateX(-8px); transition: opacity var(--cr-t-med) var(--cr-ease), transform 600ms var(--cr-ease); color: var(--cr-lime); }\n.cr-family a:hover svg, .cr-family a:focus-visible svg { opacity: 1; transform: none; }\n.cr-family a:hover { color: var(--cr-lime); }\n.cr-family .cr-note { display: block; font-size: var(--cr-fs-small); font-weight: 400; color: rgba(255, 255, 255,.86); }\n.cr-family.is-active { background: var(--cr-green); }\n.cr-family.is-active h4 { color: var(--cr-cream); }\n.cr-family.is-active li { border-bottom-color: rgba(255, 255, 255,.3); }\n.cr-family.is-active a:hover { color: var(--cr-cream); }\n.cr-family.is-active a svg { color: var(--cr-cream); }\n.cr-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cr-s4); }\n.cr-service { height: 100%; padding: var(--cr-s6) var(--cr-s5); border: 1px solid var(--cr-line-dark); border-radius: var(--cr-r-card); position: relative; overflow: hidden; transition: border-color 700ms var(--cr-ease), transform 700ms var(--cr-ease); }\n.cr-service::after { content: \"\"; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: var(--cr-lime); transform: scaleX(0); transform-origin: left; transition: transform 700ms var(--cr-ease); }\n.cr-service h4 { margin: var(--cr-s7) 0 0; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.015em; line-height: 1.25; }\n.cr-service p { margin: var(--cr-s3) 0 0; color: rgba(255, 255, 255,.86); font-size: 0.9375rem; }\n.cr-service__i { font-size: var(--cr-fs-label); letter-spacing: var(--cr-tracking-label); font-weight: 500; color: var(--cr-lime); }\n@media (hover: hover) { .cr-service:hover { transform: translateY(-3px); border-color: rgba(255, 255, 255,.45); } .cr-service:hover::after { transform: scaleX(1); } }\n\n\/* Quality & compliance *\/\n.cr-quality { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cr-s5); margin-top: var(--cr-s8); }\n.cr-qcard { border-top: 1px solid var(--cr-ink); padding-top: var(--cr-s5); }\n.cr-qcard__n { display: block; font-size: clamp(4rem, 2rem + 6vw, 8rem); font-weight: 100; line-height: .9; letter-spacing: -0.06em; color: var(--cr-green-text); transform-origin: left bottom; transition: transform var(--cr-t-slow) var(--cr-ease), opacity var(--cr-t-slow) var(--cr-ease); }\n.cr-qcard h3 { margin-top: var(--cr-s5); }\n.cr-qcard p { margin: var(--cr-s3) 0 0; color: var(--cr-ink-70); }\n@media (hover: hover) { .cr-qcard:hover .cr-qcard__n { transform: translateY(-6px) scale(1.06); } }\n.cr-seal { width: 132px; height: 132px; border-radius: 50%; background: #fff; border: 1px solid var(--cr-line); display: flex; align-items: center; justify-content: center; padding: 16px; box-shadow: 0 10px 24px -18px rgba(16, 26, 66,.6); transition: transform var(--cr-t-med) var(--cr-ease); }\n.cr-seal img { width: 100%; height: auto; }\n@media (hover: hover) { .cr-seal:hover { transform: scale(1.06); } }\n\n\/* R&D + Medical affairs (green) *\/\n.cr-rd { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cr-s9); margin-top: var(--cr-s8); }\n.cr-rd__col { border-top: 1px solid var(--cr-line-dark); padding-top: var(--cr-s6); }\n.cr-rd__col .cr-lead { font-style: italic; font-weight: 300; font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); line-height: 1.4; max-width: none; }\n.cr-points { list-style: none; margin: var(--cr-s6) 0 0; padding: 0; display: grid; gap: var(--cr-s4); }\n.cr-points li { display: grid; grid-template-columns: 14px 1fr; gap: var(--cr-s4); align-items: start; }\n.cr-points li::before { content: \"\"; width: 10px; height: 10px; border-radius: 50%; background: var(--cr-lime); margin-top: 9px; }\n\n\/* Locations *\/\n.cr-locs > li { min-width: 0; }\n.cr-locs { list-style: none; margin: var(--cr-s8) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cr-s5); }\n.cr-loc { height: 100%; display: flex; flex-direction: column; gap: var(--cr-s5); padding: var(--cr-s6); background: var(--cr-peach); border-radius: var(--cr-r-card); position: relative; overflow: hidden; transition: transform 700ms var(--cr-ease), background-color 700ms var(--cr-ease); }\n.cr-loc__country { font-size: clamp(2.5rem, 1.5rem + 3.2vw, 4.5rem); font-weight: 800; letter-spacing: -0.06em; line-height: .9; color: var(--cr-green-text); margin: 0; }\n.cr-loc address { font-style: normal; color: var(--cr-ink-70); }\n.cr-loc__contact { margin-top: auto; display: grid; gap: var(--cr-s2); padding-top: var(--cr-s4); border-top: 1px solid var(--cr-line); font-weight: 500; font-size: 0.9375rem; }\n.cr-loc__contact a { overflow-wrap: anywhere; text-decoration: none; border-bottom: 1px solid transparent; width: fit-content; transition: border-color var(--cr-t-fast) var(--cr-ease); }\n.cr-loc__contact a:hover { border-color: currentColor; }\n@media (hover: hover) { .cr-loc:hover { transform: translateY(-4px); } }\n\n\/* ---------------------------------------------------------\n   07.4 TEAM \u00b7 07.5 PHARMA \u00b7 07.6 SUPPLEMENTS\n   07.8 MEDIA RELEASES \u00b7 07.9 CONTACT \u00b7 07.10 HOME\n   (each page adds its own block here, reusing 05\/06 first)\n   --------------------------------------------------------- *\/\n\n\/* Shared closing CTA band (06) *\/\n.cr-cta { padding: var(--cr-s10) 0; }\n.cr-cta .cr-display { margin: 0; font-size: clamp(3rem, 1rem + 7vw, 8rem); }\n.cr-cta__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--cr-s6); margin-top: var(--cr-s7); }\n.cr-cta__row p { margin: 0; max-width: 46ch; }\n.cr-cta__actions { display: flex; flex-wrap: wrap; gap: var(--cr-s3); }\n\n\/* 05.7 Markers (pending content \/ review) *\/\n.cr-pending { display: inline-block; font-size: 0.8125rem; font-weight: 500; color: #6B3E00; background: #FFE9B8; border: 1px dashed #B97A12; border-radius: 4px; padding: 2px 8px; }\n\n\/* 05.8 Cursor follower (decorative, pointer devices) *\/\n.cr-cursor { position: fixed; left: 0; top: 0; width: 36px; height: 36px; margin: -18px 0 0 -18px; border: 1.5px solid var(--cr-green); border-radius: 50%; pointer-events: none; z-index: 90; opacity: 0; transition: width 600ms var(--cr-ease), height 600ms var(--cr-ease), margin 600ms var(--cr-ease), background-color 600ms var(--cr-ease), border-color 600ms var(--cr-ease), opacity 400ms var(--cr-ease); mix-blend-mode: multiply; }\n.cr-cursor.is-on { opacity: 1; }\n.cr-cursor.is-hover { width: 72px; height: 72px; margin: -36px 0 0 -36px; background: rgba(91, 160, 68,.35); border-color: var(--cr-lime); }\n.cr-cursor.is-dark { border-color: var(--cr-lime); mix-blend-mode: normal; }\n\n\/* 05.9 Page transition *\/\n.cr-transition { position: fixed; inset: 0; z-index: 100; background: var(--cr-green); transform: scaleY(0); transform-origin: bottom; pointer-events: none; }\n.cr-transition.is-enter { animation: cr-wipe-out 900ms var(--cr-ease-io) forwards; }\n.cr-transition.is-leave { transform-origin: bottom; animation: cr-wipe-in 600ms var(--cr-ease-io) forwards; }\n@keyframes cr-wipe-out { from { transform: scaleY(1); transform-origin: top; } to { transform: scaleY(0); transform-origin: top; } }\n@keyframes cr-wipe-in { from { transform: scaleY(0); } to { transform: scaleY(1); } }\n\n\/* =========================================================\n   08  MOTION SYSTEM (JS adds .cr-js on <html>)\n   ========================================================= *\/\n@media (prefers-reduced-motion: no-preference) {\n  .cr-js [data-reveal] { opacity: 0; transform: translateY(32px); transition: opacity 900ms var(--cr-ease), transform 900ms var(--cr-ease); transition-delay: var(--cr-d, 0ms); }\n  .cr-js [data-reveal].is-in { opacity: 1; transform: none; }\n  .cr-js [data-lines] .cr-ln > span { transform: translateY(105%); transition: transform 1100ms var(--cr-ease); }\n  .cr-js [data-lines] .cr-ln:nth-child(2) > span { transition-delay: 90ms; }\n  .cr-js [data-lines] .cr-ln:nth-child(3) > span { transition-delay: 180ms; }\n  .cr-js [data-lines].is-in .cr-ln > span { transform: none; }\n  .cr-js .cr-chain { --cr-draw: 0; }\n  .cr-js .cr-chain.is-in { --cr-draw: 1; }\n  .cr-scroll__wheel { animation: cr-wheel 1.6s var(--cr-ease) infinite; }\n}\n@keyframes cr-wheel { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 1; } 70% { opacity: 1; transform: translateY(12px); } 100% { opacity: 0; transform: translateY(14px); } }\n@media (prefers-reduced-motion: reduce) {\n  .cr-page *, .cr-page *::before, .cr-page *::after { transition-duration: 0.01ms !important; animation: none !important; }\n  .cr-cursor, .cr-transition { display: none; }\n}\n\n\/* =========================================================\n   09  RESPONSIVE\n   ========================================================= *\/\n@media (max-width: 1100px) {\n  .cr-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n  .cr-hero__foot { grid-template-columns: 1fr; gap: var(--cr-s6); }\n}\n@media (max-width: 900px) {\n  .cr-section { padding: var(--cr-s9) 0; }\n  .cr-head, .cr-rd { grid-template-columns: 1fr; gap: var(--cr-s5); }\n  .cr-rd { gap: var(--cr-s7); }\n  .cr-families, .cr-quality, .cr-locs { grid-template-columns: 1fr; }\n  .cr-family { padding: var(--cr-s5); }\n  .cr-chain { grid-template-columns: 1fr; gap: var(--cr-s5); padding-left: 40px; }\n  .cr-chain::before { left: 11px; right: auto; top: 0; bottom: 0; width: 1px; height: auto; transform-origin: top; transform: scaleY(var(--cr-draw, 1)); }\n  .cr-chain__dot { position: absolute; left: -40px; top: 4px; }\n  .cr-chain__n { margin-top: 0; }\n  .cr-channels { grid-template-columns: 1fr; }\n  .cr-table li { grid-template-columns: 48px 1fr; }\n  .cr-table__d { grid-column: 2; }\n}\n@media (max-width: 600px) {\n  .cr-figure--wide .cr-figure__frame, .cr-figure--split .cr-figure__frame { aspect-ratio: 4 \/ 3; }\n  .cr-figure--banner .cr-figure__frame { aspect-ratio: 16 \/ 9; }\n  .cr-hero__inner { padding-top: var(--cr-s10); padding-bottom: calc(var(--cr-s9) + 24px); }\n  .cr-specs, .cr-facts { grid-template-columns: 1fr; }\n  .cr-facts div, .cr-facts div:nth-child(2), .cr-facts div:last-child { border-right: 0; padding-left: 0; border-bottom: 1px solid var(--cr-line); padding-bottom: var(--cr-s4); }\n  .cr-services { grid-template-columns: 1fr; }\n  .cr-subnav ol { gap: var(--cr-s5); }\n  .cr-cta__actions, .cr-cta__actions .cr-btn { width: 100%; }\n  .cr-cta__actions .cr-btn { justify-content: space-between; }\n}\n\n\n\/* =========================================================\n   BUTTON STATES \u2014 protected against the theme guard and the\n   Elementor kit link colors (text never matches the hover fill)\n   ========================================================= *\/\n.cr-page a.cr-btn, .cr-page a.cr-btn:hover, .cr-page a.cr-btn:focus { text-decoration: none !important; }\n.cr-page a.cr-btn--primary, .cr-page a.cr-btn--primary:visited, .cr-page a.cr-btn--primary:focus, .cr-page a.cr-btn--primary:active { color: var(--cr-cream) !important; }\n.cr-page a.cr-btn--ghost, .cr-page a.cr-btn--ghost:visited, .cr-page a.cr-btn--ghost:focus, .cr-page a.cr-btn--ghost:active { color: var(--cr-cream) !important; }\n@media (hover: hover) {\n  .cr-page a.cr-btn--primary:hover { color: var(--cr-cream) !important; }\n  .cr-page a.cr-btn--ghost:hover { color: var(--cr-ink) !important; }\n}\n\n\/* PALETTE v2 \u2014 contrast fixes (white on #5BA044 is 3.1:1 \u2192 green surfaces carry navy text) *\/\n.cr-green-bg { color: var(--cr-ink); }\n.cr-green-bg .cr-muted { color: rgba(16, 26, 66, 0.86); }\n.cr-green-bg .cr-label, .cr-green-bg .cr-label__idx { color: var(--cr-ink); }\n.cr-green-bg :focus-visible { outline-color: var(--cr-ink); }\n.cr-btn--primary { color: var(--cr-ink); }\n.cr-btn--primary .cr-btn__icon { background: var(--cr-ink); color: #FFFFFF; }\n.cr-btn--primary:hover .cr-btn__icon { background: #FFFFFF; color: var(--cr-ink); }\n.cr-page a.cr-btn--primary, .cr-page a.cr-btn--primary:visited, .cr-page a.cr-btn--primary:focus, .cr-page a.cr-btn--primary:active { color: var(--cr-ink) !important; }\n@media (hover: hover) { .cr-page a.cr-btn--primary:hover { color: #FFFFFF !important; } }\n.cr-family.is-active, .cr-family.is-active h4, .cr-family.is-active a, .cr-family.is-active a:hover, .cr-family.is-active a svg, .cr-family.is-active .cr-note { color: var(--cr-ink); }\n.cr-family.is-active li { border-bottom-color: rgba(16, 26, 66, 0.25); }\n.cr-page .cr-green-bg a.cr-btn--ghost, .cr-page .cr-green-bg a.cr-btn--ghost:visited, .cr-page .cr-green-bg a.cr-btn--ghost:focus { color: var(--cr-ink) !important; border-color: var(--cr-ink) !important; }\n.cr-green-bg .cr-btn--ghost .cr-btn__icon { background: var(--cr-ink); color: #FFFFFF; }\n.cr-green-bg .cr-btn--ghost::before { background: var(--cr-ink); }\n@media (hover: hover) { .cr-page .cr-green-bg a.cr-btn--ghost:hover { color: #FFFFFF !important; } .cr-green-bg .cr-btn--ghost:hover .cr-btn__icon { background: #FFFFFF; color: var(--cr-ink); } }\n.cr-dark .cr-quote, .cr-dark .cr-qcard__n, .cr-dark .cr-channel__k, .cr-dark .cr-loc__country { color: var(--cr-lime); }\n\n\/* Product families: Pharma (wide, two-column list) + Dietary supplements *\/\n.cr-families--2 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }\n.cr-family--wide ul { columns: 2; column-gap: var(--cr-s6); }\n.cr-family--wide li { break-inside: avoid; }\n.cr-family--wide .cr-family__img { aspect-ratio: 16 \/ 7; }\n@media (max-width: 900px) { .cr-families--2 { grid-template-columns: 1fr; } }\n@media (max-width: 600px) { .cr-family--wide ul { columns: 1; } }\n\n<\/style>\n\n<!-- GEO \/ AIO \u00b7 datos estructurados -->\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@graph\":[\n {\"@type\":\"AboutPage\",\"@id\":\"https:\/\/crassulapharma.com\/about-us\/#page\",\"url\":\"https:\/\/crassulapharma.com\/about-us\/\",\"name\":\"About Crassula Pharmaceuticals\",\"description\":\"Crassula Pharmaceuticals is a global CDMO delivering Rx, OTC and high-bioavailability nutraceuticals through GMP and ISO-certified manufacturing.\",\"inLanguage\":\"en\",\"about\":{\"@id\":\"https:\/\/crassulapharma.com\/#organization\"},\"breadcrumb\":{\"@id\":\"https:\/\/crassulapharma.com\/about-us\/#breadcrumb\"}},\n {\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/crassulapharma.com\/about-us\/#breadcrumb\",\"itemListElement\":[\n  {\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/crassulapharma.com\/\"},\n  {\"@type\":\"ListItem\",\"position\":2,\"name\":\"About Us\",\"item\":\"https:\/\/crassulapharma.com\/about-us\/\"}]},\n {\"@type\":\"Organization\",\"@id\":\"https:\/\/crassulapharma.com\/#organization\",\"name\":\"Crassula Pharmaceuticals\",\"legalName\":\"CRASSULA LLC\",\"url\":\"https:\/\/crassulapharma.com\/\",\"foundingDate\":\"2014\",\"slogan\":\"Your trusted partner in healthcare\",\n  \"sameAs\":[\"https:\/\/www.facebook.com\/Crassulapharmaceuticals\/\",\"https:\/\/www.linkedin.com\/company\/crassula-pharmaceuticals\",\"https:\/\/www.youtube.com\/@CrassulaPharmaceuticals\",\"https:\/\/x.com\/crassula_llc\"],\n  \"address\":[\n   {\"@type\":\"PostalAddress\",\"name\":\"Corporate Office\",\"streetAddress\":\"3301 N. University Dr., Suite 100\",\"addressLocality\":\"Coral Springs\",\"addressRegion\":\"FL\",\"postalCode\":\"33065\",\"addressCountry\":\"US\"},\n   {\"@type\":\"PostalAddress\",\"name\":\"Manufacturing\",\"streetAddress\":\"146 Narmada Colony, Katol Road\",\"addressLocality\":\"Nagpur\",\"addressRegion\":\"Maharashtra\",\"addressCountry\":\"IN\"},\n   {\"@type\":\"PostalAddress\",\"name\":\"Crassula Honduras\",\"streetAddress\":\"6 Ave, 5 y 6 Calle S.O., Plaza Victoria\",\"addressLocality\":\"San Pedro Sula\",\"addressCountry\":\"HN\"}],\n  \"contactPoint\":[\n   {\"@type\":\"ContactPoint\",\"contactType\":\"sales\",\"telephone\":\"+1-954-676-7060\",\"email\":\"sales@crassulapharma.com\",\"areaServed\":\"US\"},\n   {\"@type\":\"ContactPoint\",\"contactType\":\"quality assurance\",\"telephone\":\"+91-712-257-2686\",\"email\":\"qa@crassulapharma.com\",\"areaServed\":\"IN\"},\n   {\"@type\":\"ContactPoint\",\"contactType\":\"customer service\",\"telephone\":\"+504-9726-4313\",\"email\":\"contacthonduras@crassulapharma.com\",\"areaServed\":\"HN\"}]}\n]}\n<\/script>\n\n<!-- Contenido -->\n<div class=\"cr-transition\" aria-hidden=\"true\"><\/div>\n\n<main id=\"content\" class=\"cr-page\" data-page=\"about\">\n\n  <!-- ===== HERO ===== -->\n  <section class=\"cr-section cr-hero cr-hero--center\" aria-labelledby=\"about-title\" style=\"padding:0\">\n    <div class=\"cr-hero__media\" data-parallax=\"0.18\">\n      <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/09\/Pharma_Crassula.jpg\" alt=\"\" width=\"1600\" height=\"1067\" fetchpriority=\"high\" title=\"\">\n    <\/div>\n    <div class=\"cr-hero__grid\" aria-hidden=\"true\"><\/div>\n    <div class=\"cr-wrap cr-hero__inner\">\n      <div class=\"cr-hero__top\">\n        <nav class=\"cr-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"\/\">Home<\/a><\/li><li aria-current=\"page\">About Us<\/li><\/ol><\/nav>\n      <\/div>\n      <h1 class=\"cr-display\" id=\"about-title\" data-lines>\n        <span class=\"cr-ln\"><span class=\"t-800\">Crassula<\/span><\/span>\n        <span class=\"cr-ln\"><span><em>Pharmaceuticals<\/em><\/span><\/span>\n      <\/h1>\n      <div class=\"cr-hero__foot\">\n        <!-- REVIEW: claim (GMP \/ ISO certification) -->\n        <p class=\"cr-answer\" data-reveal>Crassula Pharmaceuticals is a global healthcare company that develops, manufactures and supplies prescription medicines, OTC products and advanced nutraceuticals. Since 2014 it has worked as a B2B CMO\/CDMO and B2C partner, backed by GMP and ISO-certified manufacturing and modern drug-delivery technologies.<\/p>\n      <\/div>\n    <\/div>\n    <a class=\"cr-scroll\" href=\"#who\" aria-label=\"Scroll to Who we are\"><span class=\"cr-scroll__mouse\" aria-hidden=\"true\"><span class=\"cr-scroll__wheel\"><\/span><\/span><\/a>\n  <\/section>\n\n  <!-- ===== SUB NAV ===== -->\n  <nav class=\"cr-subnav\" aria-label=\"On this page\">\n    <ol>\n      <li><a href=\"#who\"><span>01<\/span> Who we are<\/a><\/li>\n      <li><a href=\"#what\"><span>02<\/span> What we do<\/a><\/li>\n      <li><a href=\"#platforms\"><span>03<\/span> Platforms &amp; brands<\/a><\/li>\n      <li><a href=\"#quality\"><span>04<\/span> Quality &amp; compliance<\/a><\/li>\n      <li><a href=\"#rd\"><span>05<\/span> R&amp;D<\/a><\/li>\n      <li><a href=\"#locations\"><span>06<\/span> Locations<\/a><\/li>\n      <li><a href=\"#contact\"><span>07<\/span> Contact<\/a><\/li>\n    <\/ol>\n    <span class=\"cr-progress\" aria-hidden=\"true\"><\/span>\n  <\/nav>\n\n  <!-- ===== 01 WHO WE ARE ===== -->\n  <section class=\"cr-section cr-who cr-cream\" id=\"who\" aria-labelledby=\"who-title\">\n    <div class=\"cr-wrap\">\n      <div class=\"cr-head\">\n        <div data-reveal>\n          <span class=\"cr-label\"><span class=\"cr-label__idx\">01<\/span><span class=\"cr-label__bar\"><\/span>Who we are<\/span>\n          <h2 class=\"cr-h2\" id=\"who-title\">Who <span class=\"t-200\"><em>we are<\/em><\/span><\/h2>\n        <\/div>\n        <div>\n          <blockquote class=\"cr-quote\" data-lines>\n            <span class=\"cr-ln\"><span>\u201cYour <strong>trusted partner<\/strong><\/span><\/span>\n            <span class=\"cr-ln\"><span>in healthcare.\u201d<\/span><\/span>\n          <\/blockquote>\n          <p class=\"cr-lead cr-muted\" data-reveal>Since 2014, Crassula has worked to transform lives by improving and preserving health with innovative, safe and effective medicines and supplements. We operate both B2B, as a CMO\/CDMO, and B2C, partnering with regional pharma companies and healthcare professionals within an ethical, collaborative culture.<\/p>\n        <\/div>\n      <\/div>\n      <dl class=\"cr-facts\" data-reveal>\n        <div><dt>Founded<\/dt><dd>2014<small>Improving and preserving health through medicines and supplements<\/small><\/dd><\/div>\n        <div><dt>Business model<\/dt><dd>B2B &amp; B2C<small>CMO\/CDMO partner and consumer brands<\/small><\/dd><\/div>\n        <div><dt>Headquarters<\/dt><dd>Florida, USA<small>With international subsidiaries and partners<\/small><\/dd><\/div>\n      <\/dl>\n      <figure class=\"cr-figure cr-figure--wide\" data-reveal>\n        <div class=\"cr-figure__frame\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/09\/Team-scaled.jpg\" alt=\"Crassula Pharmaceuticals team\" width=\"2560\" height=\"1707\" loading=\"lazy\" data-parallax-img title=\"\"><\/div>\n        <figcaption class=\"cr-figure__cap\"><span class=\"cr-label\">Fig. 01<\/span> The Crassula team<\/figcaption>\n      <\/figure>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 02 WHAT WE DO ===== -->\n  <section class=\"cr-section cr-what cr-peach\" id=\"what\" aria-labelledby=\"what-title\">\n    <div class=\"cr-wrap\">\n      <div class=\"cr-head\">\n        <div data-reveal>\n          <span class=\"cr-label\"><span class=\"cr-label__idx\">02<\/span><span class=\"cr-label__bar\"><\/span>What we do<\/span>\n          <h2 class=\"cr-h2\" id=\"what-title\">Develop. <span class=\"t-200\"><em>Manufacture.<\/em><\/span> Supply.<\/h2>\n        <\/div>\n        <div data-reveal style=\"--cr-d:120ms\">\n          <p class=\"cr-lead\" style=\"margin-top:0\">We develop, manufacture and supply prescription medicines, OTC products and nutraceuticals, with a therapeutic focus on:<\/p>\n          <ul class=\"cr-tags\" aria-label=\"Therapeutic focus\">\n            <li>Cardiovascular<\/li><li>Metabolic \/ Diabetes<\/li><li>Rheumatology &amp; Pain<\/li><li>Gastrointestinal<\/li><li>Prevention<\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n\n      <figure class=\"cr-figure cr-figure--banner\" data-reveal>\n        <div class=\"cr-figure__frame\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/01\/Blister-Multiples-1024x328.jpg\" alt=\"Range of blister configurations and cavity layouts for finished packs\" width=\"1024\" height=\"328\" loading=\"lazy\" data-parallax-img title=\"\"><\/div>\n        <figcaption class=\"cr-figure__cap\"><span class=\"cr-label\">Fig. 02<\/span> Blister configurations for finished packs<\/figcaption>\n      <\/figure>\n      <h3 class=\"cr-sr\">End-to-end support<\/h3>\n      <ol class=\"cr-chain\" aria-label=\"End-to-end support\">\n        <li><span class=\"cr-chain__dot\" aria-hidden=\"true\"><\/span><span class=\"cr-chain__n\">Step 01<\/span><span class=\"cr-chain__t\">Formulation<\/span><\/li>\n        <li><span class=\"cr-chain__dot\" aria-hidden=\"true\"><\/span><span class=\"cr-chain__n\">Step 02<\/span><span class=\"cr-chain__t\">Scale-up<\/span><\/li>\n        <li><span class=\"cr-chain__dot\" aria-hidden=\"true\"><\/span><span class=\"cr-chain__n\">Step 03<\/span><span class=\"cr-chain__t\">Packaging<\/span><\/li>\n        <li><span class=\"cr-chain__dot\" aria-hidden=\"true\"><\/span><span class=\"cr-chain__n\">Step 04<\/span><span class=\"cr-chain__t\">Regulatory<\/span><\/li>\n        <li><span class=\"cr-chain__dot\" aria-hidden=\"true\"><\/span><span class=\"cr-chain__n\">Step 05<\/span><span class=\"cr-chain__t\">Supply<\/span><\/li>\n      <\/ol>\n\n      <div class=\"cr-channels\" data-stagger>\n        <div class=\"cr-channel\" data-reveal><span class=\"cr-channel__k\" aria-hidden=\"true\">Rx<\/span><div><h3 class=\"cr-h3\">Prescription<\/h3><p class=\"cr-muted\" style=\"margin:8px 0 0\">Distributed through pharmacy chains.<\/p><\/div><\/div>\n        <div class=\"cr-channel\" data-reveal><span class=\"cr-channel__k\" aria-hidden=\"true\">OTC<\/span><div><h3 class=\"cr-h3\">Over-the-counter<\/h3><p class=\"cr-muted\" style=\"margin:8px 0 0\">Distributed through convenience and OTC channels.<\/p><\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 03 PLATFORMS & BRANDS ===== -->\n  <section class=\"cr-section cr-platforms cr-dark\" id=\"platforms\" aria-labelledby=\"plat-title\">\n    <div class=\"cr-wrap\">\n      <div class=\"cr-head\">\n        <div data-reveal>\n          <span class=\"cr-label\"><span class=\"cr-label__idx\">03<\/span><span class=\"cr-label__bar\"><\/span>Platforms &amp; brands<\/span>\n          <h2 class=\"cr-h2\" id=\"plat-title\">Platforms <span class=\"t-200\"><em>&amp; brands<\/em><\/span><\/h2>\n        <\/div>\n        <p class=\"cr-lead cr-muted\" data-reveal style=\"--cr-d:120ms\">Advanced oral systems engineered for bioavailability, stability and patient-friendly performance, carried by branded Rx, OTC and supplement families.<\/p>\n      <\/div>\n\n      <div class=\"cr-sub\" id=\"delivery\">\n        <div class=\"cr-sub__head\"><h3 class=\"cr-h3\">Delivery technologies<\/h3><p class=\"cr-muted\">Five formats, from nanoscale systems to stick packs.<\/p><\/div>\n        <ol class=\"cr-table\">\n          <!-- REVIEW: claim (absorption \/ controlled release) -->\n          <li data-reveal><span class=\"cr-table__i\">01<\/span><span class=\"cr-table__n\">Nanoscale Systems<\/span><span class=\"cr-table__d\">PQNS for high-efficiency absorption and controlled release.<\/span><\/li>\n          <li data-reveal><span class=\"cr-table__i\">02<\/span><span class=\"cr-table__n\">Softgels<\/span><span class=\"cr-table__d\">Gelatin, vegan and enteric-coated.<\/span><\/li>\n          <li data-reveal><span class=\"cr-table__i\">03<\/span><span class=\"cr-table__n\">Hard Capsules<\/span><span class=\"cr-table__d\">DuraCap, VegiShell.<\/span><\/li>\n          <li data-reveal><span class=\"cr-table__i\">04<\/span><span class=\"cr-table__n\">Solid Dosage Forms<\/span><span class=\"cr-table__d\">Multi-layer tablets.<\/span><\/li>\n          <li data-reveal><span class=\"cr-table__i\">05<\/span><span class=\"cr-table__n\">Other Formats<\/span><span class=\"cr-table__d\">StickFlex\u2122 stick packs; oral solutions and suspensions.<\/span><\/li>\n        <\/ol>\n      <\/div>\n\n      <div class=\"cr-sub\" id=\"families\">\n        <div class=\"cr-sub__head\"><h3 class=\"cr-h3\">Product families<\/h3><p class=\"cr-muted\">Branded Rx, OTC and supplements across key therapeutic areas.<\/p><\/div>\n        <div class=\"cr-families cr-families--2\" data-stagger>\n          <div class=\"cr-family cr-family--wide is-active\" data-reveal>\n            <h4>Pharma<\/h4>\n            <figure class=\"cr-family__img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/estarol-40mg.png\" alt=\"Estarol\u00ae packaging\" width=\"800\" height=\"600\" loading=\"lazy\" title=\"\"><\/figure>\n            <ul><li><a href=\"\/aledex\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/prod-aledex.png\" data-alt=\"Aledex\u00ae packaging\">Aledex\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/dipetor\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-dipetor.png\" data-alt=\"Dipetor\u00ae packaging\">Dipetor\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/epirox\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-epirox.png\" data-alt=\"Epirox packaging\">Epirox<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/estarol\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/estarol-40mg.png\" data-alt=\"Estarol\u00ae packaging\">Estarol\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/estarol-duo\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-estarol-duo-20.png\" data-alt=\"Estarol Duo\u00ae packaging\">Estarol Duo\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/flulocin\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-flulocin.png\" data-alt=\"Flulocin\u00ae packaging\">Flulocin\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/gasflum\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-gasflum.png\" data-alt=\"Gasflum\u00ae packaging\">Gasflum\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/glucinax\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-glucinax.png\" data-alt=\"Glucinax\u00ae packaging\">Glucinax\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/glycedil\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-glycedil.png\" data-alt=\"Glycedil\u00ae packaging\">Glycedil\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/glycedil-duo\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-glycedil-duo-100.png\" data-alt=\"Glycedil Duo\u00ae packaging\">Glycedil Duo\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/neurical\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-neurical-75.png\" data-alt=\"Neurical packaging\">Neurical<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/nopyre-infusion\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-nopyre-infusion.png\" data-alt=\"Nopyre Infusion\u00ae packaging\">Nopyre Infusion\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/novapyr\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-novapyr.png\" data-alt=\"Novapyr\u00ae packaging\">Novapyr\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/plaxam\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-plaxam.png\" data-alt=\"Plaxam\u00ae packaging\">Plaxam\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/relixib\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-relixib.png\" data-alt=\"Relixib\u00ae packaging\">Relixib\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/rosulitor\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-rosulitor.png\" data-alt=\"Rosulitor packaging\">Rosulitor<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/tinacin\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-tinacin.png\" data-alt=\"Tinacin\u00ae packaging\">Tinacin\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/ultor\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-ultor.png\" data-alt=\"Ultor\u00ae packaging\">Ultor\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/vascutan\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-vascutan.png\" data-alt=\"Vascutan\u00ae packaging\">Vascutan\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/vascutan-plus\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-vascutan-plus-150.png\" data-alt=\"Vascutan Plus\u00ae packaging\">Vascutan Plus\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/voltixar\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-voltixar.png\" data-alt=\"Voltixar\u00ae packaging\">Voltixar\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><\/ul>\n          <\/div>\n          <div class=\"cr-family\" data-reveal>\n            <h4>Dietary supplements<\/h4>\n            <figure class=\"cr-family__img\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-boulactis.png\" alt=\"Boulactis\u00ae packaging\" width=\"800\" height=\"600\" loading=\"lazy\" title=\"\"><\/figure>\n            <ul><li><a href=\"\/boulactis\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-boulactis.png\" data-alt=\"Boulactis\u00ae packaging\">Boulactis\u00ae<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><li><a href=\"\/q-niflex\/\" data-img=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/box-q-niflex.png\" data-alt=\"Q-Niflex packaging\">Q-Niflex<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/a><\/li><\/ul>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"cr-sub\" id=\"services\">\n        <div class=\"cr-sub__head\"><h3 class=\"cr-h3\">Allied services<\/h3><p class=\"cr-muted\">Integrated CMO\/CDMO capabilities for every stage, from concept to commercial scale.<\/p><\/div>\n        <ul class=\"cr-services\" data-stagger style=\"margin-top:32px\">\n          <li data-reveal><article class=\"cr-service\"><span class=\"cr-service__i\">01<\/span><h4>Formulation &amp; Scale-Up<\/h4><p>From bench development to process validation and technology transfer.<\/p><\/article><\/li>\n          <li data-reveal><article class=\"cr-service\"><span class=\"cr-service__i\">02<\/span><h4>Regulatory &amp; Quality<\/h4><p>GMP-compliant documentation, dossier support and audit readiness.<\/p><\/article><\/li>\n          <li data-reveal><article class=\"cr-service\"><span class=\"cr-service__i\">03<\/span><h4>Packaging &amp; Distribution<\/h4><p>Stability-optimized packaging, serialization and global partner logistics.<\/p><\/article><\/li>\n          <li data-reveal><article class=\"cr-service\"><span class=\"cr-service__i\">04<\/span><h4>Innovation Partnerships<\/h4><p>Co-development, private label and licensing models tailored to market goals.<\/p><\/article><\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 04 QUALITY & COMPLIANCE ===== -->\n  <section class=\"cr-section cr-quality-sec cr-cream\" id=\"quality\" aria-labelledby=\"q-title\">\n    <div class=\"cr-wrap\">\n      <div class=\"cr-head\">\n        <div data-reveal>\n          <span class=\"cr-label\"><span class=\"cr-label__idx\">04<\/span><span class=\"cr-label__bar\"><\/span>Quality &amp; compliance<\/span>\n          <h2 class=\"cr-h2\" id=\"q-title\">Quality <span class=\"t-200\"><em>&amp; compliance<\/em><\/span><\/h2>\n        <\/div>\n        <div data-reveal style=\"--cr-d:120ms; display:flex; gap:32px; align-items:center; flex-wrap:wrap\">\n          <div class=\"cr-seal\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2026\/10\/logo-gmp.png\" alt=\"GMP seal\" width=\"100\" height=\"100\" loading=\"lazy\" title=\"\"><\/div>\n          <p class=\"cr-lead cr-muted\" style=\"margin:0; flex:1; min-width:240px\">Robust quality systems, process controls and complete documentation for audits and partner reviews.<\/p>\n        <\/div>\n      <\/div>\n      <figure class=\"cr-figure cr-figure--split\" data-reveal>\n        <div class=\"cr-figure__frame\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/crassulapharma.com\/wp-content\/uploads\/2025\/01\/Blsiter-Machine-1024x684.jpg\" alt=\"High-speed blister packaging machine producing serialized prescription packs\" width=\"1024\" height=\"684\" loading=\"lazy\" data-parallax-img title=\"\"><\/div>\n        <figcaption class=\"cr-figure__cap\"><span class=\"cr-label\">Fig. 03<\/span> High-speed blister packaging with serialization<\/figcaption>\n      <\/figure>\n      <div class=\"cr-quality\" data-stagger>\n        <!-- REVIEW: claim (WHO-GMP) -->\n        <article class=\"cr-qcard\" data-reveal><span class=\"cr-qcard__n\" aria-hidden=\"true\">01<\/span><h3 class=\"cr-h3\">GMP &amp; WHO standards<\/h3><p>Facilities and partners adhere to WHO Good Manufacturing Practices (GMP) with robust quality systems and process controls.<\/p><\/article>\n        <!-- REVIEW: claim (ISO certifications) -->\n        <article class=\"cr-qcard\" data-reveal><span class=\"cr-qcard__n\" aria-hidden=\"true\">02<\/span><h3 class=\"cr-h3\">ISO certifications<\/h3><p>Sites operate to ISO 9001:2015 (quality management) and ISO 14001:2015 (environmental management) standards.<\/p><\/article>\n        <article class=\"cr-qcard\" data-reveal><span class=\"cr-qcard__n\" aria-hidden=\"true\">03<\/span><h3 class=\"cr-h3\">Traceability &amp; documentation<\/h3><p>A full documentation suite: SDS, SOPs, batch records, QC logs, stability data and label\/pack compliance.<\/p><\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 05 R&D + CLINICAL ===== -->\n  <section class=\"cr-section cr-rd-sec cr-green-bg\" id=\"rd\" aria-labelledby=\"rd-title\">\n    <div class=\"cr-wrap\">\n      <div data-reveal>\n        <span class=\"cr-label\"><span class=\"cr-label__idx\">05<\/span><span class=\"cr-label__bar\"><\/span>Research &amp; medical affairs<\/span>\n        <h2 class=\"cr-h2\" id=\"rd-title\">Designed <span class=\"t-200\"><em>with<\/em><\/span> health professionals<\/h2>\n      <\/div>\n      <div class=\"cr-rd\" data-stagger>\n        <div class=\"cr-rd__col\" data-reveal>\n          <h3 class=\"cr-h3\">Research &amp; Development<\/h3>\n          <!-- REVIEW: claim (efficacy \/ bioavailability) -->\n          <p class=\"cr-lead\">We co-design products with health professionals, focusing on delivery forms and formulations that maximize efficacy, bioavailability and patient acceptance.<\/p>\n          <ul class=\"cr-points\"><li>Evidence-driven selection of actives and release profiles.<\/li><li>Consumer-preferred formats: softgels, effervescents and stick packs.<\/li><\/ul>\n        <\/div>\n        <div class=\"cr-rd__col\" data-reveal>\n          <h3 class=\"cr-h3\">Clinical &amp; Medical Affairs<\/h3>\n          <p class=\"cr-lead\">Physician-ready materials and post-market feedback loops drive continuous improvement across Rx, OTC and supplements.<\/p>\n          <ul class=\"cr-points\"><li>Therapeutic focus: cardiovascular, metabolic, rheumatology\/pain, GI and anti-infectives.<\/li><li>Claims and safety aligned to local regulatory requirements.<\/li><\/ul>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 06 LOCATIONS ===== -->\n  <section class=\"cr-section cr-locations cr-cream\" id=\"locations\" aria-labelledby=\"loc-title\">\n    <div class=\"cr-wrap\">\n      <div class=\"cr-head\">\n        <div data-reveal>\n          <span class=\"cr-label\"><span class=\"cr-label__idx\">06<\/span><span class=\"cr-label__bar\"><\/span>Locations &amp; footprint<\/span>\n          <h2 class=\"cr-h2\" id=\"loc-title\">Locations <span class=\"t-200\"><em>&amp; footprint<\/em><\/span><\/h2>\n        <\/div>\n        <p class=\"cr-lead cr-muted\" data-reveal style=\"--cr-d:120ms\">Corporate office in the United States, manufacturing in India and a regional company in Honduras.<\/p>\n      <\/div>\n      <ul class=\"cr-locs\" data-stagger>\n        <li data-reveal><article class=\"cr-loc\">\n          <span class=\"cr-label\">Corporate office<\/span>\n          <h3 class=\"cr-loc__country\">USA<\/h3>\n          <address>3301 N. University Dr., Suite 100<br>Coral Springs, FL 33065<\/address>\n          <div class=\"cr-loc__contact\"><a href=\"tel:+19546767060\">+1 (954) 676-7060<\/a><a href=\"mailto:sales@crassulapharma.com\">sales@crassulapharma.com<\/a><\/div>\n        <\/article><\/li>\n        <li data-reveal><article class=\"cr-loc\">\n          <span class=\"cr-label\">Manufacturing<\/span>\n          <h3 class=\"cr-loc__country\">India<\/h3>\n          <address>146 Narmada Colony, Katol Road<br>Nagpur, Maharashtra, India<\/address>\n          <div class=\"cr-loc__contact\"><a href=\"tel:+917122572686\">+91 (712) 257-2686<\/a><a href=\"mailto:qa@crassulapharma.com\">qa@crassulapharma.com<\/a><\/div>\n        <\/article><\/li>\n        <li data-reveal><article class=\"cr-loc\">\n          <span class=\"cr-label\">Crassula Honduras<\/span>\n          <h3 class=\"cr-loc__country\">Honduras<\/h3>\n          <address>6 Ave, 5 y 6 Calle S.O., Plaza Victoria<br>San Pedro Sula, Honduras<\/address>\n          <div class=\"cr-loc__contact\"><a href=\"tel:+50497264313\">+504 9726-4313<\/a><a href=\"mailto:contacthonduras@crassulapharma.com\">contacthonduras@crassulapharma.com<\/a><\/div>\n        <\/article><\/li>\n      <\/ul>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 07 CTA ===== -->\n  <section class=\"cr-section cr-cta cr-dark\" id=\"contact\" aria-labelledby=\"cta-title\">\n    <div class=\"cr-wrap\">\n      <span class=\"cr-label\" data-reveal><span class=\"cr-label__idx\">07<\/span><span class=\"cr-label__bar\"><\/span>Partner with Crassula<\/span>\n      <h2 class=\"cr-display\" id=\"cta-title\" data-lines style=\"margin-top:24px\">\n        <span class=\"cr-ln\"><span>Partner with<\/span><\/span>\n        <span class=\"cr-ln\"><span class=\"t-800\">Crassula<\/span><\/span>\n      <\/h2>\n      <div class=\"cr-cta__row\">\n        <p class=\"cr-muted cr-lead\" data-reveal style=\"margin:0\">For CMO\/CDMO projects, physician distribution or regional partnerships, talk to our team.<\/p>\n        <div class=\"cr-cta__actions\" data-reveal style=\"--cr-d:120ms\">\n          <a class=\"cr-btn cr-btn--primary\" href=\"\/contact\/\">Contact us <span class=\"cr-btn__icon\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a>\n          <a class=\"cr-btn cr-btn--ghost\" href=\"\/media-releases\/\">Media &amp; press <span class=\"cr-btn__icon\" aria-hidden=\"true\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/main>\n\n<!-- JS de la p\u00e1gina (main.js) -->\n<script>\n\/* =========================================================\n   CRASSULA PHARMACEUTICALS \u2014 main.js\n   Single script for every page (vanilla, loaded with defer).\n   Rule: animations only change transform\/opacity of content that\n   already exists in the HTML. No content is injected with JS.\n\n   CONTENTS\n   01  Core (flags + module runner)\n   02  Global modules (run on every page; skip if markup is absent)\n       reveal \u00b7 subnav \u00b7 heroParallax \u00b7 figureParallax \u00b7 heroVideo \u00b7 hscroll \u00b7 dialogs \u00b7 countUp \u00b7 cursor \u00b7 pageTransition\n   03  Shared section modules\n       productFamilies\n   04  Page modules (keyed by data-page=\"\u2026\" on <body> or <main>)\n       about \u00b7 facilities \u00b7 social \u00b7 team \u00b7 pharma \u00b7 supplements\n       media \u00b7 contact \u00b7 home\n   05  Boot\n   ========================================================= *\/\n(function () {\n  'use strict';\n\n  \/* ---------- 01 CORE ---------- *\/\n  var html = document.documentElement;\n  var RM = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var FINE = window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n  var HAS_IO = 'IntersectionObserver' in window;\n  var $ = function (sel, ctx) { return (ctx || document).querySelector(sel); };\n  var $$ = function (sel, ctx) { return [].slice.call((ctx || document).querySelectorAll(sel)); };\n  var onScroll = function (fn) {\n    var ticking = false;\n    window.addEventListener('scroll', function () {\n      if (ticking) return; ticking = true;\n      requestAnimationFrame(function () { fn(); ticking = false; });\n    }, { passive: true });\n    fn();\n  };\n  html.classList.add('cr-js');\n\n  \/* ---------- 02 GLOBAL MODULES ---------- *\/\n  var Global = {\n\n    \/* Reveal on scroll: [data-reveal], [data-lines], .cr-chain; [data-stagger] staggers children *\/\n    reveal: function () {\n      var els = $$('[data-reveal], [data-lines], .cr-chain');\n      if (!els.length) return;\n      if (RM || !HAS_IO) { els.forEach(function (el) { el.classList.add('is-in'); }); return; }\n      $$('[data-stagger]').forEach(function (group) {\n        [].slice.call(group.children).forEach(function (c, i) { c.style.setProperty('--cr-d', (i * 90) + 'ms'); });\n      });\n      var io = new IntersectionObserver(function (entries) {\n        entries.forEach(function (e) { if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); } });\n      }, { rootMargin: '0px 0px -10% 0px', threshold: 0.05 });\n      els.forEach(function (el) { io.observe(el); });\n    },\n\n    \/* Sticky in-page navigation: active section + reading progress *\/\n    subnav: function () {\n      var nav = $('.cr-subnav'); if (!nav) return;\n      var links = $$('a[href^=\"#\"]', nav), list = $('ol', nav), bar = $('.cr-progress', nav), map = {};\n      links.forEach(function (a) { map[a.getAttribute('href').slice(1)] = a; });\n      if (HAS_IO) {\n        var io = new IntersectionObserver(function (entries) {\n          entries.forEach(function (e) {\n            if (!e.isIntersecting) return;\n            links.forEach(function (a) { a.removeAttribute('aria-current'); });\n            var a = map[e.target.id]; if (!a) return;\n            a.setAttribute('aria-current', 'true');\n            list.scrollTo({ left: a.offsetLeft - (list.clientWidth - a.offsetWidth) \/ 2, behavior: RM ? 'auto' : 'smooth' });\n          });\n        }, { rootMargin: '-35% 0px -60% 0px' });\n        Object.keys(map).forEach(function (id) { var s = document.getElementById(id); if (s) io.observe(s); });\n      }\n      if (bar) {\n        var main = $('main');\n        onScroll(function () {\n          var r = main.getBoundingClientRect(), h = r.height - window.innerHeight;\n          bar.style.transform = 'scaleX(' + Math.min(1, Math.max(0, -r.top \/ (h || 1))).toFixed(3) + ')';\n        });\n      }\n    },\n\n    \/* Hero background parallax: [data-parallax=\"speed\"] *\/\n    heroParallax: function () {\n      var els = $$('[data-parallax]'); if (!els.length || RM) return;\n      onScroll(function () {\n        els.forEach(function (el) {\n          var speed = parseFloat(el.getAttribute('data-parallax')) || 0.2;\n          var r = el.parentElement.getBoundingClientRect();\n          if (r.bottom > 0 && r.top < window.innerHeight) el.style.transform = 'translate3d(0,' + (-r.top * speed).toFixed(1) + 'px,0)';\n        });\n      });\n    },\n\n    \/* Image parallax inside framed figures: img[data-parallax-img] *\/\n    figureParallax: function () {\n      var imgs = $$('[data-parallax-img]'); if (!imgs.length || RM) return;\n      onScroll(function () {\n        var vh = window.innerHeight;\n        imgs.forEach(function (img) {\n          var r = img.parentElement.getBoundingClientRect();\n          if (r.bottom < 0 || r.top > vh) return;\n          var p = (r.top + r.height \/ 2 - vh \/ 2) \/ vh;\n          img.style.transform = 'translate3d(0,' + (-8 + p * -8).toFixed(2) + '%,0)';\n        });\n      });\n    },\n\n    \/* Hero background video (YouTube): loads only when motion is allowed; pause\/play control (WCAG 2.2.2) *\/\n    heroVideo: function () {\n      var box = $('.cr-hero__video[data-yt]'); if (!box) return;\n      var btn = $('.cr-hero__toggle');\n      if (RM) return; \/* poster image only *\/\n      var id = box.getAttribute('data-yt');\n      var f = document.createElement('iframe');\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + id + '?autoplay=1&mute=1&loop=1&playlist=' + id + '&controls=0&rel=0&modestbranding=1&playsinline=1&enablejsapi=1';\n      f.title = box.getAttribute('data-title') || 'Background video';\n      f.setAttribute('allow', 'autoplay; encrypted-media; picture-in-picture');\n      f.setAttribute('tabindex', '-1'); f.setAttribute('aria-hidden', 'true');\n      f.addEventListener('load', function () { setTimeout(function () { box.classList.add('is-ready'); }, 600); });\n      box.appendChild(f);\n      if (!btn) return;\n      btn.hidden = false;\n      var playing = true;\n      btn.addEventListener('click', function () {\n        playing = !playing;\n        f.contentWindow.postMessage(JSON.stringify({ event: 'command', func: playing ? 'playVideo' : 'pauseVideo', args: [] }), '*');\n        btn.setAttribute('aria-pressed', String(!playing));\n        btn.setAttribute('aria-label', playing ? 'Pause background video' : 'Play background video');\n        var ico = $('.cr-ico', btn); ico.setAttribute('d', playing ? 'M8 5v14M16 5v14' : 'M8 5l11 7-11 7z'); ico.setAttribute('fill', playing ? 'none' : 'currentColor');\n      });\n    },\n\n    \/* Horizontal sequence pinned on scroll: section[data-hscroll] (vertical grid on small screens \/ reduced motion) *\/\n    hscroll: function () {\n      $$('[data-hscroll]').forEach(function (root) {\n        var sec = $('.cr-hs__pin', root) || root;\n        var track = $('.cr-hs__track', root), meter = $('.cr-hs__meter span', root);\n        if (!track) return;\n        var mq = window.matchMedia('(min-width: 901px)');\n        var dist = 0;\n        var setup = function () {\n          if (RM || !mq.matches || window.innerHeight < 560) { root.classList.add('cr-hs--static'); sec.style.height = ''; track.style.transform = ''; dist = 0; return; }\n          root.classList.remove('cr-hs--static');\n          dist = Math.max(0, track.scrollWidth - window.innerWidth);\n          sec.style.height = (window.innerHeight + dist) + 'px';\n        };\n        var upd = function () {\n          if (!dist) return;\n          var r = sec.getBoundingClientRect();\n          var p = Math.min(1, Math.max(0, -r.top \/ dist));\n          track.style.transform = 'translate3d(' + (-p * dist).toFixed(1) + 'px,0,0)';\n          if (meter) meter.style.transform = 'scaleX(' + p.toFixed(3) + ')';\n        };\n        setup(); onScroll(upd);\n        window.addEventListener('resize', function () { setup(); upd(); });\n        window.addEventListener('load', function () { setup(); upd(); });\n      });\n    },\n\n    \/* Dialogs: [data-dialog-open=\"id\"] opens <dialog id>; close button, Esc and backdrop click close it *\/\n    dialogs: function () {\n      $$('[data-dialog-open]').forEach(function (btn) {\n        var dlg = document.getElementById(btn.getAttribute('data-dialog-open'));\n        if (!dlg || typeof dlg.showModal !== 'function') return;\n        btn.addEventListener('click', function () { dlg.showModal(); html.style.overflow = 'hidden'; });\n        dlg.addEventListener('close', function () { html.style.overflow = ''; btn.focus(); });\n        dlg.addEventListener('click', function (e) { if (e.target === dlg) dlg.close(); });\n        $$('[data-dialog-close]', dlg).forEach(function (x) { x.addEventListener('click', function () { dlg.close(); }); });\n      });\n    },\n\n    \/* Count-up figures: [data-count=\"N\"] (text already in the HTML; animates from 0 when visible) *\/\n    countUp: function () {\n      var els = $$('[data-count]'); if (!els.length || RM || !HAS_IO) return;\n      var io = new IntersectionObserver(function (entries) {\n        entries.forEach(function (e) {\n          if (!e.isIntersecting) return; io.unobserve(e.target);\n          var el = e.target, to = +el.getAttribute('data-count'), t0 = performance.now();\n          (function step(t) { var p = Math.min(1, (t - t0) \/ 1100); el.textContent = Math.round(to * (1 - Math.pow(1 - p, 3))).toLocaleString('en-US'); if (p < 1) requestAnimationFrame(step); })(t0);\n        });\n      }, { threshold: 0.6 });\n      els.forEach(function (el) { io.observe(el); });\n    },\n\n    \/* Cursor follower ring (decorative; native cursor stays visible) *\/\n    cursor: function () {\n      if (RM || !FINE) return;\n      var c = document.createElement('div'); c.className = 'cr-cursor'; c.setAttribute('aria-hidden', 'true'); document.body.appendChild(c);\n      var x = 0, y = 0, cx = 0, cy = 0;\n      document.addEventListener('mousemove', function (e) { x = e.clientX; y = e.clientY; c.classList.add('is-on'); });\n      document.addEventListener('mouseleave', function () { c.classList.remove('is-on'); });\n      (function loop() { cx += (x - cx) * 0.2; cy += (y - cy) * 0.2; c.style.transform = 'translate3d(' + cx + 'px,' + cy + 'px,0)'; requestAnimationFrame(loop); })();\n      document.addEventListener('mouseover', function (e) {\n        c.classList.toggle('is-hover', !!e.target.closest('a, button, [data-cursor]'));\n        c.classList.toggle('is-dark', !!e.target.closest('.cr-dark, .cr-green-bg, .cr-hero'));\n      });\n    },\n\n    \/* Page transitions (no SPA): wipe in on internal navigation, wipe out on load *\/\n    pageTransition: function () {\n      var tr = $('.cr-transition'); if (!tr || RM) return;\n      tr.classList.add('is-enter');\n      document.addEventListener('click', function (e) {\n        var a = e.target.closest('a[href]'); if (!a) return;\n        var href = a.getAttribute('href');\n        if (!href || href.charAt(0) === '#' || a.target === '_blank' || e.metaKey || e.ctrlKey || e.shiftKey || \/^(mailto:|tel:)\/.test(href)) return;\n        var url = new URL(a.href, location.href); if (url.origin !== location.origin) return;\n        e.preventDefault();\n        tr.classList.remove('is-enter'); tr.classList.add('is-leave');\n        setTimeout(function () { location.href = url.href; }, 560);\n      });\n      window.addEventListener('pageshow', function (ev) { if (ev.persisted) { tr.classList.remove('is-leave'); tr.classList.add('is-enter'); } });\n    }\n  };\n\n  \/* ---------- 03 SHARED SECTION MODULES ---------- *\/\n  var Sections = {\n\n    \/* Product families: active column + product image swap on hover\/focus *\/\n    productFamilies: function () {\n      var fams = $$('.cr-family'); if (!fams.length) return;\n      fams.forEach(function (fam) {\n        var target = $('.cr-family__img img', fam);\n        var activate = function () { fams.forEach(function (f) { f.classList.toggle('is-active', f === fam); }); };\n        fam.addEventListener('mouseenter', activate);\n        fam.addEventListener('focusin', activate);\n        if (!target) return;\n        var show = function (a) {\n          var src = a.getAttribute('data-img'); if (!src || target.getAttribute('src') === src) return;\n          if (RM) { target.src = src; target.alt = a.getAttribute('data-alt'); return; }\n          target.classList.add('is-swap');\n          setTimeout(function () {\n            target.src = src; target.alt = a.getAttribute('data-alt');\n            target.onload = function () { target.classList.remove('is-swap'); };\n            setTimeout(function () { target.classList.remove('is-swap'); }, 400);\n          }, 300);\n        };\n        $$('a[data-img]', fam).forEach(function (a) {\n          a.addEventListener('mouseenter', function () { show(a); });\n          a.addEventListener('focus', function () { show(a); });\n        });\n      });\n    }\n  };\n\n  \/* ---------- 04 PAGE MODULES ([data-page] on <body> or <main>) ---------- *\/\n  var Pages = {\n    about: function () { \/* About Us \u2014 APPROVED v1.3: uses Global + Sections.productFamilies only *\/ },\n    facilities: function () { \/* Facilities \u2014 v1: uses Global.heroVideo + Global.hscroll *\/ },\n    social: function () { \/* Social Responsibility \u2014 v1: Global modules only *\/ },\n    team: function () { \/* Team \u2014 v1: uses Global.dialogs for bios *\/ },\n    pharma: function () { \/* Pharma \u2014 uses Global modules (subnav, countUp, reveal) *\/ },\n    supplements: function () { \/* Supplements \u2014 uses Global modules *\/ },\n    \/* Media Releases: category filter (shows\/hides releases already in the HTML) *\/\n    media: function () {\n      var btns = $$('.cr-filter'); if (!btns.length) return;\n      var rels = $$('.cr-rel'), years = $$('.cr-year');\n      btns.forEach(function (b) {\n        b.addEventListener('click', function () {\n          var cat = b.getAttribute('data-filter');\n          btns.forEach(function (x) { x.setAttribute('aria-pressed', String(x === b)); });\n          rels.forEach(function (r) { r.hidden = !(cat === 'all' || r.getAttribute('data-cat') === cat); });\n          years.forEach(function (y) { y.hidden = !$$('.cr-rel:not([hidden])', y).length; });\n        });\n      });\n    },\n    \/* Contact: route cards preset the form topic; copy-address buttons; visual-only form (no backend) *\/\n    contact: function () {\n      var form = $('#contact-form'), topic = $('#cf-topic'), status = $('.cr-form__status');\n      $$('[data-topic]').forEach(function (b) {\n        b.addEventListener('click', function () {\n          if (topic) topic.value = b.getAttribute('data-topic');\n          var target = $('#form'); if (target) target.scrollIntoView({ behavior: RM ? 'auto' : 'smooth' });\n          setTimeout(function () { var f = $('#cf-first'); if (f) f.focus({ preventScroll: true }); }, RM ? 0 : 700);\n        });\n      });\n      $$('[data-copy]').forEach(function (b) {\n        b.addEventListener('click', function () {\n          var txt = b.getAttribute('data-copy'), label = b.textContent;\n          var done = function () { b.textContent = 'Copied'; setTimeout(function () { b.textContent = label; }, 1800); };\n          if (navigator.clipboard) navigator.clipboard.writeText(txt).then(done, done); else done();\n        });\n      });\n      if (form) form.addEventListener('submit', function (e) {\n        if (form.getAttribute('data-handler') === 'none') { e.preventDefault(); if (status) status.hidden = false; }\n      });\n    },\n    \/* Home: business-area panels expand on hover\/focus\/click (content already in the HTML) *\/\n    home: function () {\n      var areas = $$('.cr-area'); if (!areas.length) return;\n      var open = function (a) { areas.forEach(function (x) { var on = x === a; x.classList.toggle('is-open', on); var b = $('.cr-area__toggle', x); if (b) b.setAttribute('aria-expanded', String(on)); }); };\n      areas.forEach(function (a) {\n        a.addEventListener('mouseenter', function () { open(a); });\n        a.addEventListener('focusin', function () { open(a); });\n        var b = $('.cr-area__toggle', a); if (b) b.addEventListener('click', function () { open(a); });\n      });\n    }\n  };\n\n  \/* ---------- 05 BOOT ---------- *\/\n  Object.keys(Global).forEach(function (k) { Global[k](); });\n  Object.keys(Sections).forEach(function (k) { Sections[k](); });\n  \/* data-page can sit on <body> or on any wrapper (e.g. <main> inside an Elementor HTML widget) *\/\n  var holder = document.querySelector('[data-page]');\n  var page = holder && holder.getAttribute('data-page');\n  if (page && Pages[page]) Pages[page]();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>About Crassula Pharmaceuticals | Global Pharma CDMO Home About Us Crassula Pharmaceuticals Crassula Pharmaceuticals is a global healthcare company that develops, manufactures and supplies prescription medicines, OTC products and advanced nutraceuticals. Since 2014 it has worked as a B2B CMO\/CDMO and B2C partner, backed by GMP and ISO-certified manufacturing and modern drug-delivery technologies. 01 Who [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"class_list":["post-11618","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/pages\/11618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/comments?post=11618"}],"version-history":[{"count":46,"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/pages\/11618\/revisions"}],"predecessor-version":[{"id":12218,"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/pages\/11618\/revisions\/12218"}],"wp:attachment":[{"href":"https:\/\/crassulapharma.com\/es\/wp-json\/wp\/v2\/media?parent=11618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}